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/03/04 18:10:50 UTC

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

Author: jukka
Date: Mon Mar  4 17:10:50 2013
New Revision: 1452400

URL: http://svn.apache.org/r1452400
Log:
OAK-593: Segment-based MK

Minor SegmentPropertyState improvements

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

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentPropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentPropertyState.java?rev=1452400&r1=1452399&r2=1452400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentPropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentPropertyState.java Mon Mar  4 17:10:50 2013
@@ -73,6 +73,7 @@ class SegmentPropertyState extends Abstr
     @Override @Nonnull @SuppressWarnings("unchecked")
     public <T> T getValue(Type<T> type) {
         if (type.isArray()) {
+            final int count = count();
             final Type<?> base = type.getBaseType();
             return (T) new Iterable<Object>() {
                 @Override
@@ -81,7 +82,7 @@ class SegmentPropertyState extends Abstr
                         private int index = 0;
                         @Override
                         public boolean hasNext() {
-                            return index < count();
+                            return index < count;
                         }
                         @Override
                         public Object next() {
@@ -115,15 +116,14 @@ class SegmentPropertyState extends Abstr
 
         Segment segment = reader.getStore().readSegment(recordId.getSegmentId());
 
-        Type<?> base;
+        Type<?> base = getType();
         ListRecord values;
-        if (isArray()) {
-            base = getType().getBaseType();
+        if (base.isArray()) {
+            base = base.getBaseType();
             int size = segment.readInt(recordId.getOffset());
             RecordId listId = segment.readRecordId(recordId.getOffset() + 4);
             values = new ListRecord(listId, size);
         } else {
-            base = getType();
             values = new ListRecord(recordId, 1);
         }
         checkElementIndex(index, values.size());