I've seen this same stack trace from pretty early on, but I never had time to track down the issue... I figured it was a threading issue, to be honest, and I wasn't convinced that it wasn't my code that was at fault. But if you look at
http://issues.apache.org/jira/browse/TAPESTRY-1658
I posted the same stack trace there. I'm seeing this in two separate apps now, one fairly complicated app, and one extremely trivial one. I should back up a bit on the trivial app; I haven't personally seen it, but I'm now hearing reports from users that they are seeing it on occasion; they didn't use to, but the app usage is picking up now, so...
I've seen this in version 5.0.3, 5.0.4, 5.0.5, and also in 5.0.6.

The info that Geof provided sounds about right, as the more complicated app has more long-running procedures.

Sorry I don't have more info than that, but I've had my own series of issues to deal with that have been more pressing than an intermittent NPE.

Robert

On Jan 8, 2008, at 1/812:16 PM , Howard Lewis Ship wrote:

That doesn't look good .. but it is an earlier version of the
framework, looks like 5.0.3 or 5.0.4.

Looks like its hitting this code:

   public CookieSource buildCookieSource()
   {
       return new CookieSource()
       {

           public Cookie[] getCookies()
           {
return _requestGlobals.getHTTPServletRequest().getCookies();
           }

       };
   }

That should be pretty bullet proof, since the _requestGlobals field is
final and set in the constructor.  I'm not sure what other changes may
have affected this situation in the intervening releases.

On Jan 8, 2008 4:09 AM, Geoff Callender
<[EMAIL PROTECTED]> wrote:
While trying to demonstrate the dangers of multiple submits, I found
Tapestry throwing NullPointerException.

Can someone who understands Tapestry's internals shed some light on
this?

To make the test possible, I emulated a slow operation by sleeping 2
seconds.  The NPE then occurred on the 3rd or later click - it varied
quite a bit.  Here's how I emulated the slow operation...

       @ApplicationState
       private MyOrder _myOrder;

       Object onSuccess() {
sleep(2000); // Sleep 2 seconds to simulate slow transaction

               int newQuantity = _myOrder.getQuantity() + 1;
               _myOrder.setQuantity(newQuantity);

               return _page2;
       }

       private void sleep(long duration) {
               try {
                       Thread.sleep(duration);
               }
               catch (InterruptedException e) {
               }
       }

Here's the exception...

22:45:53,443 ERROR [RequestExceptionHandler] Processing of request
failed with uncaught exception: java.lang.NullPointerException
java.lang.NullPointerException
       at org.apache.tapestry.internal.services.InternalModule
$2.getCookies(InternalModule.java:307)
at $CookieSource_11759363dd0.getCookies($CookieSource_11759363dd0.java)
       at
org
.apache
.tapestry
.internal.services.CookiesImpl.readCookieValue(CookiesImpl.java:53)
at $Cookies_11759363dcf.readCookieValue($Cookies_11759363dcf.java)
       at
org
.apache
.tapestry
.services
.PersistentLocaleImpl.getCookieValue(PersistentLocaleImpl.java:46)
       at
org
.apache
.tapestry .services.PersistentLocaleImpl.get(PersistentLocaleImpl.java:
40)
       at
$PersistentLocale_11759363dce.get($PersistentLocale_11759363dce.java)
       at
org
.apache
.tapestry
.internal
.services
.LocalizationSetterImpl.setThreadLocale(LocalizationSetterImpl.java: 98)
       at
$
LocalizationSetter_11759363dcb
.setThreadLocale($LocalizationSetter_11759363dcb.java)
       at
org
.apache
.tapestry
.internal .services.LocalizationFilter.service(LocalizationFilter.java:
41)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at org.apache.tapestry.services.TapestryModule
$2.service(TapestryModule.java:688)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at
org
.apache
.tapestry
.internal.services.StaticFilesFilter.service(StaticFilesFilter.java: 84)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:97)
       at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:88)
       at
org
.apache
.tapestry
.ioc .internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
       at
org
.apache
.tapestry
.internal
.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java: 110)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at
$RequestHandler_11759363dc6.service($RequestHandler_11759363dc6.java)
       at org.apache.tapestry.services.TapestryModule
