You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/10/05 12:51:53 UTC

svn commit: r1811200 - in /tomcat/trunk/java/org/apache/juli: ClassLoaderLogManager.java FileHandler.java logging/DirectJDKLog.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r1811200 - in /tomcat/trunk/java/org/apache/juli: ClassLoaderLogManager.java FileHandler.java logging/DirectJDKLog.java

Posted by Mark Thomas <ma...@apache.org>.
On 5 October 2017 15:43:56 BST, Konstantin Kolinko <kn...@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-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>For additional commands, e-mail: dev-help@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r1811200 - in /tomcat/trunk/java/org/apache/juli: ClassLoaderLogManager.java FileHandler.java logging/DirectJDKLog.java

Posted by Konstantin Kolinko <kn...@gmail.com>.
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-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org