You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Geoff Callender <ge...@gmail.com> on 2008/01/08 13:09:04 UTC
T5: Multiple clicks causing NPE
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
Re: T5: Multiple clicks causing NPE
Posted by Howard Lewis Ship <hl...@gmail.com>.
I've added https://issues.apache.org/jira/browse/TAPESTRY-2037
On Jan 8, 2008 4:47 PM, Howard Lewis Ship <hl...@gmail.com> wrote:
> I'll have to look into whether there is a workaround for that
> ThreadLocal bug, and figure out a way to test this.
>
>
> On Jan 8, 2008 2:08 PM, jason lea <ja...@kumachan.net.nz> wrote:
> > Hi,
> >
> > We get this error quite often with Java 1.5, we asked about it in the
> > mailing list back in August. We found the error doesn't occur in Java 1.6.
> > We usually see a stack trace with a NPE when doing getSession() or
> > getCookies().
> >
> > Here is what I wrote last time:
> >
> > We are getting an intermittent NullPointerException in Tapestry 5.0.5. We
> > are running on Java 1.5.
> > It seems that the RequestGlobals has a null Request when the call to
> > getCookies is made (or that RequestGlobals is null). We cannot get the
> > error to occur every time so testing is tricky, sometimes it occurs on the
> > first request after the webapp starts with subsequent requests good for a
> > few minutes before it occurs again. Other times it starts fine and pressing
> > F5 100 times might make it occur.
> >
> > Our thought at the moment is that a ThreadLocal bug (
> > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6550283 ) might be
> > causing the RequestGlobals to initially be correctly initialised and stored
> > in ThreadLocal but later on with more items being added this bug means
> > further down the track, a new RequestGlobals is added with null values.
> >
> >
> >
> > --
> > Jason Lea
> >
>
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator Apache Tapestry and Apache HiveMind
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: Multiple clicks causing NPE
Posted by Howard Lewis Ship <hl...@gmail.com>.
I'll have to look into whether there is a workaround for that
ThreadLocal bug, and figure out a way to test this.
On Jan 8, 2008 2:08 PM, jason lea <ja...@kumachan.net.nz> wrote:
> Hi,
>
> We get this error quite often with Java 1.5, we asked about it in the
> mailing list back in August. We found the error doesn't occur in Java 1.6.
> We usually see a stack trace with a NPE when doing getSession() or
> getCookies().
>
> Here is what I wrote last time:
>
> We are getting an intermittent NullPointerException in Tapestry 5.0.5. We
> are running on Java 1.5.
> It seems that the RequestGlobals has a null Request when the call to
> getCookies is made (or that RequestGlobals is null). We cannot get the
> error to occur every time so testing is tricky, sometimes it occurs on the
> first request after the webapp starts with subsequent requests good for a
> few minutes before it occurs again. Other times it starts fine and pressing
> F5 100 times might make it occur.
>
> Our thought at the moment is that a ThreadLocal bug (
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6550283 ) might be
> causing the RequestGlobals to initially be correctly initialised and stored
> in ThreadLocal but later on with more items being added this bug means
> further down the track, a new RequestGlobals is added with null values.
>
>
>
> --
> Jason Lea
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: Multiple clicks causing NPE
Posted by jason lea <ja...@kumachan.net.nz>.
Hi,
We get this error quite often with Java 1.5, we asked about it in the
mailing list back in August. We found the error doesn't occur in Java 1.6.
We usually see a stack trace with a NPE when doing getSession() or
getCookies().
Here is what I wrote last time:
We are getting an intermittent NullPointerException in Tapestry 5.0.5. We
are running on Java 1.5.
It seems that the RequestGlobals has a null Request when the call to
getCookies is made (or that RequestGlobals is null). We cannot get the
error to occur every time so testing is tricky, sometimes it occurs on the
first request after the webapp starts with subsequent requests good for a
few minutes before it occurs again. Other times it starts fine and pressing
F5 100 times might make it occur.
Our thought at the moment is that a ThreadLocal bug (
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6550283 ) might be
causing the RequestGlobals to initially be correctly initialised and stored
in ThreadLocal but later on with more items being added this bug means
further down the track, a new RequestGlobals is added with null values.
--
Jason Lea
Re: T5: Multiple clicks causing NPE
Posted by Geoff Callender <ge...@gmail.com>.
The test was with 5.0.7.
On 09/01/2008, at 5:48 AM, Robert Zeigler wrote:
> 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
>> <ge...@gmail.com> 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: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: Multiple clicks causing NPE
Posted by Robert Zeigler <ro...@scazdl.org>.
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
> <ge...@gmail.com> 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: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: Multiple clicks causing NPE
Posted by Howard Lewis Ship <hl...@gmail.com>.
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
<ge...@gmail.com> 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: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5: Multiple clicks causing NPE
Posted by Daniel Jue <te...@gmail.com>.
This is great! We should all be stress testing the framework to
reveal these kinds of problems. Easier to fix now than later!
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org