Hi all, thanks for all the answers. The two-way select works after I've added annotation @Persist to the mapper.
>>> Lance Java <lance.j...@googlemail.com> 28.12.2013 13:03 >>> 1. How is "mapper" initialized. Is it @Injected or is it configured in a render phase method of the container (page / component)? If configured in a render phase (eg @SetupRender) then it will be null in the ajax action. 2. Are you in development mode when debugging? Component member variables are only populated in development mode for convenience. In production mode, component member variables are ignored and are stored as thread locals. On 27 December 2013 17:14, George Christman <gchrist...@cardaddy.com> wrote: > Is value null? Also, what version of Tapestry are you using? I can't > exactly remember the exception, but if your using 5.4 you may need to added > secure="literal:NEVER" to your <t:select component. > > > On Fri, Dec 27, 2013 at 2:51 AM, Marco Wulf <w...@dsb.net> wrote: > > > Hi all, > > > > I've a Problem with a two-way select. I saw the first select with the > > right content. If I change the fist selection, > > I want to update/show the second select but I get an > NullPointerException. > > If I debug, the NullpointerException occures on the following line: > > > > *accounts = mapper.getAccountsByClient(value);*All variable(value, > > accounts, mapper) are not null and the debugger pop's up the source only > > for a millisecond. > > Can anyone helps me in this case? > > Thanks > > > > Marco > > > > sample.tml > > ... > > <t:zone t:id="selectZone" id="selectZone" t:update="show"> > > > > > > <t:form t:type="form" t:id="selectForm" id="selectForm"> > > <t:if test="clients"> > > <t:zone t:id="selectClientZone" id="selectClientZone" > t:update="show" > > style="display: inline;"> > > Clients: <t:select t:id="idClients" id="clientSelect" > > model="clients" value="client" t:blankLabel="Choose..." > > zone="selectAccountZone"/> > > </t:zone> > > </t:if> > > > > <t:zone t:id="selectAccountZone" id="selectAccountZone" > > t:update="show" style="display: inline;"> > > <t:if test="accounts"> > > Accounts: <t:select t:id="idAccounts" id="accountSelect" > > value="account" model="accountSelectModel" > encoder="wprAccountDataEncoder" > > t:blankLabel="Choose..." zone="accountZone"/> > > </t:if> > > </t:zone> > > > > </t:form> > > > > </t:zone> > > ... > > > > sample.java > > ... > > @OnEvent(value=EventConstants.VALUE_CHANGED, component="idClients") > > public Object changeOnSelectClients(String value) { > > > > accounts = mapper.getAccountsByClient(value); // > > *<- > > NullPointer somewhere in > ComponentPageElementImpl.processEventTriggering(String, > > EventContext, ComponentEventCallback)* accountSelectModel = > > selectModelFactory.create(accounts, "accountName"); > > System.out.println(account.toString()); > > return selectAccountZone.getBody(); > > } > > ... > > > > [ERROR] TapestryModule.RequestExceptionHandler Processing of request > > failed with uncaught exception: > > org.apache.tapestry5.runtime.ComponentEventException > > org.apache.tapestry5.runtime.ComponentEventException [at > > classpath:net/dsb/css/pages/wpr_account/ChangeAccount.tml, line 39] > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1141) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1062) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1059) > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1058) > > at > > > org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:110) > > at > > > org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56) > > at $ComponentEventRequestHandler_4206f778622.handle(Unknown > Source) > > at $ComponentEventRequestHandler_4206f77861c.handle(Unknown > Source) > > at > > > org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) > > at $ComponentEventRequestHandler_4206f77861e.handle(Unknown > Source) > > at > > > org.apache.tapestry5.services.TapestryModule$41.handle(TapestryModule.java:2476) > > at $ComponentEventRequestHandler_4206f77861e.handle(Unknown > Source) > > at $ComponentEventRequestHandler_4206f778563.handle(Unknown > Source) > > at > > > org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) > > at > > > org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) > > at > > $ComponentRequestHandler_4206f778565.handleComponentEvent(Unknown Source) > > at > > $ComponentRequestHandler_4206f778531.handleComponentEvent(Unknown Source) > > at > > > org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) > > at $Dispatcher_4206f778534.dispatch(Unknown Source) > > at $Dispatcher_4206f77852e.dispatch(Unknown Source) > > at > > > org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) > > at net.dsb.css.services.AppModule$1.service(AppModule.java:95) > > at $RequestFilter_4206f77852d.service(Unknown Source) > > at $RequestHandler_4206f77852f.service(Unknown Source) > > at > > > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) > > at $RequestHandler_4206f77852f.service(Unknown Source) > > at > > > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) > > at $RequestHandler_4206f77852f.service(Unknown Source) > > at > > > org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) > > at $RequestHandler_4206f77852f.service(Unknown Source) > > at > > > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) > > at $RequestHandler_4206f77852f.service(Unknown Source) > > at > > > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) > > at > > > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) > > at > > > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) > > at > > > org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) > > at $RequestHandler_4206f77852f.service(Unknown Source) > > at $RequestHandler_4206f778522.service(Unknown Source) > > at > > > org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253) > > at > > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) > > at $HttpServletRequestHandler_4206f778524.service(Unknown Source) > > at > > > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > > at $HttpServletRequestFilter_4206f778520.service(Unknown Source) > > at $HttpServletRequestHandler_4206f778524.service(Unknown Source) > > at > > > org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852) > > at $HttpServletRequestHandler_4206f778524.service(Unknown Source) > > at $HttpServletRequestHandler_4206f77851f.service(Unknown Source) > > at > > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) > > at > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) > > at > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) > > at > > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > > at > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > at > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > > at > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) > > at > > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > > at > > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > > at > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > at org.mortbay.jetty.Server.handle(Server.java:324) > > at > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535) > > at > > > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880) > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > > at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > > at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > > at > > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > > at > > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) > > Caused by: org.apache.tapestry5.ioc.internal.OperationException [at > > classpath:net/dsb/css/pages/wpr_account/ChangeAccount.tml, line 39] > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > > at > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1058) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerEvent(ComponentPageElementImpl.java:1031) > > at > > > org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.triggerEvent(InternalComponentResourcesImpl.java:292) > > at > > org.apache.tapestry5.corelib.components.Select.onChange(Select.java:220) > > at > > > org.apache.tapestry5.corelib.components.Select.dispatchComponentEvent(Select.java) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:940) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1117) > > ... 69 more > > Caused by: org.apache.tapestry5.runtime.ComponentEventException [at > > classpath:net/dsb/css/pages/wpr_account/ChangeAccount.tml, line 39] > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1141) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1062) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1059) > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > ... 79 more > > Caused by: java.lang.NullPointerException > > at > > > net.dsb.css.pages.wpr_account.ChangeAccount.changeOnSelectClients(ChangeAccount.java:178) > > at > > > net.dsb.css.pages.wpr_account.ChangeAccount.dispatchComponentEvent(ChangeAccount.java) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:932) > > at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1117) > > ... 83 more > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > -- > George Christman > www.CarDaddy.com > P.O. Box 735 > Johnstown, New York >
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org