Hi everybody, I'm using Tapestry 5.3.8 . I am at a complete loss trying to figure out why I always get a NullPointerException when I click on a grid row of a certain page.
I'm describing the situation here and if anyone has *any* thought, feeling, suggestion, observation, things to check or anything else about one or more parts of this issue, I would really appreciate to hear about it, because I know it's impossible to think of a solution for this kind of problem, and anything that *potentially* could allow me to get a tiny bit closer to the solution or narrow down the possible cause or discard possibilities is very welcome. I'm at the stage where I'm progressively removing stuff from that page until the crash disappears so I will know that was the "cause"... The weird thing is that in the Java side I have a handler for the t:rowevent="selectReceipt" event, and if such method is coded without any argument, like public void onSelectReceipt () // This works normally. { System.out.println("onSelectReceipt () executed"); } , then when I click on a grid row this null pointer doesn't occur and the method is entered, but if I add an argument to it which is the row index (like all the other grids of this webapp have), then the null pointer on click does occur and the method is not entered: public void onSelectReceipt (long sysRowId) // This causes the NPE. { System.out.println("onSelectReceipt (" + sysRowId + ") executed"); } To make this even more interesting... if both the above mentioned handlers are there, the null pointer occurs. Then I just remove the 1-argument handler and the null pointer doesn't occur. So, the mere presence of the non-working, 1-argument handler causes the null pointer, even if the working, no-arguments handler is there as well. We use a customized grid, but the grid in the problematic page is being used in the same way as the grids in all the other pages, which all have the 1-argument handler and don't have this problem. If the cause was that (for some reason unknown to me) the 1-argument handler was not recognized as the handler of the t:rowevent="selectReceipt" event, I would expect that the exception would be a TapestryException "... you must provide a matching event handler method ...", as it always happens when I forget to write the event handler. Instead I get this null pointer. And if in this page itself I omit the 1-argument event handler too, then I do get that TapestryException as expected; but when I put it back I get the null pointer, and the method is not even entered. This is the full stacktrace of the NullPointerException, from the exception page. The first line is the one that puzzles me the most, because Receipts.java is actually the problematic page, but it does not have the dispatchComponentEvent method, plus that line doesn't show the number of the line of source code or "Unknown Source", while all the others do. en.abc.link.tapestry.pages.function.magazines.receipts.Receipts.dispatchComponentEvent(Receipts.java) org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:932) org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1117) org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61) org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1062) org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1060) org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124) org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146) org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1058) org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:110) org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56) $ComponentEventRequestHandler_18b9bf935047d.handle(Unknown Source) $ComponentEventRequestHandler_18b9bf935028e.handle(Unknown Source) org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) $ComponentEventRequestHandler_18b9bf9350290.handle(Unknown Source) org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75) $ComponentEventRequestHandler_18b9bf9350290.handle(Unknown Source) org.apache.tapestry5.services.TapestryModule$41.handle(TapestryModule.java:2475) $ComponentEventRequestHandler_18b9bf9350290.handle(Unknown Source) $ComponentEventRequestHandler_18b9bf9350123.handle(Unknown Source) org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) en.abc.zcore.tapestry.services.XKernelThreadFilter.handleComponentEvent(XKernelThreadFilter.java:27) $ComponentRequestFilter_18b9bf9350121.handleComponentEvent(Unknown Source) $ComponentRequestHandler_18b9bf9350125.handleComponentEvent(Unknown Source) en.abc.zcore.tapestry.services.MDCFilter.handleComponentEvent(MDCFilter.java:33) $ComponentRequestFilter_18b9bf9350120.handleComponentEvent(Unknown Source) $ComponentRequestHandler_18b9bf9350125.handleComponentEvent(Unknown Source) en.abc.zcore.tapestry.services.filters.ABCDatabaseSessionFilter.handleComponentEvent(ABCDatabaseSessionFilter.java:104) $ComponentRequestFilter_18b9bf935011f.handleComponentEvent(Unknown Source) $ComponentRequestHandler_18b9bf9350125.handleComponentEvent(Unknown Source) org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) $ComponentRequestHandler_18b9bf9350125.handleComponentEvent(Unknown Source) org.tynamo.security.SecurityComponentRequestFilter.handleComponentEvent(SecurityComponentRequestFilter.java:41) $ComponentRequestFilter_18b9bf9350122.handleComponentEvent(Unknown Source) $ComponentRequestHandler_18b9bf9350125.handleComponentEvent(Unknown Source) $ComponentRequestHandler_18b9bf93500e0.handleComponentEvent(Unknown Source) org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) $Dispatcher_18b9bf93500e4.dispatch(Unknown Source) $Dispatcher_18b9bf93500dc.dispatch(Unknown Source) org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) en.abc.link.tapestry.services.DoerModule$2.service(DoerModule.java:955) $RequestFilter_18b9bf93500db.service(Unknown Source) $RequestHandler_18b9bf93500dd.service(Unknown Source) org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) $RequestHandler_18b9bf93500dd.service(Unknown Source) org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) $RequestHandler_18b9bf93500dd.service(Unknown Source) org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) $RequestHandler_18b9bf93500dd.service(Unknown Source) org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) $RequestHandler_18b9bf93500dd.service(Unknown Source) org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:96) org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) $RequestHandler_18b9bf93500dd.service(Unknown Source) $RequestHandler_18b9bf93500b6.service(Unknown Source) org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253) org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:59) org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:54) org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:54) $HttpServletRequestFilter_18b9bf93500b5.service(Unknown Source) $HttpServletRequestHandler_18b9bf93500b8.service(Unknown Source) org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) $HttpServletRequestHandler_18b9bf93500b8.service(Unknown Source) org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) $HttpServletRequestHandler_18b9bf93500b8.service(Unknown Source) org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:27) $HttpServletRequestHandler_18b9bf93500b8.service(Unknown Source) org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) $HttpServletRequestFilter_18b9bf93500b2.service(Unknown Source) $HttpServletRequestHandler_18b9bf93500b8.service(Unknown Source) org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852) $HttpServletRequestHandler_18b9bf93500b8.service(Unknown Source) $HttpServletRequestHandler_18b9bf935009e.service(Unknown Source) org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751) org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) org.eclipse.jetty.server.Server.handle(Server.java:534) org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) java.lang.Thread.run(Thread.java:745) --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org