Take a look at this one: 2009-07-12 11:03:11,865 ERROR Web [RequestCycle] : java.lang.NullPointerException 2009-07-12 11:03:11,879 ERROR Web [MMRequestCycle] : The exception had a length of 0, dumping Stack 2009-07-12 11:03:11,885 ERROR Web [MMRequestCycle] : Logging: com.mdate.web.customcomponents.MMRequestCycle.logRuntimeException(MMRequestCycle.java:90) org.apache.wicket.RequestCycle.step(RequestCycle.java:1339) org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399) org.apache.wicket.RequestCycle.request(RequestCycle.java:529) org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356) org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:201) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437) org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) java.lang.Thread.run(Thread.java:619)
On Wed, Jul 1, 2009 at 6:48 PM, Johan Compagner <[email protected]>wrote: > Thats just a dumpstack of the current line in the onRuntimeException. > > Cant you just debug it somehow an break on exception? > > Or call fillstacktrace or something on it? Its weird that the > exception it self just wont generate a stack.. > > On 01/07/2009, Jeremy Levy <[email protected]> wrote: > > Okay, I was able to get a thread dump for when this mysterious exception > > happens, see my prior message for the code the code that I am using to > print > >this out: > > 2009-07-01 16:42:59,155 ERROR Web [RequestCycle] : > > java.lang.NullPointerException > > 2009-07-01 16:42:59,250 ERROR Web [MMRequestCycle] : The exception had a > > length of 0, dumping Stack > > 2009-07-01 16:42:59,263 ERROR Web [STDERR] : java.lang.Exception: Stack > > trace > > 2009-07-01 16:42:59,273 ERROR Web [STDERR] : at > > java.lang.Thread.dumpStack(Thread.java:1206) > > 2009-07-01 16:42:59,280 ERROR Web [STDERR] : at > > > com.mdate.web.customcomponents.MMRequestCycle.logRuntimeException(MMRequestCycle.java:95) > > 2009-07-01 16:42:59,288 ERROR Web [STDERR] : at > > org.apache.wicket.RequestCycle.step(RequestCycle.java:1339) > > 2009-07-01 16:42:59,297 ERROR Web [STDERR] : at > > org.apache.wicket.RequestCycle.steps(RequestCycle.java:1399) > > 2009-07-01 16:42:59,307 ERROR Web [STDERR] : at > > org.apache.wicket.RequestCycle.request(RequestCycle.java:529) > > 2009-07-01 16:42:59,317 ERROR Web [STDERR] : at > > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356) > > 2009-07-01 16:42:59,339 ERROR Web [STDERR] : at > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:201) > > 2009-07-01 16:42:59,356 ERROR Web [STDERR] : at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > 2009-07-01 16:42:59,363 ERROR Web [STDERR] : at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > 2009-07-01 16:42:59,372 ERROR Web [STDERR] : at > > > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > > 2009-07-01 16:42:59,380 ERROR Web [STDERR] : at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > 2009-07-01 16:42:59,389 ERROR Web [STDERR] : at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > 2009-07-01 16:42:59,398 ERROR Web [STDERR] : at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) > > 2009-07-01 16:42:59,407 ERROR Web [STDERR] : at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > > 2009-07-01 16:42:59,414 ERROR Web [STDERR] : at > > > org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) > > 2009-07-01 16:42:59,423 ERROR Web [STDERR] : at > > > org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) > > 2009-07-01 16:42:59,429 ERROR Web [STDERR] : at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > > 2009-07-01 16:42:59,435 ERROR Web [STDERR] : at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > > 2009-07-01 16:42:59,442 ERROR Web [STDERR] : at > > > org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) > > 2009-07-01 16:42:59,451 ERROR Web [STDERR] : at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > > 2009-07-01 16:42:59,464 ERROR Web [STDERR] : at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) > > 2009-07-01 16:42:59,484 ERROR Web [STDERR] : at > > org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437) > > 2009-07-01 16:42:59,492 ERROR Web [STDERR] : at > > > org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366) > > 2009-07-01 16:42:59,500 ERROR Web [STDERR] : at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) > > 2009-07-01 16:42:59,507 ERROR Web [STDERR] : at > > java.lang.Thread.run(Thread.java:619) > > > > > > > > > > On Wed, Jul 1, 2009 at 12:41 PM, Jeremy Levy <[email protected]> wrote: > > > >> I'm trying this, what do you think? > >> if (e == null) { > >> log.error("The exception was null, dumping Stack"); > >> Thread.dumpStack(); > >> } > >> > >> StackTraceElement[] out = e.getStackTrace(); > >> StringBuffer sb = new StringBuffer(); > >> > >> for (StackTraceElement ex : out) { > >> sb.append(ex.toString() + "\n"); > >> } > >> > >> if (out.length == 0) { > >> log.error("The exception had a length of 0, dumping > >> Stack"); > >> Thread.dumpStack(); > >> } > >> > >> > >> What I have seen so far is that e.getStackTrace() has a length of 0, so > I > >> added the thread dump... > >> > >> Jeremy > >> > >> On Mon, Jun 29, 2009 at 4:26 PM, Igor Vaynberg > >> <[email protected]>wrote: > >> > >>> even if the exception was not being chained it should have still had > >>> some sort of a stacktrace. > >>> > >>> -igor > >>> > >>> On Mon, Jun 29, 2009 at 11:39 AM, Martijn > >>> Reuvers<[email protected]> wrote: > >>> > Likely the message or stacktrace(s) (the actual cause) is throwing > the > >>> > nullpointer, in which case that is all you can see when logging. You > >>> > might wanna try: log.error("whatever here",e.getCause()), generally > >>> > the latter is what you're interested in anyway. You might also try: > >>> > > >>> > > >>> > @Override > >>> > protected void logRuntimeException(RuntimeException e) { > >>> > //super.logRuntimeException(e); // Turn this one off as > >>> > somewhere the error seems to occur > >>> > log.error("whatever, but NOT the message",e); > >>> > } > >>> > > >>> > Finally, I'd personally attempt to write it all to a custom file to > >>> > see if you can get anything useful into it. > >>> > > >>> > On Mon, Jun 29, 2009 at 6:49 PM, Igor Vaynberg< > [email protected]> > >>> wrote: > >>> >> log.runtimeexception is already doing log.error(e.getMessage(), e); > >>> >> and he is still not seeing the stacktrace... > >>> >> > >>> >> -igor > >>> >> > >>> >> On Mon, Jun 29, 2009 at 9:41 AM, mbrictson<[email protected]> > wrote: > >>> >>> > >>> >>> If you simply call log.error(e), your log will only contain > >>> e.toString(), > >>> >>> which does not include the stack trace. You need to use the 2-arg > >>> version of > >>> >>> log.error() if you want the full trace. > >>> >>> > >>> >>> Try this: > >>> >>> > >>> >>> log.error("An uncaught runtime exception occurred", e); > >>> >>> > >>> >>> > >>> >>> jelevy wrote: > >>> >>>> > >>> >>>> Igor, > >>> >>>> Can you give me some direction on how to go about getting the "e". > >>> >>>> > >>> >>>> In my own RequestCycle I've done the following: > >>> >>>> > >>> >>>> @Override > >>> >>>> protected void logRuntimeException(RuntimeException e) { > >>> >>>> super.logRuntimeException(e); > >>> >>>> log.error(e); > >>> >>>> } > >>> >>>> > >
