David Johle created LOG4J2-917:
----------------------------------
Summary: NoSuchMethodError:
o.a.l.l.core.config.Configuration.getStrSubstitutor()
Key: LOG4J2-917
URL: https://issues.apache.org/jira/browse/LOG4J2-917
Project: Log4j 2
Issue Type: Bug
Components: Core
Affects Versions: 2.1
Environment: Linux x86-64, JDK 1.6.x
Reporter: David Johle
I have a custom RolloverStrategy that I have been using since the early betas.
I am trying to bump up to v2.1 now, and when I start up my application I
receive a surprising NoSuchMethodError for a method that for sure exists.
In fact, my code is quite similar to the DefaultRolloverStrategy, and the
particular call that is throwing the exception is exactly as it's used in the
default scenario: config.getStrSubstitutor()
The "SharedFileRolloverStrategy" is my class, it deals with rollovers of shared
logs in a cluster with shared filesystem. Here is a bit of the debug logs
during startup, including some output I've added just prior to the offending
call, along with the exception:
2014-12-08 15:24:18,164 DEBUG Calling createStrategy on class
org.apache.logging.log4j.core.appender.rolling.SharedFileRolloverStrategy for
element SharedFileRolloverStrategy with
params(Configuration(/path/to/log4j2.xml))
2014-12-08 15:24:18,165 DEBUG Creating SharedFileRolloverStrategy
2014-12-08 15:32:50,086 DEBUG config =
org.apache.logging.log4j.core.config.XMLConfiguration@2b54ae5a
2014-12-08 15:32:50,087 ERROR Unable to invoke method createStrategy in class
org.apache.logging.log4j.core.appender.rolling.SharedFileRolloverStrategy for
element SharedFileRolloverStrategy java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.logging.log4j.core.config.BaseConfiguration.createPluginObject(BaseConfiguration.java:765)
[snip for brevity]
Caused by: java.lang.NoSuchMethodError:
org.apache.logging.log4j.core.config.Configuration.getStrSubstitutor()Lorg/apache/logging/log4j/core/lookup/StrSubstitutor;
at
org.apache.logging.log4j.core.appender.rolling.SharedFileRolloverStrategy.createStrategy(SharedFileRolloverStrategy.java:74)
... 39 more
I have run this under a debugger, and it is indeed an XmlConfiguration object
as indicated. I see that extends AbstractConfiguration where the actual
getStrSubstitutor() method is implemented. I even looked at the strings in the
.class file in the JAR I downloaded and see references to that method.
I'm at a loss as to why it is saying it does not exist.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]