See "Re:r1791050" thread, 12 Apr 2017. You should use getConstructor() here!
Methods newInstance(), getConstructor() use a public constructor, but getDeclared*() may return a non-public method and using it requires additional privileges (checkMemberAccess(this, Member.DECLARED)). Javadoc: http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html 2017-10-05 15:51 GMT+03:00 <ma...@apache.org>: > Author: markt > Date: Thu Oct 5 12:51:53 2017 > New Revision: 1811200 > > URL: http://svn.apache.org/viewvc?rev=1811200&view=rev > Log: > Fix some more deprecation warnings when building with Java 9. > Use of Class.newInstance() in o.a.juli > > Modified: > tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java > tomcat/trunk/java/org/apache/juli/FileHandler.java > tomcat/trunk/java/org/apache/juli/logging/DirectJDKLog.java > > Modified: tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java?rev=1811200&r1=1811199&r2=1811200&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java (original) > +++ tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java Thu Oct 5 > 12:51:53 2017 > @@ -578,8 +578,8 @@ public class ClassLoaderLogManager exten > } > try { > this.prefix.set(prefix); > - Handler handler = > - (Handler) > classLoader.loadClass(handlerClassName).newInstance(); > + Handler handler = (Handler) classLoader.loadClass( > + > handlerClassName).getDeclaredConstructor().newInstance(); > // The specification strongly implies all configuration > should be done > // during the creation of the handler object. > // This includes setting level, filter, formatter and > encoding. > > Modified: tomcat/trunk/java/org/apache/juli/FileHandler.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/FileHandler.java?rev=1811200&r1=1811199&r2=1811200&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/juli/FileHandler.java (original) > +++ tomcat/trunk/java/org/apache/juli/FileHandler.java Thu Oct 5 12:51:53 > 2017 > @@ -424,7 +424,7 @@ public class FileHandler extends Handler > String filterName = getProperty(className + ".filter", null); > if (filterName != null) { > try { > - setFilter((Filter) cl.loadClass(filterName).newInstance()); > + setFilter((Filter) > cl.loadClass(filterName).getDeclaredConstructor().newInstance()); > } catch (Exception e) { > // Ignore > } > @@ -434,7 +434,8 @@ public class FileHandler extends Handler > String formatterName = getProperty(className + ".formatter", null); > if (formatterName != null) { > try { > - setFormatter((Formatter) > cl.loadClass(formatterName).newInstance()); > + setFormatter((Formatter) cl.loadClass( > + > formatterName).getDeclaredConstructor().newInstance()); > } catch (Exception e) { > // Ignore and fallback to defaults > setFormatter(new OneLineFormatter()); > > Modified: tomcat/trunk/java/org/apache/juli/logging/DirectJDKLog.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/logging/DirectJDKLog.java?rev=1811200&r1=1811199&r2=1811200&view=diff > ============================================================================== > --- tomcat/trunk/java/org/apache/juli/logging/DirectJDKLog.java (original) > +++ tomcat/trunk/java/org/apache/juli/logging/DirectJDKLog.java Thu Oct 5 > 12:51:53 2017 > @@ -42,11 +42,12 @@ class DirectJDKLog implements Log { > // default configuration - it sucks. Let's override at least the > // formatter for the console > try { > - Class.forName(SIMPLE_CFG).newInstance(); > + > Class.forName(SIMPLE_CFG).getDeclaredConstructor().newInstance(); > } catch( Throwable t ) { > } > try { > - Formatter > fmt=(Formatter)Class.forName(System.getProperty(FORMATTER, > SIMPLE_FMT)).newInstance(); > + Formatter fmt= (Formatter) Class.forName(System.getProperty( > + FORMATTER, > SIMPLE_FMT)).getDeclaredConstructor().newInstance(); > // it is also possible that the user modified > jre/lib/logging.properties - > // but that's really stupid in most cases > Logger root=Logger.getLogger(""); > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org