[ 
https://issues.apache.org/jira/browse/JCR-2601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dirk Feufel updated JCR-2601:
-----------------------------

    Component/s: versioning
                     (was: jackrabbit-core)

> NullPointerException when removing more than one version from history
> ---------------------------------------------------------------------
>
>                 Key: JCR-2601
>                 URL: https://issues.apache.org/jira/browse/JCR-2601
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: versioning
>    Affects Versions: 2.0.0
>            Reporter: Dirk Feufel
>
> 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(i));
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to