$12.service(TapestryModule.java:1086)
       at
$
HttpServletRequestHandler_11759363dc5
.service($HttpServletRequestHandler_11759363dc5.java)
at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
       at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
       at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org
.jboss
.web .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
96)
       at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
       at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org
.apache
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
230)
       at
org
.apache
.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
       at
org
.jboss
.web
.tomcat
.security
.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at
org
.jboss
.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 84)
       at
org
.apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
       at
org
.apache .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
       at
org
.jboss
.web
.tomcat
.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
157)
       at
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 109)
       at
org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
262)
       at
org .apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
       at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint $Worker.run(JIoEndpoint.java:
446)
       at java.lang.Thread.run(Thread.java:613)
22:45:53,449 ERROR [ExceptionReport] Render queue error in
BeginRender[core/ExceptionReport:renderobject_0]:
org.apache.tapestry.ioc.internal.util.TapestryException
org.apache.tapestry.ioc.internal.util.TapestryException [at
classpath:org/apache/tapestry/corelib/pages/ExceptionReport.tml, line
45, column 41]
       at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:935)
       at
org .apache.tapestry.internal.structure.ComponentPageElementImpl.access
$100(ComponentPageElementImpl.java:69)
at org.apache.tapestry.internal.structure.ComponentPageElementImpl
$10.render(ComponentPageElementImpl.java:349)
       at
org
.apache
.tapestry .internal.services.RenderQueueImpl.run(RenderQueueImpl.java:58)
       at
org
.apache
.tapestry
.internal
.services
.PageMarkupRendererImpl .renderPageMarkup(PageMarkupRendererImpl.java:40)
       at
$
PageMarkupRenderer_11759363e09
.renderPageMarkup($PageMarkupRenderer_11759363e09.java)
       at
org
.apache
.tapestry
.internal
.services
.PageResponseRendererImpl
.renderPageResponse(PageResponseRendererImpl.java:71)
       at
$
PageResponseRenderer_11759363ddb
.renderPageResponse($PageResponseRenderer_11759363ddb.java)
       at
org
.apache
.tapestry
.internal
.services
.DefaultRequestExceptionHandler
.handleRequestException(DefaultRequestExceptionHandler.java:60)
       at
$
RequestExceptionHandler_11759363dca
.handleRequestException($RequestExceptionHandler_11759363dca.java)
       at org.apache.tapestry.services.TapestryModule
$2.service(TapestryModule.java:697)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at
org
.apache
.tapestry
.internal.services.StaticFilesFilter.service(StaticFilesFilter.java: 84)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:97)
       at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:88)
       at
org
.apache
.tapestry
.ioc .internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
       at
org
.apache
.tapestry
.internal
.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java: 110)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at
$RequestHandler_11759363dc6.service($RequestHandler_11759363dc6.java)
       at org.apache.tapestry.services.TapestryModule
$12.service(TapestryModule.java:1086)
       at
$
HttpServletRequestHandler_11759363dc5
.service($HttpServletRequestHandler_11759363dc5.java)
at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
       at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
       at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org
.jboss
.web .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
96)
       at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
       at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org
.apache
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
230)
       at
org
.apache
.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
       at
org
.jboss
.web
.tomcat
.security
.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at
org
.jboss
.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 84)
       at
org
.apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
       at
org
.apache .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
       at
org
.jboss
.web
.tomcat
.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
157)
       at
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 109)
       at
org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
262)
       at
org .apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
       at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint $Worker.run(JIoEndpoint.java:
446)
       at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.NullPointerException
at $Request_11759363def.getContextPath($Request_11759363def.java) at $Request_11759363dc0.getContextPath($Request_11759363dc0.java)
       at
org
.apache
.tapestry
.internal.services.RequestRenderer.render(RequestRenderer.java:34)
       at
org
.apache
.tapestry
.internal.services.RequestRenderer.render(RequestRenderer.java:24)
at $ObjectRenderer_11759363ec6.render($ObjectRenderer_11759363ec6.java) at $ObjectRenderer_11759363dad.render($ObjectRenderer_11759363dad.java)
       at
org
.apache
.tapestry
.corelib.components.RenderObject.beginRender(RenderObject.java:39)
       at
