Author: mduerig
Date: Fri Feb 20 17:07:18 2015
New Revision: 1661164
URL: http://svn.apache.org/r1661164
Log:
OAK-2542: Update RecordUsageAnalyser to reflect changes in segment format
- Add test with multiple properties
- Fix analyseTemplate for segment version V_11
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyser.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyserTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyser.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyser.java?rev=1661164&r1=1661163&r2=1661164&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyser.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyser.java
Fri Feb 20 17:07:18 2015
@@ -295,31 +295,30 @@ public class RecordUsageAnalyser {
if (hasPrimaryType) {
RecordId primaryId = segment.readRecordId(offset + size);
analyseString(primaryId);
- size += Segment.RECORD_ID_BYTES;
+ size += RECORD_ID_BYTES;
}
if (hasMixinTypes) {
for (int i = 0; i < mixinCount; i++) {
RecordId mixinId = segment.readRecordId(offset + size);
analyseString(mixinId);
- size += Segment.RECORD_ID_BYTES;
+ size += RECORD_ID_BYTES;
}
}
if (!zeroChildNodes && !manyChildNodes) {
RecordId childNameId = segment.readRecordId(offset + size);
analyseString(childNameId);
- size += Segment.RECORD_ID_BYTES;
+ size += RECORD_ID_BYTES;
}
if (segment.getSegmentVersion().onOrAfter(V_11)) {
if (propertyCount > 0) {
RecordId listId = segment.readRecordId(offset + size);
- ListRecord propertyNames = new ListRecord(listId,
- propertyCount);
+ size += RECORD_ID_BYTES;
+ ListRecord propertyNames = new ListRecord(listId,
propertyCount);
for (int i = 0; i < propertyCount; i++) {
RecordId propertyNameId = propertyNames.getEntry(i);
- size += Segment.RECORD_ID_BYTES;
size++; // type
analyseString(propertyNameId);
}
@@ -328,7 +327,7 @@ public class RecordUsageAnalyser {
} else {
for (int i = 0; i < propertyCount; i++) {
RecordId propertyNameId = segment.readRecordId(offset +
size);
- size += Segment.RECORD_ID_BYTES;
+ size += RECORD_ID_BYTES;
size++; // type
analyseString(propertyNameId);
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyserTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyserTest.java?rev=1661164&r1=1661163&r2=1661164&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyserTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordUsageAnalyserTest.java
Fri Feb 20 17:07:18 2015
@@ -101,6 +101,22 @@ public class RecordUsageAnalyserTest {
}
@Test
+ public void nodeWithMultipleProperties() {
+ NodeBuilder builder = EMPTY_NODE.builder();
+ builder.setProperty("one", "11");
+ builder.setProperty("two", "22");
+ builder.setProperty("three", "33");
+
+ SegmentNodeState node = writer.writeNode(builder.getNodeState());
+ analyser.analyseNode(node.getRecordId());
+ if (segmentVersion == V_11) {
+ assertSizes(analyser, 0, 18, 23, 10, 6);
+ } else {
+ assertSizes(analyser, 0, 0, 23, 16, 12);
+ }
+ }
+
+ @Test
public void nodeWithMediumString() {
NodeBuilder builder = EMPTY_NODE.builder();
builder.setProperty("medium", repeat("a", SMALL_LIMIT + 1));