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)

Reply via email to