You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2013/09/17 17:03:56 UTC
svn commit: r1524089 - in /jackrabbit/oak/trunk/oak-jcr: pom.xml
src/main/java/org/apache/jackrabbit/oak/jcr/session/ItemImpl.java
Author: jukka
Date: Tue Sep 17 15:03:55 2013
New Revision: 1524089
URL: http://svn.apache.org/r1524089
Log:
OAK-141: issues related to Node.refresh() as opposed to Session.refresh()
Item.refresh() should throw InvalidItemStateException when the item gets lost due to the refresh
Modified:
jackrabbit/oak/trunk/oak-jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/ItemImpl.java
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1524089&r1=1524088&r2=1524089&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Tue Sep 17 15:03:55 2013
@@ -38,7 +38,6 @@
org.apache.jackrabbit.test.api.SessionTest#testMoveConstraintViolationExceptionDest <!-- OAK-132 -->
org.apache.jackrabbit.test.api.SessionTest#testMoveLockException
org.apache.jackrabbit.test.api.SessionUUIDTest#testSaveReferentialIntegrityException <!-- OAK-66 -->
- org.apache.jackrabbit.test.api.NodeTest#testRefreshInvalidItemStateException <!-- OAK-141 -->
org.apache.jackrabbit.test.api.NodeTest#testRemoveNodeLockedItself
org.apache.jackrabbit.test.api.NodeTest#testRemoveNodeParentLocked
org.apache.jackrabbit.test.api.NodeUUIDTest#testSaveReferentialIntegrityException <!-- OAK-66 -->
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/ItemImpl.java?rev=1524089&r1=1524088&r2=1524089&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/ItemImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/ItemImpl.java Tue Sep 17 15:03:55 2013
@@ -31,6 +31,7 @@ import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.jcr.AccessDeniedException;
+import javax.jcr.InvalidItemStateException;
import javax.jcr.Item;
import javax.jcr.ItemNotFoundException;
import javax.jcr.Node;
@@ -287,9 +288,27 @@ abstract class ItemImpl<T extends ItemDe
* @see Item#refresh(boolean)
*/
@Override
- public void refresh(boolean keepChanges) throws RepositoryException {
+ public void refresh(final boolean keepChanges) throws RepositoryException {
log.warn("Item#refresh is no longer supported. Please use Session#refresh");
- getSession().refresh(keepChanges);
+ perform(new SessionOperation<Void>() {
+ @Override
+ public Void perform() throws InvalidItemStateException {
+ sessionDelegate.refresh(keepChanges);
+ if (!dlg.exists()) {
+ throw new InvalidItemStateException(
+ "This item no longer exists");
+ }
+ return null;
+ }
+ @Override
+ public boolean isUpdate() {
+ return true;
+ }
+ @Override
+ public boolean isRefresh() {
+ return true;
+ }
+ });
}
@Override