diff -r 36bb0f394df1 parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java --- a/parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java Thu Jun 14 01:04:16 2012 +0000 +++ b/parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java Thu Jun 14 11:01:06 2012 +0200 @@ -179,7 +179,7 @@ parser = parserFactory.createParser (snapShots); } } - final SourceCache uncachedSourceCache = new SourceCache(source, null); + final SourceCache uncachedSourceCache = new SourceCache(source, null, parser); SourceCache origCache = SourceAccessor.getINSTANCE().getAndSetCache(source, uncachedSourceCache); final ResultIterator resultIterator = new ResultIterator (uncachedSourceCache, parser, userTask); try { diff -r 36bb0f394df1 parsing.api/src/org/netbeans/modules/parsing/impl/SourceCache.java --- a/parsing.api/src/org/netbeans/modules/parsing/impl/SourceCache.java Thu Jun 14 01:04:16 2012 +0000 +++ b/parsing.api/src/org/netbeans/modules/parsing/impl/SourceCache.java Thu Jun 14 11:01:06 2012 +0200 @@ -106,6 +106,18 @@ source.getMimeType (); mimeType.getClass(); } + + public SourceCache ( + Source source, + Embedding embedding, + Parser parser + ) { + this(source, embedding); + if (parser != null) { + this.parserInitialized = true; + this.parser = parser; + } + } private void setEmbedding ( Embedding embedding