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