You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2008/05/14 15:34:52 UTC
svn commit: r656282 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
Author: dpfister
Date: Wed May 14 06:34:52 2008
New Revision: 656282
URL: http://svn.apache.org/viewvc?rev=656282&view=rev
Log:
JCR-1601 - Occasional NullPointerException in ItemManager
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java?rev=656282&r1=656281&r2=656282&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemManager.java Wed May 14 06:34:52 2008
@@ -40,6 +40,7 @@
import org.slf4j.LoggerFactory;
import javax.jcr.AccessDeniedException;
+import javax.jcr.InvalidItemStateException;
import javax.jcr.ItemNotFoundException;
import javax.jcr.NamespaceException;
import javax.jcr.NodeIterator;
@@ -310,7 +311,12 @@
* @throws RepositoryException
*/
private boolean canRead(ItemData data, Path path) throws AccessDeniedException, RepositoryException {
- if (data.getState().getStatus() == ItemState.STATUS_NEW &&
+ // JCR-1601: cached item may just have been invalidated
+ ItemState state = data.getState();
+ if (state == null) {
+ throw new InvalidItemStateException(data.getId() + ": the item does not exist anymore");
+ }
+ if (state.getStatus() == ItemState.STATUS_NEW &&
!data.getDefinition().isProtected()) {
// NEW items can always be read as long they have been added
// through the API and NOT by the system (i.e. protected props).