Author: chetanm
Date: Fri Sep 1 09:43:15 2017
New Revision: 1806918
URL: http://svn.apache.org/viewvc?rev=1806918&view=rev
Log:
OAK-6339 - MapRecord#getKeys should should initialize child iterables lazily
Backport the fix to oak-segment module only
Modified:
jackrabbit/oak/branches/1.6/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MapRecord.java
Modified:
jackrabbit/oak/branches/1.6/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MapRecord.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MapRecord.java?rev=1806918&r1=1806917&r2=1806918&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.6/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MapRecord.java
(original)
+++
jackrabbit/oak/branches/1.6/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MapRecord.java
Fri Sep 1 09:43:15 2017
@@ -303,8 +303,13 @@ class MapRecord extends Record {
List<MapRecord> buckets = getBucketList(segment);
List<Iterable<String>> keys =
newArrayListWithCapacity(buckets.size());
- for (MapRecord bucket : buckets) {
- keys.add(bucket.getKeys());
+ for (final MapRecord bucket : buckets) {
+ keys.add(new Iterable<String>() {
+ @Override
+ public Iterator<String> iterator() {
+ return bucket.getKeys().iterator();
+ }
+ });
}
return concat(keys);
}