org
.apache
.tapestry .corelib.components.RenderObject.beginRender(RenderObject.java) at org.apache.tapestry.internal.structure.ComponentPageElementImpl
$10$1.run(ComponentPageElementImpl.java:345)
       at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:923)
       ... 40 more
22:45:53,450 ERROR [PagePool] Page Page[core/ExceptionReport en_US] is
dirty, and will be discarded (rather than returned to the page pool).
22:45:53,450 ERROR [[default]] Servlet.service() for servlet default
threw exception
org.apache.tapestry.ioc.internal.util.TapestryException [at
classpath:org/apache/tapestry/corelib/pages/ExceptionReport.tml, line
45, column 41]
       at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:935)
       at
org .apache.tapestry.internal.structure.ComponentPageElementImpl.access
$100(ComponentPageElementImpl.java:69)
at org.apache.tapestry.internal.structure.ComponentPageElementImpl
$10.render(ComponentPageElementImpl.java:349)
       at
org
.apache
.tapestry .internal.services.RenderQueueImpl.run(RenderQueueImpl.java:58)
       at
org
.apache
.tapestry
.internal
.services
.PageMarkupRendererImpl .renderPageMarkup(PageMarkupRendererImpl.java:40)
       at
$
PageMarkupRenderer_11759363e09
.renderPageMarkup($PageMarkupRenderer_11759363e09.java)
       at
org
.apache
.tapestry
.internal
.services
.PageResponseRendererImpl
.renderPageResponse(PageResponseRendererImpl.java:71)
       at
$
PageResponseRenderer_11759363ddb
.renderPageResponse($PageResponseRenderer_11759363ddb.java)
       at
org
.apache
.tapestry
.internal
.services
.DefaultRequestExceptionHandler
.handleRequestException(DefaultRequestExceptionHandler.java:60)
       at
$
RequestExceptionHandler_11759363dca
.handleRequestException($RequestExceptionHandler_11759363dca.java)
       at org.apache.tapestry.services.TapestryModule
$2.service(TapestryModule.java:697)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at
org
.apache
.tapestry
.internal.services.StaticFilesFilter.service(StaticFilesFilter.java: 84)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:97)
       at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:88)
       at
org
.apache
.tapestry
.ioc .internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
       at
org
.apache
.tapestry
.internal
.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java: 110)
       at
$RequestHandler_11759363dcd.service($RequestHandler_11759363dcd.java)
       at
$RequestHandler_11759363dc6.service($RequestHandler_11759363dc6.java)
       at org.apache.tapestry.services.TapestryModule
$12.service(TapestryModule.java:1086)
       at
$
HttpServletRequestHandler_11759363dc5
.service($HttpServletRequestHandler_11759363dc5.java)
at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
       at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
       at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org
.jboss
.web .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
96)
       at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
       at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org
.apache
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
230)
       at
org
.apache
.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
       at
org
.jboss
.web
.tomcat
.security
.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at
org
.jboss
.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 84)
       at
org
.apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
       at
org
.apache .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
       at
org
.jboss
.web
.tomcat
.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
157)
       at
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 109)
       at
org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
262)
       at
org .apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
       at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint $Worker.run(JIoEndpoint.java:
446)
       at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.NullPointerException
at $Request_11759363def.getContextPath($Request_11759363def.java) at $Request_11759363dc0.getContextPath($Request_11759363dc0.java)
       at
org
.apache
.tapestry
.internal.services.RequestRenderer.render(RequestRenderer.java:34)
       at
org
.apache
.tapestry
.internal.services.RequestRenderer.render(RequestRenderer.java:24)
at $ObjectRenderer_11759363ec6.render($ObjectRenderer_11759363ec6.java) at $ObjectRenderer_11759363dad.render($ObjectRenderer_11759363dad.java)
       at
org
.apache
.tapestry
.corelib.components.RenderObject.beginRender(RenderObject.java:39)
       at
org
.apache
.tapestry .corelib.components.RenderObject.beginRender(RenderObject.java) at org.apache.tapestry.internal.structure.ComponentPageElementImpl
$10$1.run(ComponentPageElementImpl.java:345)
       at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:923)
       ... 40 more


Thanks,

Geoff



--
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to