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/10/31 17:38:52 UTC

svn commit: r1537548 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java

Author: jukka
Date: Thu Oct 31 16:38:51 2013
New Revision: 1537548

URL: http://svn.apache.org/r1537548
Log:
OAK-1132: QueryEngine #executeQuery creates a new revision on each call

Only update the SegmentRootBuilder state in getNodeState() if there are transient changes.

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java?rev=1537548&r1=1537547&r2=1537548&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java Thu Oct 31 16:38:51 2013
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.oak.plugins.segment;
 
+import org.apache.jackrabbit.oak.spi.state.NodeState;
+
 class SegmentRootBuilder extends SegmentNodeBuilder {
 
     /**
@@ -44,9 +46,15 @@ class SegmentRootBuilder extends Segment
 
     @Override
     public SegmentNodeState getNodeState() {
-        set(writer.writeNode(super.getNodeState()));
-        updateCount = 0;
-        return writer.writeNode(super.getNodeState());
+        NodeState state = super.getNodeState();
+        if (state instanceof SegmentNodeState) {
+            return (SegmentNodeState) state;
+        } else {
+            SegmentNodeState segmentState = writer.writeNode(state);
+            set(segmentState);
+            updateCount = 0;
+            return segmentState;
+        }
     }
 
 }