diff -r 16457b922100 web.core/src/org/netbeans/modules/web/core/jsploader/BaseJspEditorSupport.java --- a/web.core/src/org/netbeans/modules/web/core/jsploader/BaseJspEditorSupport.java Mon Jul 11 18:04:10 2016 +0000 +++ b/web.core/src/org/netbeans/modules/web/core/jsploader/BaseJspEditorSupport.java Wed Jul 13 17:42:27 2016 +1000 @@ -176,34 +176,26 @@ //EditorCookie.Observable listener addPropertyChangeListener(new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(EditorCookie.Observable.PROP_DOCUMENT)) { if (evt.getNewValue() != null) { //document loaded restartParserTask(); ((Document)evt.getNewValue()).addDocumentListener(DOCUMENT_LISTENER); - } else { + } else if (evt.getOldValue() != null) { //document closed - //Issue #172631>>> - Object oldDoc = evt.getOldValue(); - if(oldDoc == null) { - Logger.getLogger(getClass().getName()).log(Level.INFO, - "property change fired with both new and old value null!", - new IllegalStateException()); - return ; - } - //<<< - ((Document)oldDoc).removeDocumentListener(DOCUMENT_LISTENER); + ((Document)evt.getOldValue()).removeDocumentListener(DOCUMENT_LISTENER); //cancel waiting parsing task if there is any //this is largely a workaround for issue #50926 - TagLibParseSupport sup = (TagLibParseSupport) getDataObject().getCookie(TagLibParseSupport.class); + TagLibParseSupport sup = getDataObject().getLookup().lookup(TagLibParseSupport.class); if (sup != null) { sup.cancelParsingTask(); } } - } } + }); }