On 5 October 2017 15:43:56 BST, Konstantin Kolinko <knst.koli...@gmail.com> wrote: >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
We've had this conversation before but I'd forgotten it until I read the above. The deprecation comment in the Javadoc is less than helpful. I'll fix this when I'm back in front of my PC. Mark > >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 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org