WeakReferences for AntlrParserResult can work now.
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParser.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParser.java
index ab06f6d..b81ba9e 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParser.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParser.java
@@ -19,7 +19,7 @@
 package org.netbeans.modules.languages.antlr;
 
 import java.lang.ref.Reference;
-import java.lang.ref.SoftReference;
+import java.lang.ref.WeakReference;
 import java.util.Collections;
 import java.util.WeakHashMap;
 import javax.swing.event.ChangeListener;
@@ -78,7 +78,7 @@
 
     private static void cacheResult(FileObject fo, AntlrParserResult<?> result) {
         synchronized (CACHE) {
-            CACHE.put(fo, new SoftReference<>(result));
+            CACHE.put(fo, new WeakReference<>(result));
         }
     }