# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /Users/david/Thunderbird/netbeans/jet-main # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java --- parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java Base (BASE) +++ parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java Locally Modified (Based On LOCAL) @@ -388,11 +388,25 @@ p = ref.get(); } if (p == null) { - final Lookup lookup = MimeLookup.getLookup (mimeType); - final ParserFactory parserFactory = lookup.lookup (ParserFactory.class); - if (parserFactory == null) { + Lookup lookup = MimeLookup.getLookup (mimeType); + ParserFactory parserFactory = lookup.lookup (ParserFactory.class); + int numberOfAttempts = 0; + while (parserFactory == null) { + // We live in a nice dynamic system, correct? + // Let's try again and keep our fingers crossed! + // http://netbeans.org/bugzilla/show_bug.cgi?id=210236 + if (numberOfAttempts++ > 5) { + // Enough is enough! throw new IllegalArgumentException("No parser for mime type: " + mimeType); } + try { + Thread.sleep(3000); + } catch (InterruptedException ex) { + // Who cares? + } + lookup = MimeLookup.getLookup (mimeType); + parserFactory = lookup.lookup (ParserFactory.class); + } p = parserFactory.createParser(Collections.emptyList()); cachedParsers.put(mimeType, new TimedWeakReference(p)); }