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

Reply via email to