Hello, I have a mixin that takes two Any components as parameters. As long as the Any components are *before* the mixin in the template everything is ok, but if I move the Any component after the mixin (after the component that contains the mixin) it throws nullpointer while trying to access the client id.
Small part from Any.java: public String getClientId() { if (uniqueId == null) { uniqueId = renderSupport.allocateClientId(clientId); anyElement.forceAttributes("id", uniqueId); } return uniqueId; } The anyElement is always null if the mixin is before the anyElement in the template. Should the any component do some initialization there if anyElement is null? - Ville The mixin: @Parameter(allowNull=true,defaultPrefix="component") private Any sumField; @Parameter(allowNull=true,defaultPrefix="component") private Any priceField; /** * The field component to which this mixin is attached. */ @InjectContainer private ClientElement clientElement; @Environmental private RenderSupport renderSupport; @Inject private ComponentResources componentResources; void afterRender(MarkupWriter writer) throws Exception { String df = JSUtil.commaSeparatedListToJSStringArray(disableFields); String ccf = JSUtil.commaSeparatedListToJSStringArray(classChangeFields); String sumFieldString = ""; if(componentResources.isBound("sumField")){ sumFieldString = sumField.getClientId(); } String priceFieldString = ""; if(componentResources.isBound("priceField")){ priceFieldString = priceField.getClientId(); } renderSupport.addScript("disableAndChangeElements('%s', '%s', '%s', %s, %s, '%s', '%s');", clientElement.getClientId(), enabledCssClass, disabledCssClass, ccf, df, sumFieldString, priceFieldString); } And the stacktrace: * org.apache.tapestry5.corelib.components.Any.getClientId(Any.java:75) * com.orient.web.customer.mixins.DisableAndChangeClass.afterRender(DisableAndChangeClass.java:63) * com.orient.web.customer.mixins.DisableAndChangeClass.afterRender(DisableAndChangeClass.java) * org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6$1.run(ComponentPageElementImpl.java:203) * org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:925) * org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50) * org.apache.tapestry5.internal.structure.ComponentPageElementImpl$6.render(ComponentPageElementImpl.java:207) * org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) * org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121) * org.apache.tapestry5.services.TapestryModule$19.renderMarkup(TapestryModule.java:1200) * org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1580) * org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1561) * org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1543) * org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1525) * org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1495) * org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64) * org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57) * org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59) * org.apache.tapestry5.services.TapestryModule$35.handle(TapestryModule.java:1779) * com.orient.framework.tapestry.filter.ProtectedPageFilterImpl.handle(ProtectedPageFilterImpl.java:51) * org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:92) * org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71) * org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029) * org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42) * org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) * org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621) * org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611) * org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) * com.orient.web.customer.services.CustomerclientModule$1.service(CustomerclientModule.java:334) * org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) * org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) * org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83) * org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) * org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007) * org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) * com.orient.web.customer.services.CustomerclientModule$3.service(CustomerclientModule.java:393) * org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) * org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179) * org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) * org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) * org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) * org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) * org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:756) * org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) * org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) * org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) * org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) * org.mortbay.jetty.Server.handle(Server.java:324) * org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502) * org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:826) * org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:523) * org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) * org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377) * org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) * org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:635) * org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497) -- View this message in context: http://www.nabble.com/-T5--Any-component-nullpointer-tp21255662p21255662.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org