You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Robert Zeigler (JIRA)" <de...@tapestry.apache.org> on 2007/07/19 22:56:06 UTC
[jira] Created: (TAPESTRY-1658) NullPointerException when trying to
store the request globals information
NullPointerException when trying to store the request globals information
-------------------------------------------------------------------------
Key: TAPESTRY-1658
URL: https://issues.apache.org/jira/browse/TAPESTRY-1658
Project: Tapestry
Issue Type: Bug
Affects Versions: 5.0.5
Environment: Sun's java 1.5_12, debian linux, tomcat 4.0.3
Reporter: Robert Zeigler
I've started (sporadically) receiving the following error. Seems to hit after a period of inactivity? (Maybe?)
But I also just upgraded the java version from 1.5_09 to 1.5_12 yesterday, so this may be a jvm bug.
I'll see if downgrading solves the issue (but hard to know since the issue is so sporadic).
java.lang.NullPointerException
at java.lang.ThreadLocal$ThreadLocalMap$Entry.access$602(ThreadLocal.java:235)
at java.lang.ThreadLocal$ThreadLocalMap.replaceStaleEntry(ThreadLocal.java:518)
at java.lang.ThreadLocal$ThreadLocalMap.getAfterMiss(ThreadLocal.java:368)
at java.lang.ThreadLocal$ThreadLocalMap.get(ThreadLocal.java:347)
at java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:225)
at java.lang.ThreadLocal.get(ThreadLocal.java:127)
at org.apache.tapestry.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:56)
at $RequestGlobals_113db30d6f8._perThreadInstance($RequestGlobals_113db30d6f8.java)
at $RequestGlobals_113db30d6f8.store($RequestGlobals_113db30d6f8.java)
at $RequestGlobals_113db30d6e2.store($RequestGlobals_113db30d6e2.java)
at org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1042)
at org.apache.tapestry.upload.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:42)
at $HttpServletRequestHandler_113db30d6f6.service($HttpServletRequestHandler_113db30d6f6.java)
at $HttpServletRequestHandler_113db30d6f3.service($HttpServletRequestHandler_113db30d6f3.java)
at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
[jira] Closed: (TAPESTRY-1658) NullPointerException when trying to
store the request globals information
Posted by "Howard M. Lewis Ship (JIRA)" <de...@tapestry.apache.org>.
[ https://issues.apache.org/jira/browse/TAPESTRY-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship closed TAPESTRY-1658.
------------------------------------------
Resolution: Cannot Reproduce
Assignee: Howard M. Lewis Ship
The code in question is ThreadLocal.get(); it's not out of the realm of possiblity that the class' initialValue() method is the culprit, but based on that stack trace, I don't think so.
Please re-open if this problem recurs. Generally speaking, when you say that's there's a JDK or JVM bug, especially in something this fundamental, you're usually wrong ... but in this case, there's so little for Tapestry to get wrong that I don't see a viable alternative to a JDK bug.
> NullPointerException when trying to store the request globals information
> -------------------------------------------------------------------------
>
> Key: TAPESTRY-1658
> URL: https://issues.apache.org/jira/browse/TAPESTRY-1658
> Project: Tapestry
> Issue Type: Bug
> Affects Versions: 5.0.5
> Environment: Sun's java 1.5_12, debian linux, tomcat 4.0.3
> Reporter: Robert Zeigler
> Assignee: Howard M. Lewis Ship
>
> I've started (sporadically) receiving the following error. Seems to hit after a period of inactivity? (Maybe?)
> But I also just upgraded the java version from 1.5_09 to 1.5_12 yesterday, so this may be a jvm bug.
> I'll see if downgrading solves the issue (but hard to know since the issue is so sporadic).
> java.lang.NullPointerException
> at java.lang.ThreadLocal$ThreadLocalMap$Entry.access$602(ThreadLocal.java:235)
> at java.lang.ThreadLocal$ThreadLocalMap.replaceStaleEntry(ThreadLocal.java:518)
> at java.lang.ThreadLocal$ThreadLocalMap.getAfterMiss(ThreadLocal.java:368)
> at java.lang.ThreadLocal$ThreadLocalMap.get(ThreadLocal.java:347)
> at java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:225)
> at java.lang.ThreadLocal.get(ThreadLocal.java:127)
> at org.apache.tapestry.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:56)
> at $RequestGlobals_113db30d6f8._perThreadInstance($RequestGlobals_113db30d6f8.java)
> at $RequestGlobals_113db30d6f8.store($RequestGlobals_113db30d6f8.java)
> at $RequestGlobals_113db30d6e2.store($RequestGlobals_113db30d6e2.java)
> at org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1042)
> at org.apache.tapestry.upload.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:42)
> at $HttpServletRequestHandler_113db30d6f6.service($HttpServletRequestHandler_113db30d6f6.java)
> at $HttpServletRequestHandler_113db30d6f3.service($HttpServletRequestHandler_113db30d6f3.java)
> at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
> at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
[jira] Commented: (TAPESTRY-1658) NullPointerException when trying
to store the request globals information
Posted by "Robert Zeigler (JIRA)" <de...@tapestry.apache.org>.
[ https://issues.apache.org/jira/browse/TAPESTRY-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552533 ]
Robert Zeigler commented on TAPESTRY-1658:
------------------------------------------
Usually, I blame my code first for bugs, followed by framework, followed by the jvm/jdk, as well.
I'm still seeing this and similar/related stack traces; one thing I finally realize was that the stack track I placed above is not the original stack trace (usually). It's an exception encountered when trying to handle some other exception. So I've been watching things a bit closer. I've seen the following stack trace five times today (I've decorated exception handling to e-mail the original throwable whenever an exception occurs):
java.lang.NullPointerException
at org.apache.tapestry.internal.services.InternalModule$2.getCookies(InternalModule.java:307)
at $CookieSource_116e89c79eb.getCookies($CookieSource_116e89c79eb.java)
at org.apache.tapestry.internal.services.CookiesImpl.readCookieValue(CookiesImpl.java:53)
at $Cookies_116e89c79ea.readCookieValue($Cookies_116e89c79ea.java)
at org.apache.tapestry.services.PersistentLocaleImpl.getCookieValue(PersistentLocaleImpl.java:46)
at org.apache.tapestry.services.PersistentLocaleImpl.get(PersistentLocaleImpl.java:40)
at $PersistentLocale_116e89c79e9.get($PersistentLocale_116e89c79e9.java)
at org.apache.tapestry.internal.services.LocalizationSetterImpl.setThreadLocale(LocalizationSetterImpl.java:98)
at $LocalizationSetter_116e89c79e5.setThreadLocale($LocalizationSetter_116e89c79e5.java)
at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:41)
at $RequestHandler_116e89c79e8.service($RequestHandler_116e89c79e8.java)
at org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:688)
at $RequestHandler_116e89c79e8.service($RequestHandler_116e89c79e8.java)
at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:84)
at $RequestHandler_116e89c79e8.service($RequestHandler_116e89c79e8.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_116e89c79e8.service($RequestHandler_116e89c79e8.java)
at $RequestHandler_116e89c79df.service($RequestHandler_116e89c79df.java)
at org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:1086)
at org.apache.tapestry.upload.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:43)
at $HttpServletRequestHandler_116e89c79e0.service($HttpServletRequestHandler_116e89c79e0.java)
at $HttpServletRequestHandler_116e89c79dd.service($HttpServletRequestHandler_116e89c79dd.java)
at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.edkey.attendance.servlet.CayenneFilter.doFilter(CayenneFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)
This is with tapestry 5.0.6. The line in InternalModule is _requestGlobals.getHttpServletRequest().getCookies();
I never see this on my development box (a core2duo mac) (even with a lot of mutiple-thread testing), but have seen it on multiple linux boxes (3 different boxes; all dual-cpu). "Feels" like a threading bug (sporadic, shows up in code that "normally" works, etc.) Again, I normally suspect my code in issues like this, but that stack trace doesn't include any of my code (doesn't necessarily mean I'm not doing anything wrong, but...).
Only other note is that on one box where I see this issue, I have another t5 app (5.0.5) running without problem. That app runs stateless, whereas the app where I see the problem does not. I'll keep trying to track this one down.
> NullPointerException when trying to store the request globals information
> -------------------------------------------------------------------------
>
> Key: TAPESTRY-1658
> URL: https://issues.apache.org/jira/browse/TAPESTRY-1658
> Project: Tapestry
> Issue Type: Bug
> Affects Versions: 5.0.5
> Environment: Sun's java 1.5_12, debian linux, tomcat 4.0.3
> Reporter: Robert Zeigler
> Assignee: Howard M. Lewis Ship
>
> I've started (sporadically) receiving the following error. Seems to hit after a period of inactivity? (Maybe?)
> But I also just upgraded the java version from 1.5_09 to 1.5_12 yesterday, so this may be a jvm bug.
> I'll see if downgrading solves the issue (but hard to know since the issue is so sporadic).
> java.lang.NullPointerException
> at java.lang.ThreadLocal$ThreadLocalMap$Entry.access$602(ThreadLocal.java:235)
> at java.lang.ThreadLocal$ThreadLocalMap.replaceStaleEntry(ThreadLocal.java:518)
> at java.lang.ThreadLocal$ThreadLocalMap.getAfterMiss(ThreadLocal.java:368)
> at java.lang.ThreadLocal$ThreadLocalMap.get(ThreadLocal.java:347)
> at java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:225)
> at java.lang.ThreadLocal.get(ThreadLocal.java:127)
> at org.apache.tapestry.ioc.internal.services.PerThreadServiceCreator.createObject(PerThreadServiceCreator.java:56)
> at $RequestGlobals_113db30d6f8._perThreadInstance($RequestGlobals_113db30d6f8.java)
> at $RequestGlobals_113db30d6f8.store($RequestGlobals_113db30d6f8.java)
> at $RequestGlobals_113db30d6e2.store($RequestGlobals_113db30d6e2.java)
> at org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1042)
> at org.apache.tapestry.upload.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:42)
> at $HttpServletRequestHandler_113db30d6f6.service($HttpServletRequestHandler_113db30d6f6.java)
> at $HttpServletRequestHandler_113db30d6f3.service($HttpServletRequestHandler_113db30d6f3.java)
> at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
> at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:429)
> at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:495)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org