Never mind. I was looking in the wrong place. They are there. Ralph
> On Aug 19, 2016, at 2:04 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > I didn’t get an attachment. I believe the mailing list manager strips > attachments. > > Ralph > >> On Aug 19, 2016, at 1:52 PM, Bill Okara <billok...@gmail.com >> <mailto:billok...@gmail.com>> wrote: >> >> Hi Gary, >> >> actually the full stack was attached in that email already, please let >> me know if you can't find them... >> (Attachments: stacktrace_webinf.txt (5 kb) stacktrace_tomcatlib.txt (7 kb) >> ) >> >> Yeah, that's kinda my understanding (or guess) too. That is, by >> putting the log related jars in tomcat/lib, when the initializing the >> log4j2.xml, it's trying to initialize the KafkaAppender, whose jars >> are in tomcat/lib, thus it's trying to initialize the log4j config for >> that context. >> >> I was able to hack/workaround the issue by adding a log4j2-test.xml in >> WEB-INF/classes, and not using the KafkaAppender in the >> log4j2-test.xml. In that case, when initializing for tomcat/lib, the >> log4j2-test.xml got picked up before the log4j2.xml, and that kinda >> avoided the problem. >> >> But the caveat is that no longer can use KafkaAppender for anything >> logged by jars in tomcat/lib... >> >> I guess KafkaAppender is a special case that it's using a jar that >> also uses SLF4j/log4j logs. >> >> By having the jars in tomcat/lib seems like pretty clean for webapps >> to share same logging implementation and use their specific config. >> but not sure how to better workaround / resolve the issue without >> limiting all jars in tomcat/lib to not using KafkaAppender in this >> case. >> >> comments? >> >> >> Thanks! >> Bill >> >> >> On Fri, Aug 19, 2016 at 1:07 PM, Ralph Goers <ralph.go...@dslextreme.com >> <mailto:ralph.go...@dslextreme.com> <mailto:ralph.go...@dslextreme.com >> <mailto:ralph.go...@dslextreme.com>>> wrote: >>> I have a suspicion the key part of the stack trace isn’t included. I am >>> guessing that the code that causes the first call to the Kafka appender is >>> in your web app. This causes the ClassLoaderContextSelector to initialize >>> Log4j for the web app ClassLoader. Kafka itself is in tomcat/lib. When it >>> logs it causes Log4j to initialize for the tomcat/lib ClassLoader. That is >>> why you see the second LoggerContext start. >>> >>> However, I would really like to see the stack frames just below where you >>> stopped to see what is causing the initial Log4j initialization. >>> >>> Ralph >>> >>> >>> >>>> On Aug 19, 2016, at 11:17 AM, Bill Okara <billok...@gmail.com >>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>> <mailto:billok...@gmail.com>>> wrote: >>>> >>>> thanks for guiding me through this, Gary! >>>> >>>> Attached are 2 stack dumps, one is with the log related jars packaged >>>> in WEB-INF/lib, the other is having the jars provided in tomcat/lib, >>>> and below are what I noticed; that is, >>>> in WEB-INF/lib case, when initializing the >>>> private static final Logger log = >>>> LoggerFactory.getLogger(KafkaProducer.class); >>>> >>>> the getLogger seemed returned a logger right the way, vs in tomcat/lib >>>> case, it's trying to go through the getContext etc init stack, which >>>> in turn hit the KafkaProducer.java:188 again and had the NULL log at >>>> that case... >>>> >>>> comments? >>>> >>>> In WEB-INF/lib: >>>> at org.apache.kafka.common.config.ConfigDef.define(ConfigDef.java:346) >>>> at >>>> org.apache.kafka.clients.producer.ProducerConfig.<clinit>(ProducerConfig.java:220) >>>> at >>>> org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:188) >>>> at >>>> org.apache.logging.log4j.core.appender.mom.kafka.DefaultKafkaProducerFactory.newKafkaProducer(DefaultKafkaProducerFactory.java:29) >>>> >>>> In tomcat/lib: >>>> at >>>> org.apache.kafka.clients.producer.ProducerConfig.<clinit>(ProducerConfig.java:220) >>>> at >>>> org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:188) >>>> at >>>> org.apache.logging.log4j.core.appender.mom.kafka.DefaultKafkaProducerFactory.newKafkaProducer(DefaultKafkaProducerFactory.java:29) >>>> at >>>> org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.startup(KafkaManager.java:86) >>>> at >>>> org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.start(KafkaAppender.java:96) >>>> at >>>> org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:247) >>>> at >>>> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:496) >>>> at >>>> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:566) >>>> at >>>> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:582) >>>> at >>>> org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:217) >>>> at >>>> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152) >>>> at >>>> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) >>>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) >>>> at >>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:103) >>>> at >>>> org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) >>>> at >>>> org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) >>>> at >>>> org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) >>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358) >>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383) >>>> at >>>> org.apache.kafka.clients.producer.KafkaProducer.<clinit>(KafkaProducer.java:131) >>>> at >>>> org.apache.logging.log4j.core.appender.mom.kafka.DefaultKafkaProducerFactory.newKafkaProducer(DefaultKafkaProducerFactory.java:29) >>>> >>>> >>>> >>>> Thanks, >>>> Bill >>>> >>>> >>>> On Fri, Aug 19, 2016 at 1:46 AM, Gary Gregory <garydgreg...@gmail.com >>>> <mailto:garydgreg...@gmail.com> <mailto:garydgreg...@gmail.com >>>> <mailto:garydgreg...@gmail.com>> <mailto:garydgreg...@gmail.com >>>> <mailto:garydgreg...@gmail.com> <mailto:garydgreg...@gmail.com >>>> <mailto:garydgreg...@gmail.com>>>> wrote: >>>>> Hello Bill, >>>>> >>>>> What you could do is start the whole thing in a debugger and put a >>>>> breakpoint >>>>> in >>>>> org.apache.kafka.clients.producer.KafkaProducer.KafkaProducer(ProducerConfig, >>>>> Serializer<K>, Serializer<V>) here: >>>>> >>>>> } catch (Throwable t) { >>>>> // call close methods if internal objects are already >>>>> constructed >>>>> // this is to prevent resource leak. see KAFKA-2121 >>>>> ---> BREAKPOINT close(0, TimeUnit.MILLISECONDS, true); >>>>> // now propagate the exception >>>>> throw new KafkaException("Failed to construct kafka producer", >>>>> t); >>>>> } >>>>> >>>>> This line 333 in the latest client. >>>>> >>>>> Then you can dump the exception on the console and tell us what it is >>>>> because we are not seeing it in the log since the close method causes its >>>>> own NPE. >>>>> >>>>> Finding what the Throwable is will be a lot. >>>>> >>>>> Gary >>>>> >>>>> On Thu, Aug 18, 2016 at 11:30 PM, Bill Okara <billok...@gmail.com >>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>> <mailto:billok...@gmail.com>> <mailto:billok...@gmail.com >>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>> <mailto:billok...@gmail.com>>>> wrote: >>>>> >>>>>> Thanks, Gary, >>>>>> >>>>>> you're probably right, the log in log.info <http://log.info/> >>>>>> <http://log.info/ <http://log.info/>> <http://log.info/ >>>>>> <http://log.info/> <http://log.info/ <http://log.info/>>> seems to be >>>>>> the culprit. >>>>>> >>>>>> By doing the 'trace' in log4j2.xml, it seems that the initialization >>>>>> for the WebappClassLoader actually finished OK, but when initializing >>>>>> for the Parent Classloader, it's when the NullPointerException >>>>>> happened. Any idea why? or did the config in the previously attached >>>>>> src look legit? >>>>>> >>>>>> Thanks! >>>>>> Bill >>>>>> >>>>>> ------- >>>>>> 2016-08-19 00:00:28,569 localhost-startStop-1 DEBUG Configuration >>>>>> XmlConfiguration[location=jndi:/localhost/log4j-appender/WEB-INF/classes/ >>>>>> log4j2.xml] >>>>>> initialized >>>>>> 2016-08-19 00:00:28,570 localhost-startStop-1 DEBUG Starting >>>>>> configuration XmlConfiguration[location=jndi:/localhost/log4j- >>>>>> appender/WEB-INF/classes/log4j2.xml] >>>>>> 2016-08-19 00:00:28,579 localhost-startStop-1 DEBUG PluginManager >>>>>> 'Converter' found 41 plugins >>>>>> 2016-08-19 00:00:28,579 localhost-startStop-1 DEBUG Starting >>>>>> OutputStreamManager SYSTEM_OUT.false.false-3 >>>>>> 2016-08-19 00:00:28,579 localhost-startStop-1 DEBUG Starting >>>>>> LoggerContext[name=1f32e575, >>>>>> org.apache.logging.log4j.core.LoggerContext@28b2955f]... >>>>>> 2016-08-19 00:00:28,580 localhost-startStop-1 DEBUG Reconfiguration >>>>>> started for context[name=1f32e575] at URI null >>>>>> (org.apache.logging.log4j.core.LoggerContext@28b2955f) with optional >>>>>> ClassLoader: null >>>>>> 2016-08-19 00:00:28,580 localhost-startStop-1 DEBUG Using >>>>>> configurationFactory >>>>>> org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@42223c17 >>>>>> 2016-08-19 00:00:28,580 localhost-startStop-1 TRACE Trying to find >>>>>> [log4j2-test1f32e575.properties] using context class loader >>>>>> WebappClassLoader >>>>>> context: /log4j-appender >>>>>> delegate: false >>>>>> repositories: >>>>>> /WEB-INF/classes/ >>>>>> ----------> Parent Classloader: >>>>>> java.net.URLClassLoader@1f32e575 >>>>>> class loader. >>>>>> 2016-08-19 00:00:28,598 localhost-startStop-1 TRACE Trying to find >>>>>> [log4j2.jsn] using ClassLoader.getSystemResource(). >>>>>> 2016-08-19 00:00:28,599 localhost-startStop-1 TRACE Trying to find >>>>>> [log4j2.xml] using context class loader WebappClassLoader >>>>>> context: /log4j-appender >>>>>> delegate: false >>>>>> repositories: >>>>>> /WEB-INF/classes/ >>>>>> ----------> Parent Classloader: >>>>>> java.net.URLClassLoader@1f32e575 >>>>>> . >>>>>> 2016-08-19 00:00:28,602 localhost-startStop-1 DEBUG Initializing >>>>>> configuration XmlConfiguration[location=/opt/java/apache/apache-tomcat- >>>>>> 7.0.70/webapps/log4j-appender/WEB-INF/classes/log4j2.xml] >>>>>> 2016-08-19 00:00:28,603 localhost-startStop-1 DEBUG Installed script >>>>>> engines >>>>>> ... >>>>>> 016-08-19 00:00:28,619 localhost-startStop-1 DEBUG Configuration >>>>>> XmlConfiguration[location=/opt/java/apache/apache-tomcat- >>>>>> 7.0.70/webapps/log4j-appender/WEB-INF/classes/log4j2.xml] >>>>>> initialized >>>>>> 2016-08-19 00:00:28,619 localhost-startStop-1 DEBUG Starting >>>>>> configuration XmlConfiguration[location=/opt/java/apache/apache-tomcat- >>>>>> 7.0.70/webapps/log4j-appender/WEB-INF/classes/log4j2.xml] >>>>>> Aug 19, 2016 12:00:28 AM org.apache.catalina.core.ContainerBase >>>>>> addChildInternal >>>>>> SEVERE: ContainerBase.addChild: start: >>>>>> org.apache.catalina.LifecycleException: Failed to start component >>>>>> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/log4j- >>>>>> appender]] >>>>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) >>>>>> at org.apache.catalina.core.ContainerBase.addChildInternal( >>>>>> ContainerBase.java:899) >>>>>> at >>>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) >>>>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) >>>>>> at org.apache.catalina.startup.HostConfig.deployDirectory( >>>>>> HostConfig.java:1260) >>>>>> at org.apache.catalina.startup.HostConfig$DeployDirectory. >>>>>> run(HostConfig.java:2002) >>>>>> at >>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>>>> at java.util.concurrent.ThreadPoolExecutor.runWorker( >>>>>> ThreadPoolExecutor.java:1142) >>>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run( >>>>>> ThreadPoolExecutor.java:617) >>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>> Caused by: java.lang.ExceptionInInitializerError >>>>>> at org.apache.logging.log4j.core.appender.mom.kafka. >>>>>> DefaultKafkaProducerFactory.newKafkaProducer(DefaultKafkaProducerFactory. >>>>>> java:29) >>>>>> at org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager.startup( >>>>>> KafkaManager.java:86) >>>>>> at org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.start( >>>>>> KafkaAppender.java:96) >>>>>> at org.apache.logging.log4j.core.config.AbstractConfiguration. >>>>>> start(AbstractConfiguration.java:247) >>>>>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration( >>>>>> LoggerContext.java:496) >>>>>> at org.apache.logging.log4j.core.LoggerContext.start( >>>>>> LoggerContext.java:249) >>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext( >>>>>> Log4jContextFactory.java:239) >>>>>> at org.apache.logging.log4j.core.config.Configurator. >>>>>> initialize(Configurator.java:157) >>>>>> at >>>>>> org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi( >>>>>> Log4jWebInitializerImpl.java:167) >>>>>> at org.apache.logging.log4j.web.Log4jWebInitializerImpl.start( >>>>>> Log4jWebInitializerImpl.java:109) >>>>>> at org.apache.logging.log4j.web.Log4jServletContainerInitializ >>>>>> er.onStartup(Log4jServletContainerInitializer.java:57) >>>>>> at org.apache.catalina.core.StandardContext.startInternal( >>>>>> StandardContext.java:5604) >>>>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) >>>>>> ... 10 more >>>>>> Caused by: java.lang.NullPointerException >>>>>> at org.apache.kafka.clients.producer.KafkaProducer.close( >>>>>> KafkaProducer.java:658) >>>>>> at org.apache.kafka.clients.producer.KafkaProducer.<init>( >>>>>> KafkaProducer.java:333) >>>>>> at org.apache.kafka.clients.producer.KafkaProducer.<init>( >>>>>> KafkaProducer.java:188) >>>>>> ------------- >>>>>> >>>>>> On Thu, Aug 18, 2016 at 5:40 PM, Gary Gregory <garydgreg...@gmail.com >>>>>> <mailto:garydgreg...@gmail.com> <mailto:garydgreg...@gmail.com >>>>>> <mailto:garydgreg...@gmail.com>> <mailto:garydgreg...@gmail.com >>>>>> <mailto:garydgreg...@gmail.com> <mailto:garydgreg...@gmail.com >>>>>> <mailto:garydgreg...@gmail.com>>>> >>>>>> wrote: >>>>>>> Based on the stack trace, it looks like the Slf4j logger in >>>>>>> KafkaProducer >>>>>>> is null: >>>>>>> >>>>>>> log.info <http://log.info/> <http://log.info/ <http://log.info/>> >>>>>>> <http://log.info/ <http://log.info/> <http://log.info/ >>>>>>> <http://log.info/>>>("Closing the Kafka producer with timeoutMillis = {} >>>>>> ms.", >>>>>>> timeUnit.toMillis(timeout)); >>>>>>> >>>>>>> It does not look like timeUnit can be null, so it must be log. >>>>>>> >>>>>>> The root problem of course if that we have an exception thrown in the >>>>>>> KafkaProducer >>>>>>> ctor. >>>>>>> >>>>>>> Gary >>>>>>> >>>>>>> On Thu, Aug 18, 2016 at 3:44 PM, Bill Okara <billok...@gmail.com >>>>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>>>> <mailto:billok...@gmail.com>> <mailto:billok...@gmail.com >>>>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>>>> <mailto:billok...@gmail.com>>>> wrote: >>>>>>> >>>>>>>> tried again, seemed like the .out extension got filtered out by mail >>>>>>>> server... >>>>>>>> >>>>>>>> On Thu, Aug 18, 2016 at 4:41 PM, Bill Okara <billok...@gmail.com >>>>>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>>>>> <mailto:billok...@gmail.com>> <mailto:billok...@gmail.com >>>>>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>>>>> <mailto:billok...@gmail.com>>>> >>>>>> wrote: >>>>>>>>> attach the catalina.out again, didn't seem to go through last time... >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Aug 18, 2016 at 4:33 PM, Bill Okara <billok...@gmail.com >>>>>>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>>>>>> <mailto:billok...@gmail.com>> <mailto:billok...@gmail.com >>>>>>>>> <mailto:billok...@gmail.com> <mailto:billok...@gmail.com >>>>>>>>> <mailto:billok...@gmail.com>>>> >>>>>> wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> When trying out the log4j2 Kafka appender, it works ok if all the >>>>>>>>>> log4j2/kafka-client related jars are packaged in the webapp's >>>>>>>>>> WEB-INF/lib, like: >>>>>>>>>> >>>>>>>>>>> ls WEB-INF/lib/ >>>>>>>>>> jackson-core-2.8.1.jar >>>>>>>>>> log4j-core-2.6.2.jar >>>>>>>>>> lz4-1.3.0.jar >>>>>>>>>> kafka-clients-0.10.0.1.jar >>>>>>>>>> log4j-slf4j-impl-2.6.2.jar >>>>>>>>>> slf4j-api-1.7.21.jar >>>>>>>>>> log4j-api-2.6.2.jar >>>>>>>>>> log4j-web-2.6.2.jar >>>>>>>>>> snappy-java-1.1.2.6.jar >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> But if the jars are provided in tomcat/lib (for all webapps), and >>>>>> each >>>>>>>>>> webapp will have its own log4j2.xml (as in attached war), then when >>>>>>>>>> launching the webapp, will encounter: >>>>>>>>>> >>>>>>>>>> ----- >>>>>>>>>> Caused by: java.lang.NullPointerException >>>>>>>>>> at org.apache.kafka.clients.producer.KafkaProducer.close( >>>>>>>> KafkaProducer.java:658) >>>>>>>>>> at org.apache.kafka.clients.producer.KafkaProducer.<init>( >>>>>>>> KafkaProducer.java:333) >>>>>>>>>> at org.apache.kafka.clients.producer.KafkaProducer.<init>( >>>>>>>> KafkaProducer.java:188) >>>>>>>>>> at org.apache.logging.log4j.core.appender.mom.kafka. >>>>>>>> DefaultKafkaProducerFactory.newKafkaProducer( >>>>>> DefaultKafkaProducerFactory. >>>>>>>> java:29) >>>>>>>>>> at org.apache.logging.log4j.core.appender.mom.kafka. >>>>>>>> KafkaManager.startup(KafkaManager.java:86) >>>>>>>>>> at org.apache.logging.log4j.core.appender.mom.kafka. >>>>>>>> KafkaAppender.start(KafkaAppender.java:96) >>>>>>>>>> at org.apache.logging.log4j.core. >>>>>> config.AbstractConfiguration. >>>>>>>> start(AbstractConfiguration.java:247) >>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext. >>>>>>>> setConfiguration(LoggerContext.java:496) >>>>>>>>>> at org.apache.logging.log4j.core.LoggerContext.reconfigure( >>>>>>>> LoggerContext.java:566) >>>>>>>>>> --------- >>>>>>>>>> >>>>>>>>>> (full stack trace as in attached catalina.out) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> To reproduce the error, simply: >>>>>>>>>> 1) build the attached webapp, and deploy the output to tomcat/webapps >>>>>>>>>> 2) move the WEB-INF/lib/*.jar to tomcat/lib (make sure WEB-INF/lib is >>>>>>>>>> empty after move) >>>>>>>>>> 3) start tomcat >>>>>>>>>> >>>>>>>>>> Tested with tomcat 7.0.70 >>>>>>>>>> >>>>>>>>>> Anyone encounter similar problem? or is this a bug? (log4j2 or >>>>>>>>>> kafka-client bug?) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Bill >>>>>>>> >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>>>> <mailto:log4j-user-unsubscr...@logging.apache.org> >>>>>>>> <mailto:log4j-user-unsubscr...@logging.apache.org >>>>>>>> <mailto:log4j-user-unsubscr...@logging.apache.org>> >>>>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>>>> <mailto:log4j-user-h...@logging.apache.org> >>>>>>>> <mailto:log4j-user-h...@logging.apache.org >>>>>>>> <mailto:log4j-user-h...@logging.apache.org>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> >>>>>>> <mailto:garydgreg...@gmail.com <mailto:garydgreg...@gmail.com>> | >>>>>>> ggreg...@apache.org <mailto:ggreg...@apache.org> >>>>>>> <mailto:ggreg...@apache.org <mailto:ggreg...@apache.org>> >>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/> >>>>>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>> >>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ >>>>>>> <http://www.manning.com/tahchiev/> <http://www.manning.com/tahchiev/ >>>>>>> <http://www.manning.com/tahchiev/>>> >>>>>>> Spring Batch in Action <http://www.manning.com/templier/ >>>>>>> <http://www.manning.com/templier/> <http://www.manning.com/templier/ >>>>>>> <http://www.manning.com/templier/>>> >>>>>>> Blog: http://garygregory.wordpress.com >>>>>>> <http://garygregory.wordpress.com/> <http://garygregory.wordpress.com/ >>>>>>> <http://garygregory.wordpress.com/>> >>>>>>> Home: http://garygregory.com/ <http://garygregory.com/> >>>>>>> <http://garygregory.com/ <http://garygregory.com/>> >>>>>>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> >>>>>>> <http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>>>> <mailto:log4j-user-unsubscr...@logging.apache.org> >>>>>> <mailto:log4j-user-unsubscr...@logging.apache.org >>>>>> <mailto:log4j-user-unsubscr...@logging.apache.org>> >>>>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>>>> <mailto:log4j-user-h...@logging.apache.org> >>>>>> <mailto:log4j-user-h...@logging.apache.org >>>>>> <mailto:log4j-user-h...@logging.apache.org>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> >>>>> <mailto:garydgreg...@gmail.com <mailto:garydgreg...@gmail.com>> | >>>>> ggreg...@apache.org <mailto:ggreg...@apache.org> >>>>> <mailto:ggreg...@apache.org <mailto:ggreg...@apache.org>> >>>>> Java Persistence with Hibernate, Second Edition >>>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/> >>>>> <http://www.manning.com/bauer3/ <http://www.manning.com/bauer3/>>> >>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/ >>>>> <http://www.manning.com/tahchiev/> <http://www.manning.com/tahchiev/ >>>>> <http://www.manning.com/tahchiev/>>> >>>>> Spring Batch in Action <http://www.manning.com/templier/ >>>>> <http://www.manning.com/templier/> <http://www.manning.com/templier/ >>>>> <http://www.manning.com/templier/>>> >>>>> Blog: http://garygregory.wordpress.com >>>>> <http://garygregory.wordpress.com/> <http://garygregory.wordpress.com/ >>>>> <http://garygregory.wordpress.com/>> >>>>> Home: http://garygregory.com/ <http://garygregory.com/> >>>>> <http://garygregory.com/ <http://garygregory.com/>> >>>>> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory> >>>>> <http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>> >>>> <stacktrace_webinf.txt><stacktrace_tomcatlib.txt> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >>>> <mailto:log4j-user-unsubscr...@logging.apache.org> >>>> <mailto:log4j-user-unsubscr...@logging.apache.org >>>> <mailto:log4j-user-unsubscr...@logging.apache.org>> >>>> <mailto:log4j-user-unsubscr...@logging.apache.org >>>> <mailto:log4j-user-unsubscr...@logging.apache.org> >>>> <mailto:log4j-user-unsubscr...@logging.apache.org >>>> <mailto:log4j-user-unsubscr...@logging.apache.org>>> >>>> For additional commands, e-mail: log4j-user-h...@logging.apache.org >>>> <mailto:log4j-user-h...@logging.apache.org> >>>> <mailto:log4j-user-h...@logging.apache.org >>>> <mailto:log4j-user-h...@logging.apache.org>> >>>> <mailto:log4j-user-h...@logging.apache.org >>>> <mailto:log4j-user-h...@logging.apache.org> >>>> <mailto:log4j-user-h...@logging.apache.org >>>> <mailto:log4j-user-h...@logging.apache.org>>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org >> <mailto:log4j-user-unsubscr...@logging.apache.org> >> <mailto:log4j-user-unsubscr...@logging.apache.org >> <mailto:log4j-user-unsubscr...@logging.apache.org>> >> For additional commands, e-mail: log4j-user-h...@logging.apache.org >> <mailto:log4j-user-h...@logging.apache.org> >> <mailto:log4j-user-h...@logging.apache.org >> <mailto:log4j-user-h...@logging.apache.org>>