diff --git a/java/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParser.java b/java/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParser.java index 5eadd691094f..a224715a0c24 100644 --- a/java/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParser.java +++ b/java/java.source.base/src/org/netbeans/modules/java/source/parsing/JavacParser.java @@ -772,7 +772,9 @@ Phase moveToPhase (final Phase phase, final CompilationInfoImpl currentInfo, Lis compiler.todo.offer(env); } } - currentPhase = Phase.RESOLVED; + if (!lowMemoryCancel.get()) { + currentPhase = Phase.RESOLVED; + } long end = System.currentTimeMillis (); logTime(currentInfo.getFileObject(),currentPhase,(end-start)); } @@ -780,10 +782,7 @@ Phase moveToPhase (final Phase phase, final CompilationInfoImpl currentInfo, Lis currentPhase = Phase.UP_TO_DATE; } } catch (CancelAbort ca) { - if (lowMemoryCancel.get()) { - currentInfo.markIncomplete(); - HUGE_SNAPSHOTS.add(new WeakReference<>(snapshots)); - } else { + if (!lowMemoryCancel.get()) { //real cancel currentPhase = Phase.MODIFIED; invalidate(false); @@ -791,10 +790,7 @@ Phase moveToPhase (final Phase phase, final CompilationInfoImpl currentInfo, Lis } catch (Abort abort) { parserError = currentPhase; } catch (RuntimeException | Error ex) { - if (lowMemoryCancel.get()) { - currentInfo.markIncomplete(); - HUGE_SNAPSHOTS.add(new WeakReference<>(snapshots)); - } else { + if (!lowMemoryCancel.get()) { if (cancellable && parserCanceled.get()) { currentPhase = Phase.MODIFIED; invalidate(false); @@ -805,6 +801,10 @@ Phase moveToPhase (final Phase phase, final CompilationInfoImpl currentInfo, Lis } } } finally { + if (lowMemoryCancel.get()) { + currentInfo.markIncomplete(); + HUGE_SNAPSHOTS.add(new WeakReference<>(snapshots)); + } currentInfo.setPhase(currentPhase); currentInfo.parserCrashed = parserError; }