Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-2601

NullPointerException when removing more than one version from history

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 2.0
    • None
    • versioning
    • None

    Description

      When removing more than one version from the history, a NullPointerException occurres. If I delete the version in the order the VersionIterator provides, I get:

      at org.apache.jackrabbit.core.version.InternalVersionImpl.internalDetach(InternalVersionImpl.java:280)
      at org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.removeVersion(InternalVersionHistoryImpl.java:389)
      at org.apache.jackrabbit.core.version.InternalVersionManagerBase.internalRemoveVersion(InternalVersionManagerBase.java:684)
      at org.apache.jackrabbit.core.version.InternalVersionManagerImpl$5.run(InternalVersionManagerImpl.java:495)
      at org.apache.jackrabbit.core.version.InternalVersionManagerImpl$DynamicESCFactory.doSourced(InternalVersionManagerImpl.java:760)
      at org.apache.jackrabbit.core.version.InternalVersionManagerImpl.removeVersion(InternalVersionManagerImpl.java:493)
      at org.apache.jackrabbit.core.version.InternalXAVersionManager.removeVersion(InternalXAVersionManager.java:264)
      at org.apache.jackrabbit.core.version.VersionHistoryImpl.removeVersion(VersionHistoryImpl.java:253)

      If I delete in the other direction I get:

      java.lang.NullPointerException
      at org.apache.jackrabbit.core.version.InternalVersionImpl.internalDetach(InternalVersionImpl.java:286)
      at org.apache.jackrabbit.core.version.InternalVersionHistoryImpl.removeVersion(InternalVersionHistoryImpl.java:389)
      at org.apache.jackrabbit.core.version.InternalVersionManagerBase.internalRemoveVersion(InternalVersionManagerBase.java:684)
      at org.apache.jackrabbit.core.version.InternalVersionManagerImpl$5.run(InternalVersionManagerImpl.java:495)
      at org.apache.jackrabbit.core.version.InternalVersionManagerImpl$DynamicESCFactory.doSourced(InternalVersionManagerImpl.java:760)
      at org.apache.jackrabbit.core.version.InternalVersionManagerImpl.removeVersion(InternalVersionManagerImpl.java:493)
      at org.apache.jackrabbit.core.version.InternalXAVersionManager.removeVersion(InternalXAVersionManager.java:264)
      at org.apache.jackrabbit.core.version.VersionHistoryImpl.removeVersion(VersionHistoryImpl.java:253)

      The code is:

      Node toDelete = session.getNode(path);
      VersionHistory vh = session.getWorkspace().getVersionManager().getVersionHistory(path);
      toRemove.remove();
      session.save();
      VersionIterator vit = vh.getAllVersions();
      while (vit.hasNext()) {
      Version v = vit.nextVersion();
      if (!v.getName().equals("jcr:rootVersion"))

      { versionRemove.add(v.getName()); }

      }
      for (int i=0; i<versionRemove.size(); i++) {
      vh.removeVersion(versionRemove.get);
      }

      Attachments

        Activity

          People

            tripod Tobias Bocanegra
            feufeldk Dirk Feufel
            Votes:
            2 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: