diff --git a/runtime/Java/src/org/antlr/v4/runtime/Parser.java b/runtime/Java/src/org/antlr/v4/runtime/Parser.java index 7fa0cfb6a..b5940bf0a 100644 --- a/runtime/Java/src/org/antlr/v4/runtime/Parser.java +++ b/runtime/Java/src/org/antlr/v4/runtime/Parser.java @@ -175,10 +175,17 @@ public abstract class Parser extends Recognizer public void removeParseListener(ParseListener l) { if ( l==null ) return; - if ( _parseListeners!=null ) _parseListeners.remove(l); + if ( _parseListeners!=null ) { + _parseListeners.remove(l); + if (_parseListeners.isEmpty()) { + _parseListeners = null; + } + } } - public void removeParseListeners() { if ( _parseListeners!=null ) _parseListeners.clear(); } + public void removeParseListeners() { + _parseListeners = null; + } public void triggerEnterRuleEvent() { for (ParseListener l : _parseListeners) {