Author: mduerig
Date: Wed Jun 14 13:15:22 2017
New Revision: 1798676
URL: http://svn.apache.org/viewvc?rev=1798676&view=rev
Log:
OAK-6339: MapRecord#getKeys should should initialize child iterables lazily
Flatten nested iterators lazily
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapRecord.java
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapRecord.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapRecord.java?rev=1798676&r1=1798675&r2=1798676&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapRecord.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapRecord.java
Wed Jun 14 13:15:22 2017
@@ -305,8 +305,14 @@ public 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>() {
+ @Nonnull
+ @Override
+ public Iterator<String> iterator() {
+ return bucket.getKeys().iterator();
+ }
+ });
}
return concat(keys);
}