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

Reply via email to