在Alfresco中,在检索根版本时获取空白文件

时间:2014-05-09 13:19:13

标签: version alfresco

在Alfresco,我正在尝试使用以下代码检索以前版本的文件:

        VersionHistory history = this.versionService
                .getVersionHistory(nodeRef);

        Version version = history.getVersion(previousDeployedVersion);
        NodeRef previousNode = version.getFrozenStateNodeRef();

它一直工作,直到我到1.0版本,然后我得到空白内容。 这是正常的行为吗? 我也尝试了getRootVersion()但得到了相同的结果。

当我查看文件的详细信息页面,版本历史记录时,我可以查看"的内容 不同的版本。版本1.0也显示空白。

如果有人可以对此有所了解,我会感激不尽。 感谢

在通过虚拟webdav驱动器添加到Alfresco的文件中可以看到此行为。我发现当我添加一个文件时 Alfresco Explorer使用"添加内容"接口,一切正常,我可以正确读取版本1.0。 谁能提出造成这种差异的原因?感谢

1 个答案:

答案 0 :(得分:1)

如果您检查CMIS代码以获取所有版本,那么它会有所不同。 它还将当前版本添加到列表中并进行一些检查。

 public List<NodeRef> getAllVersions(String objectId) throws CMISConstraintException, CMISVersioningException,
            CMISObjectNotFoundException, CMISInvalidArgumentException, CMISPermissionDeniedException
    {
        NodeRef nodeRef = getVersionSeries(objectId, NodeRef.class, true);

        List<NodeRef> objects = new LinkedList<NodeRef>();
        NodeRef pwc = checkOutCheckInService.getWorkingCopy(nodeRef);
        if (pwc != null)
        {
            objects.add(pwc);
        }
        VersionHistory versionHistory = versionService.getVersionHistory(nodeRef);
        if (versionHistory != null)
        {
            Version current = versionService.getCurrentVersion(nodeRef);
            while (current != null)
            {
                objects.add(current.getFrozenStateNodeRef());
                current = versionHistory.getPredecessor(current);
            }
        }
        else if (pwc == null)
        {
            objects.add(nodeRef);
        }
        return objects;
    }