Interesting. Your app uses the java.util.logging API. These classes use MessageFormat ("...{0}...{1}...") for parameters.
Your code: logger.info("JSR 356 Mapping path {}", "/{path}"); causes MessageFormat to throw an IllegalArgumentException: can't parse argument number: path The first part ("JSR 356 Mapping path {}") is missing an index number, but perhaps the argumentIndex is optional for MessageFormat. However, it looks like the parameter ("/{path}") itself is also parsed as a MessageFormat pattern. You can fix this by escaping the curly braces. According to the MessageFormat docs everything in single quotes is interpreted literally, so "/'{path}'" will not be interpreted as a pattern but as a literal string. So, try this: logger.info("JSR 356 Mapping path {}", "/'{path}'"); On Sun, Jul 5, 2015 at 4:18 AM, Jose Luis Valencia <jvalen...@rocoto.com.pe> wrote: > This is the call stack: > at > org.apache.logging.log4j.spi.AbstractLogger.<init>(AbstractLogger.java:133) > at org.apache.logging.log4j.core.Logger.<init>(Logger.java:68) > at > > org.apache.logging.log4j.core.async.AsyncLogger.<init>(AsyncLogger.java:211) > at > > org.apache.logging.log4j.core.async.AsyncLoggerContext.newInstance(AsyncLoggerContext.java:53) > at > > org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:299) > at > > org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:56) > B>>>> at > > org.apache.logging.log4j.jul.CoreLoggerAdapter.newLogger(CoreLoggerAdapter.java:37)<<<<<<<<<B > at > > org.apache.logging.log4j.jul.CoreLoggerAdapter.newLogger(CoreLoggerAdapter.java:31) > at > > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47) > at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89) > at java.util.logging.LogManager.demandLogger(LogManager.java:551) > at java.util.logging.Logger.demandLogger(Logger.java:455) > at java.util.logging.Logger.getLogger(Logger.java:502) > at > > com.vaadin.external.org.slf4j.impl.JDK14LoggerFactory.getLogger(JDK14LoggerFactory.java:72) > - locked <0x12d9> (a > com.vaadin.external.org.slf4j.impl.JDK14LoggerFactory) > at > > com.vaadin.external.org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242) > at > > com.vaadin.external.org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254) > A >>>>>> at > > org.atmosphere.container.JSR356AsyncSupport.<clinit>(JSR356AsyncSupport.java:34) > <<<<<<<<<<A > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeConstructorAccessorImpl.java:-1) > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:408) > at > > org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:246)..... > .................... > > that logger is initialized in A, and CoreLoggerAdapter( > > http://logging.apache.org/log4j/2.x/log4j-jul/apidocs/org/apache/logging/log4j/jul/CoreLoggerAdapter.html > ) > calls in B context.getLogger(name, MESSAGE_FACTORY) where MESSAGE_FACTORY = > new MessageFormatMessageFactory(), > > On Fri, 3 Jul 2015 at 21:41 Remko Popma <remko.po...@gmail.com> wrote: > > > That logger (used in logger.info("JSR 356 Mapping path {}", > > servletPath);), > > can you check where/how it is created? The error indicates you are using > a > > > https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/message/MessageFormatMessageFactory.html > > > > while the "{}" for parameters can only be used with the default > > > https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/message/ParameterizedMessageFactory.html > > > > Sent from my iPhone > > > > > On 2015/07/04, at 3:54, Jose Luis Valencia <jvalen...@rocoto.com.pe> > > wrote: > > > > > > logger.info("JSR 356 Mapping path {}", servletPath); > > >