Hi John, it is hard to answer your question without any source code or details about your application. My guess your application is using tapestry-jquery and something is incorrectly initialised in production-mode. I would check if you do not encounter problems with your browser caching some old version of JavaScript libraries (IIRC, in Tapestry 5.3 you need to change application version every time asset changes - I recommend ensuring that your build process does that for you). Probably because of failure on JavaScript side, your link clicks with JS, are not actually rewritten to be AJAX links, but normal links, and your event handlers do not check if requests are AJAX (us Request.isXHR method to check that), and blindly try to prepare AJAX rendering, which causes this exception.
My recommendations: - See if your links are actually sent as AJAX requests from the browser. - Find and fix the cause of problems reported for JavaScript in the browser. First ensure that your browser does not cached some incorrect version of assets. If it does, ensure that you change application version setting when assets changes. Preferably make your build process to set application version in Tapestry in some automatic way. - In Java, event handlers should check if request is AJAX or not, and use appropriate processing paths for preparing output. Even if you fix your JavaScript problems, your application will be more user friendly and robust by not assuming that these events are always sent via AJAX (e.g. user can have JavaScript disabled, or middle-click on the link, etc.). As I said before, I can only guess what is wrong. If my recommendation would not help, try providing more details and narrow down the problem. Best regards, Cezary On Thu, Jun 16, 2016 at 5:14 PM, Qbyte Consulting <qbyteconsult...@gmail.com > wrote: > Hi, > > My T5.3.6 application works fine with production mode=false. However when > production-mode = true then some linkclicks with JS return: > > An unexpected application exception has occurred. > > Page must be specified before initializing for partial page render. > > This is on the browser console: > > core.js:6947 Uncaught TypeError: element.attachEvent is not a function > SuperfishStack.js:383 Uncaught TypeError: Cannot read property > 'extendInitializers' of undefined > dialog.js:3 Uncaught TypeError: Cannot read property 'extendInitializers' > of undefined > bind.js:3 Uncaught TypeError: Cannot read property 'extendInitializers' of > undefined > jGrowl_init.js:2 Uncaught TypeError: Cannot read property > 'extendInitializers' of undefined > manageusers:17 Uncaught TypeError: Cannot set property 'JQUERY' of > undefined > core.js:7028 Uncaught TypeError: element.dispatchEvent is not a function > > Why is that happening? > > regards, > John > > > > [ERROR] ioc.Registry Page must be specified before initializing for partial > page > render. > [ERROR] ioc.Registry Operations trace: > [ERROR] ioc.Registry [ 1] Triggering event 'alphabetfilter' on > ManageUsers:users > component > [ERROR] TapestryModule.RequestExceptionHandler Processing of request failed > with > uncaught exception: Page must be specified before initializing for partial > page > render. > org.apache.tapestry5.ioc.internal.OperationException: Page must be > specified bef > ore initializing for partial page render. [at > classpath:xxxxxx/audit/manager/pag > es/ManageUsers.tml, line 38] > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow( > OperationTrackerImpl.java:121) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(Operati > onTrackerImpl.java:88) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(Pe > rThreadOperationTracker.java:87) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.ja > va:1124) > at > org.apache.tapestry5.internal.structure.ComponentPageElementResources > Impl.invoke(ComponentPageElementResourcesImpl.java:146) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.trig > gerContextEvent(ComponentPageElementImpl.java:1053) > at > org.apache.tapestry5.internal.services.ComponentEventRequestHandlerIm > pl.handle(ComponentEventRequestHandlerImpl.java:81) > at > org.apache.tapestry5.internal.services.ImmediateActionRenderResponseF > ilter.handle(ImmediateActionRenderResponseFilter.java:42) > at $ComponentEventRequestHandler_ae9391b333f0.handle(Unknown > Source) > at > org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.j > ava:42) > at $ComponentEventRequestHandler_ae9391b333f0.handle(Unknown > Source) > at > org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.h > andle(UploadExceptionFilter.java:75) > at $ComponentEventRequestHandler_ae9391b333f0.handle(Unknown > Source) > at > org.apache.tapestry5.services.TapestryModule$41.handle(TapestryModule > .java:2476) > at $ComponentEventRequestHandler_ae9391b333f0.handle(Unknown > Source) > at $ComponentEventRequestHandler_ae9391b3339f.handle(Unknown > Source) > at > org.apache.tapestry5.internal.services.ComponentRequestHandlerTermina > tor.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) > at > org.apache.tapestry5.services.InitializeActivePageName.handleComponen > tEvent(InitializeActivePageName.java:39) > at > $ComponentRequestHandler_ae9391b333a1.handleComponentEvent(Unknown So > urce) > at > xxxxxx.audit.manager.services.PageProtectionFilter.handleComponentEve > nt(PageProtectionFilter.java:113) > at > $ComponentRequestFilter_ae9391b3339e.handleComponentEvent(Unknown Sou > rce) > at > $ComponentRequestHandler_ae9391b333a1.handleComponentEvent(Unknown So > urce) > at > $ComponentRequestHandler_ae9391b33298.handleComponentEvent(Unknown So > urce) > at > org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispa > tch(ComponentEventDispatcher.java:46) > at $Dispatcher_ae9391b3329a.dispatch(Unknown Source) > at $Dispatcher_ae9391b33290.dispatch(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator > .service(TapestryModule.java:302) > at > org.apache.tapestry5.internal.services.RequestErrorFilter.service(Req > uestErrorFilter.java:26) > at $RequestHandler_ae9391b33291.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule > .java:902) > at $RequestHandler_ae9391b33291.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule > .java:892) > at $RequestHandler_ae9391b33291.service(Unknown Source) > at > org.apache.tapestry5.internal.services.StaticFilesFilter.service(Stat > icFilesFilter.java:90) > at $RequestHandler_ae9391b33291.service(Unknown Source) > at > xxxxxx.audit.manager.services.AppModule$1.service(AppModule.java:230) > > at $RequestFilter_ae9391b3328c.service(Unknown Source) > at $RequestHandler_ae9391b33291.service(Unknown Source) > at $RequestHandler_ae9391b33285.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandle > rTerminator.service(TapestryModule.java:253) > at > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java > :53) > at $HttpServletRequestHandler_ae9391b33287.service(Unknown Source) > at > org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.ser > vice(AjaxUploadServletRequestFilter.java:27) > at $HttpServletRequestHandler_ae9391b33287.service(Unknown Source) > at > org.apache.tapestry5.upload.internal.services.MultipartServletRequest > Filter.service(MultipartServletRequestFilter.java:44) > at $HttpServletRequestHandler_ae9391b33287.service(Unknown Source) > at > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(Ign > oredPathsFilter.java:62) > at $HttpServletRequestFilter_ae9391b33283.service(Unknown Source) > at $HttpServletRequestHandler_ae9391b33287.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule > .java:852) > at $HttpServletRequestHandler_ae9391b33287.service(Unknown Source) > at $HttpServletRequestHandler_ae9391b33280.service(Unknown Source) > at > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet > Handler.java:1652) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java > :585) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j > ava:143) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.jav > a:577) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl > er.java:223) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl > er.java:1127) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: > 515) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle > r.java:185) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle > r.java:1061) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j > ava:141) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(Cont > extHandlerCollection.java:215) > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerColl > ection.java:110) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper > .java:97) > at org.eclipse.jetty.server.Server.handle(Server.java:499) > at > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.jav > a:257) > at > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java > :544) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo > l.java:635) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool > .java:555) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.tapestry5.runtime.ComponentEventException: Page must > be sp > ecified before initializing for partial page render. [at > classpath:xxxxxx/audit/ > manager/pages/ManageUsers.tml, line 38] > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.proc > essEventTriggering(ComponentPageElementImpl.java:1136) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.acce > ss$3100(ComponentPageElementImpl.java:61) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$ > 5.in > voke(ComponentPageElementImpl.java:1057) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$ > 5.in > voke(ComponentPageElementImpl.java:1054) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(Operati > onTrackerImpl.java:74) > ... 71 more > Caused by: java.lang.IllegalStateException: Page must be specified before > initia > lizing for partial page render. > at > org.apache.tapestry5.internal.services.PageRenderQueueImpl.partialRen > derInitialized(PageRenderQueueImpl.java:100) > at > org.apache.tapestry5.internal.services.PageRenderQueueImpl.addPartial > MarkupRendererFilter(PageRenderQueueImpl.java:131) > at > $PageRenderQueue_ae9391b333bf.addPartialMarkupRendererFilter(Unknown > Source) > at > $PageRenderQueue_ae9391b3339c.addPartialMarkupRendererFilter(Unknown > Source) > at > org.apache.tapestry5.internal.services.ajax.AjaxResponseRendererImpl. > addFilter(AjaxResponseRendererImpl.java:96) > at > org.apache.tapestry5.internal.services.ajax.AjaxResponseRendererImpl. > addRender(AjaxResponseRendererImpl.java:43) > at > org.apache.tapestry5.internal.services.ajax.AjaxResponseRendererImpl. > addRender(AjaxResponseRendererImpl.java:52) > at $AjaxResponseRenderer_ae9391b332c2.addRender(Unknown Source) > at > xxxxxx.audit.manager.components.UsersComponent.onAlphabetFilter(Users > Component.java:263) > at > xxxxxx.audit.manager.components.UsersComponent.dispatchComponentEvent > (UsersComponent.java) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.disp > atchEvent(ComponentPageElementImpl.java:927) > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.proc > essEventTriggering(ComponentPageElementImpl.java:1112) > ... 75 more > [INFO] AppModule.TimingFilter Request time: 86 ms >