void (ProcessingEnvironment processingEnv, Throwable e) { if (processingEnv != null && !myCodeShown) { processingEnv.getMessager().printMessage( Diagnostic.Kind.MANDATORY_WARNING, "The " + e.getClass() + " may be caused by the wrapped ProcessingEnvironment object.\n" + "Please pass the wrapped ProcessingEnvironment further to super.init().\n"+ "If you need to access the original ProcessingEnvironment object (e.g. for creating com.sun.source.util.Trees.instance(ProcessingEnvironment)), you may use following code in the processor implementation:\n\n" + getUnwrapCodeSuggestion(ProcessingEnvironment.class, "processingEnv") ); processingEnv.getMessager().printMessage( Diagnostic.Kind.MANDATORY_WARNING, "Workaround: to make project compile with the current annotation processor implementation, start JPS with VM option: -D"+JavacMain.TRACK_AP_GENERATED_DEPENDENCIES_PROPERTY + "=false\n" + "When run from IDE, the option can be set in \"Compiler Settings | build process VM options\"" ); myCodeShown = true; } }