@Override public synchronized void init(ProcessingEnvironment processingEnv) { super.init(processingEnv); try { Map<String, String> options = processingEnv.getOptions(); logger = new Logger(processingEnv.getMessager(), options); utils = new Utils(logger, processingEnv.getTypeUtils(), processingEnv.getElementUtils(), options); outputter = new Outputter(logger, this, processingEnv.getFiler(), getMacroFiles()); initSafe(); } catch (UnableToProcessException ignore) { } catch (Exception e) { logger.error().throwable(e).log(UNRESOLVABLE_EXCEPTION); } }