java - 重新部署后,Alfresco VersionHistory 返回不同的错误版本

标签 java alfresco

有时,Alfresco 重新启动后,versionService.getVersionHistory 不会返回之前的节点版本。

例如,我有四个节点版本。

VersionHistory versionHistory = versionService.getVersionHistory(actionedUponNodeRef);
List<Version> versions = (List<Version>) versionHistory.getAllVersions();
if (versions.size() > 1) {
    Version prevVersion = versions.get(1);
}

通常它工作正常。 prevVersion 有第三个节点版本,但有时,Alfresco 重新启动后,它会返回第二个节点版本,直到我再次重新部署 Alfresco。

如何才能始终获取以前的节点版本?

最佳答案

我猜所有的选角顺序都搞乱了。 我检查了代码,原始版本是ArrayList类型,它有一个父类(super class)型List。然后它作为集合发送回,然后将其转换回列表。

通常这应该不是问题。

在您的情况下,我将从 ScriptNode.GetVersionHistory 中复制代码,该代码在 Alfresco & Share 中用于显示版本。 这是片段:

 public Scriptable getVersionHistory()
    {
        if (this.versions == null && getIsVersioned())
        {
            VersionHistory history = this.services.getVersionService().getVersionHistory(this.nodeRef);
            if (history != null)
            {
                Collection<Version> allVersions = history.getAllVersions();
                Object[] versions = new Object[allVersions.size()];
                int i = 0;
                for (Version version : allVersions)
                {
                    versions[i++] = new ScriptVersion(version, this.services, this.scope);
                }
                this.versions = Context.getCurrentContext().newArray(this.scope, versions);
            }
        }
        return this.versions;
    }

关于java - 重新部署后,Alfresco VersionHistory 返回不同的错误版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983695/

相关文章:

java - 如何对该表进行加法运算?

java - 如何在不缓冲输入的情况下从 InputStream 读取一行?

java - 如何在 Play! 中插入大量实体?工作?

java - 我怎样才能在 Alfresco 的 companyhome 上创建文件夹节点?

java - 如何从容器中删除死线程

java - 掷骰子游戏作业

java - 将 CMIS 结果限制从 100 增加到 1000

java - 使用同名更新到 Alfresco

javascript - Alfresco 从模板中获取数据

java - Alfresco Activiti - 如何在 Alfresco Activiti 中获取附件 id?