Ryszard Trojnacki created TAP5-2590:
---------------------------------------
Summary: Tapestry and Apache Ignite
Key: TAP5-2590
URL: https://issues.apache.org/jira/browse/TAP5-2590
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.4.3
Reporter: Ryszard Trojnacki
Priority: Minor
I have a simple page with a form.
When user submits the form I'm adding entry to data base and displaying a
message.
This works, but when I add Apache Ignite call:
{code:java}
private IgniteMessaging msgs;
public <T> void fire(String topic, T msg) {
msgs.send(topic, msg);
}
{code}
Then I'm getting and exception:
{noformat}
2017-11-04 20:02:20,177 () [ERROR] org.apache.tapestry5.ioc.Registry | Error
persisting field Payment:result: Unable to delegate method invocation to
property 'request' of <Proxy for
RequestGlobals(org.apache.tapestry5.services.RequestGlobals)>, because the
property is null.
2017-11-04 20:02:20,177 () [ERROR] org.apache.tapestry5.ioc.Registry |
Operations trace:
2017-11-04 20:02:20,177 () [ERROR] org.apache.tapestry5.ioc.Registry | [ 1]
Handling traditional 'action' component event request for Payment:paymentform.
2017-11-04 20:02:20,177 () [ERROR] org.apache.tapestry5.ioc.Registry | [ 2]
Triggering event 'action' on Payment:paymentform
2017-11-04 20:02:20,177 () [ERROR] org.apache.tapestry5.ioc.Registry | [ 3]
Triggering event 'success' on Payment:paymentform
2017-11-04 20:02:20,181 () [ERROR]
org.apache.tapestry5.modules.TapestryModule.RequestExceptionHandler |
Processing of request failed with uncaught exception:
org.apache.tapestry5.runtime.ComponentEventException [at
classpath:pl/onefrog/server/web/pages/Payment.tml, line 20]
org.apache.tapestry5.runtime.ComponentEventException [at
classpath:pl/onefrog/server/web/pages/Payment.tml, line 20]
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1126)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:57)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1047)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1044)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)
at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)
at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1260)
at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:154)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1043)
at
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:73)
at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
at $ComponentEventRequestHandler_17b008c39326.handle(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$37.handle(TapestryModule.java:2216)
at $ComponentEventRequestHandler_17b008c39326.handle(Unknown Source)
at $ComponentEventRequestHandler_17b008c392a7.handle(Unknown Source)
at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
at
org.apache.tapestry5.internal.services.DeferredResponseRenderer.handleComponentEvent(DeferredResponseRenderer.java:45)
at $ComponentRequestHandler_17b008c392a9.handleComponentEvent(Unknown
Source)
at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
at $ComponentRequestHandler_17b008c392a9.handleComponentEvent(Unknown
Source)
at
org.apache.tapestry5.internal.services.ProductionModeUnknownComponentFilter.handleComponentEvent(ProductionModeUnknownComponentFilter.java:50)
at $ComponentRequestHandler_17b008c392a9.handleComponentEvent(Unknown
Source)
at
org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:55)
at
org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:52)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110)
at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84)
at
org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1266)
at
org.apache.tapestry5.internal.services.RequestOperationTracker.handleComponentEvent(RequestOperationTracker.java:47)
at $ComponentRequestHandler_17b008c392a9.handleComponentEvent(Unknown
Source)
at $ComponentRequestHandler_17b008c3927c.handleComponentEvent(Unknown
Source)
at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:48)
at $Dispatcher_17b008c3927e.dispatch(Unknown Source)
at $Dispatcher_17b008c39273.dispatch(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:305)
at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
at $RequestHandler_17b008c39274.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:846)
at $RequestHandler_17b008c39274.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:836)
at $RequestHandler_17b008c39274.service(Unknown Source)
at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)
at $RequestHandler_17b008c39274.service(Unknown Source)
at $RequestHandler_17b008c3926a.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:256)
at
pl.onefrog.server.web.services.CacheControlRequestFilter.service(CacheControlRequestFilter.java:32)
at $HttpServletRequestFilter_17b008c39269.service(Unknown Source)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_17b008c39266.service(Unknown Source)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:796)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at $HttpServletRequestHandler_17b008c39265.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.NoSuchElementException
at java.util.LinkedList.removeFirst(LinkedList.java:270)
at
org.apache.tapestry5.internal.services.EnvironmentImpl.pop(EnvironmentImpl.java:106)
at $Environment_17b008c392da.pop(Unknown Source)
at $Environment_17b008c3924a.pop(Unknown Source)
at org.apache.tapestry5.corelib.components.Form.onAction(Form.java:584)
at
org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:917)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1102)
... 73 more
2017-11-04 20:02:20,199 () [ WARN]
org.apache.tapestry5.modules.TapestryModule.ExceptionReporter | Wrote exception
report to
file:/home/rysiek/workspace/src/onefrog/onefrog-server/build/exceptions/2017-11-04/20/02/exception-20171104-200220-187.0.txt
2017-11-04 20:02:20,200 () [ WARN]
org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[tapestry-paigo].[default]
| Servlet.service() for servlet [default] in context with path
[tapestry-paigo] threw exception
java.lang.NullPointerException: Unable to delegate method invocation to
property 'response' of <Proxy for
RequestGlobals(org.apache.tapestry5.services.RequestGlobals)>, because the
property is null.
at $Response_17b008c392d2.readProperty(Unknown Source)
at $Response_17b008c392d2.setStatus(Unknown Source)
at $Response_17b008c3924e.setStatus(Unknown Source)
at
org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.renderException(DefaultRequestExceptionHandler.java:244)
at
org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:145)
at $RequestExceptionHandler_17b008c39272.handleRequestException(Unknown
Source)
at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42)
at $RequestHandler_17b008c39274.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:846)
at $RequestHandler_17b008c39274.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:836)
at $RequestHandler_17b008c39274.service(Unknown Source)
at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)
at $RequestHandler_17b008c39274.service(Unknown Source)
at $RequestHandler_17b008c3926a.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:256)
at
pl.onefrog.server.web.services.CacheControlRequestFilter.service(CacheControlRequestFilter.java:32)
at $HttpServletRequestFilter_17b008c39269.service(Unknown Source)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_17b008c39266.service(Unknown Source)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at
org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:796)
at $HttpServletRequestHandler_17b008c3926c.service(Unknown Source)
at $HttpServletRequestHandler_17b008c39265.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
{noformat}
I'm not sure if it is Tapestry bug or Apache Ignite bug or maybe Apache Tomcat
(?), but adding this line breaks my page.
My workaround for this is to run msgs.send(topic, msg) in ExecutorService:
{code:java}
private IgniteMessaging msgs;
private ExecutorService tp;
public <T> void fire(String topic, T msg) {
tp.submit(() ->msgs.send(topic, msg));
}
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)