Fix exceptions being squashed RegionVisitor preloading

This commit is contained in:
dordsor21 2021-09-10 14:41:15 +01:00
parent ef62f1e0d9
commit effb94623a
No known key found for this signature in database
GPG Key ID: 1E53E88969FFCF0B

View File

@ -108,8 +108,7 @@ public class RegionVisitor implements Operation {
int lastLeadChunkX = Integer.MIN_VALUE;
int lastLeadChunkZ = Integer.MIN_VALUE;
int loadingTarget = Settings.IMP.QUEUE.PRELOAD_CHUNK_COUNT;
try {
for (; ; ) {
while (trailIter.hasNext()) {
BlockVector3 pt = trailIter.next();
apply(pt);
int cx = pt.getBlockX() >> 4;
@ -125,6 +124,8 @@ public class RegionVisitor implements Operation {
} else {
amount = 1;
}
try {
lead:
for (int count = 0; count < amount; ) {
BlockVector3 v = leadIter.next();
int vcx = v.getBlockX() >> 4;
@ -136,51 +137,26 @@ public class RegionVisitor implements Operation {
count++;
}
// Skip the next 15 blocks
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
leadIter.next();
for (int i = 0; i < 16; i++) {
if (!leadIter.hasNext()) {
break lead;
}
leadIter.next();
}
}
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
apply(trailIter.next());
}
} catch (FaweException e) {
// Likely to be a low memory or cancellation exception.
throw new RuntimeException(e);
} catch (Throwable ignore) {
} catch (Throwable ignored) {
// Ignore as it is likely not something too important, and we can continue with the operation
}
}
for (int i = 0; i < 16; i++) {
if (!trailIter.hasNext()) {
return null;
}
try {
for (; ; ) {
apply(trailIter.next());
apply(trailIter.next());
}
} catch (FaweException e) {
throw new RuntimeException(e);
} catch (Throwable ignore) {
}
} else {
for (BlockVector3 pt : region) {
@ -188,7 +164,6 @@ public class RegionVisitor implements Operation {
}
}
//FAWE end
return null;
}