有时,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/