Skip to content

Commit baaefc5

Browse files
author
云峤
committed
Fix empty map bug.
1 parent 851d34a commit baaefc5

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

unsafe/src/main/java/org/apache/spark/unsafe/map/BytesToBytesMap.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,9 @@ public Iterator<Location> iterator() {
177177

178178
private int pageCur = 0;
179179

180-
private MemoryBlock currentPage = dataPages.get(0);
180+
private MemoryBlock currentPage;
181181

182-
private long addr = currentPage.getBaseOffset();
182+
private long addr;
183183

184184
@Override
185185
public boolean hasNext() {
@@ -188,16 +188,20 @@ public boolean hasNext() {
188188

189189
@Override
190190
public Location next() {
191+
if (currentPage == null) {
192+
currentPage = dataPages.get(pageCur++);
193+
addr = currentPage.getBaseOffset();
194+
}
191195
long keySize = PlatformDependent.UNSAFE.getLong(memoryManager.getPage(addr), addr);
192196
if (keySize == -1L) {
193197
currentPage = dataPages.get(pageCur++);
194198
addr = currentPage.getBaseOffset();
195199
}
196-
long keyAddr = addr;
200+
loc.with(addr, true);
197201
addr += keySize + 8;
198202
addr += PlatformDependent.UNSAFE.getLong(memoryManager.getPage(addr), addr) + 8;
199203
cur++;
200-
return loc.with(keyAddr, true);
204+
return loc;
201205
}
202206

203207
@Override

0 commit comments

Comments
 (0)