< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java

Print this page

        

*** 29,38 **** --- 29,39 ---- import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.lang.reflect.Method; + import java.lang.reflect.Constructor; import java.net.MalformedURLException; import java.net.URL; import java.nio.file.Path; import java.util.*; import java.util.regex.*;
*** 280,292 **** private void initProcessorIterator(Iterable<? extends Processor> processors) { Iterator<? extends Processor> processorIterator; if (options.isSet(XPRINT)) { try { ! @SuppressWarnings("deprecation") ! Processor processor = PrintingProcessor.class.newInstance(); ! processorIterator = List.of(processor).iterator(); } catch (Throwable t) { AssertionError assertError = new AssertionError("Problem instantiating PrintingProcessor."); assertError.initCause(t); throw assertError; --- 281,291 ---- private void initProcessorIterator(Iterable<? extends Processor> processors) { Iterator<? extends Processor> processorIterator; if (options.isSet(XPRINT)) { try { ! processorIterator = List.of(new PrintingProcessor()).iterator(); } catch (Throwable t) { AssertionError assertError = new AssertionError("Problem instantiating PrintingProcessor."); assertError.initCause(t); throw assertError;
*** 538,580 **** public boolean hasNext() { if (nextProc != null) return true; else { ! if (!names.hasNext()) return false; ! else { ! String processorName = names.next(); ! Processor processor; try { try { Class<?> processorClass = processorCL.loadClass(processorName); ensureReadable(processorClass); ! @SuppressWarnings("deprecation") ! Object tmp = processorClass.newInstance(); ! processor = (Processor) tmp; } catch (ClassNotFoundException cnfe) { log.error("proc.processor.not.found", processorName); ! return false; } catch (ClassCastException cce) { log.error("proc.processor.wrong.type", processorName); ! return false; } catch (Exception e ) { log.error("proc.processor.cant.instantiate", processorName); ! return false; } ! } catch(ClientCodeException e) { throw e; ! } catch(Throwable t) { throw new AnnotationProcessingError(t); } - nextProc = processor; - return true; - } - - } } public Processor next() { if (hasNext()) { Processor p = nextProc; --- 537,584 ---- public boolean hasNext() { if (nextProc != null) return true; else { ! if (!names.hasNext()) { return false; ! } else { ! Processor processor = getNextProcessor(names.next()); ! if (processor == null) { ! return false; ! } else { ! nextProc = processor; ! return true; ! } ! } ! } ! } ! private static final Class<?>[] EMPTY_PARAMETERS = new Class<?>[0]; ! ! private Processor getNextProcessor(String processorName) { try { try { Class<?> processorClass = processorCL.loadClass(processorName); ensureReadable(processorClass); ! Constructor<?> ctor = processorClass.getConstructor(EMPTY_PARAMETERS); ! return (Processor) (ctor.newInstance((Object[])null)); } catch (ClassNotFoundException cnfe) { log.error("proc.processor.not.found", processorName); ! return null; } catch (ClassCastException cce) { log.error("proc.processor.wrong.type", processorName); ! return null; } catch (Exception e ) { log.error("proc.processor.cant.instantiate", processorName); ! return null; } ! } catch (ClientCodeException e) { throw e; ! } catch (Throwable t) { throw new AnnotationProcessingError(t); } } public Processor next() { if (hasNext()) { Processor p = nextProc;
< prev index next >