jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcel Reutegger (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (JCR-1131) JCR2SPI NodeEntryImpl throws NPE during reorderNodes
Date Mon, 17 Sep 2007 08:23:32 GMT

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

Marcel Reutegger resolved JCR-1131.
-----------------------------------

    Resolution: Fixed

Fixed in revision: 576296

Thanks for reporting this issue.

> JCR2SPI NodeEntryImpl throws NPE during reorderNodes
> ----------------------------------------------------
>
>                 Key: JCR-1131
>                 URL: https://issues.apache.org/jira/browse/JCR-1131
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: SPI
>            Reporter: David Rauschenbach
>
> Two folder nodes are created below root. From the root node, the 2nd folder is ordered
before the first node. The request is batched up correctly, but upon save, NodeEntryImpl throws
a NullPointerException in the first line of the completeTransientChanges method, because revertInfo.oldParent
is null.
> Test code:
> 		final String FOLDER1 = "folder1", FOLDER2 = "folder2";
> 		
> 		// Create folder 1 on server in root
> 		Session serverSession = login(repository, creds);
> 		Node serverRootNode = serverSession.getRootNode();
> 		Node serverFolder1 = serverRootNode.addNode(FOLDER1, "nt:folder");
> 		
> 		// Create folder 2 on server in root
> 		Node serverFolder2 = serverRootNode.addNode(FOLDER2, "nt:folder");
> 		serverSession.save();
> 		
> 		// Validate order (TODO)
> 		
> 		// Perform reorder via client
> 		Session clientSession = login(clientRepository, creds);
> 		Node clientRootNode = clientSession.getRootNode();
> 		clientRootNode.orderBefore(FOLDER2, FOLDER1);
> 		clientSession.save(); <== Throws NPE
> Call Stack:
>     [junit] java.lang.NullPointerException
>     [junit]     at org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntryImpl.completeTransientChanges(NodeEntryImpl.java:1354)
>     [junit]     at org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntryImpl.access$1100(NodeEntryImpl.java:60)
>     [junit]     at org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntryImpl$RevertInfo.statusChanged(NodeEntryImpl.java:1465)
>     [junit]     at org.apache.jackrabbit.jcr2spi.state.ItemState.setStatus(ItemState.java:257)
>     [junit]     at org.apache.jackrabbit.jcr2spi.state.NodeState.adjustNodeState(NodeState.java:554)
>     [junit]     at org.apache.jackrabbit.jcr2spi.state.NodeState.persisted(NodeState.java:276)
>     [junit]     at org.apache.jackrabbit.jcr2spi.state.ChangeLog.persisted(ChangeLog.java:135)
>     [junit]     at org.apache.jackrabbit.jcr2spi.WorkspaceManager.execute(WorkspaceManager.java:479)
>     [junit]     at org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.save(SessionItemStateManager.java:149)
>     [junit]     at org.apache.jackrabbit.jcr2spi.ItemImpl.save(ItemImpl.java:239)
>     [junit]     at org.apache.jackrabbit.jcr2spi.SessionImpl.save(SessionImpl.java:317)
>     [junit]     at TestWsNodeReorder.testReorderNodes(TestWsNodeReorder.java:72)
> I'm using an SPI I implemented, in conjunction with the jcr2spi and spi2jcr bridges,
coupled with a back-end Jackrabbit in-memory filesystem. So there's always the possibility
that node or property SPI calls inject errors and cause this downstream problem.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message