-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hi,
I've come across a weird error which appears once in a while, rather unexpectedly; it's triggered by pressing a button within a window which is a child to a certain tabpanel. The window and it's contents have been set into the panel via Executions.createComponentsDirectly. The button is bound to an onClick event listeners which detaches the window the button is found in and closes the tab.
The error manifests itself as a popup window complaining about some non-existing 'system' field; this is what I can see in the console I've started the serving hosting the zk application:
bsh.InterpreterError: set: Field access: bsh.ReflectError: No such field: system : at Line: -1 : in file: <Called from J
ava Code> : <Compiled Java Code>
at bsh.Interpreter.setu(Unknown Source)
at bsh.Interpreter.initRootSystemObject(Unknown Source)
at bsh.Interpreter.<init>(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at org.zkoss.zk.scripting.bsh.BSHInterpreter.exec(BSHInterpreter.java:100)
at org.zkoss.zk.scripting.util.GenericInterpreter.interpret(GenericInterpreter.java:292)
at org.zkoss.zk.ui.impl.PageImpl.interpret(PageImpl.java:766)
at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:178)
at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:143)
at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:488)
at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.run(EventProcessingThreadImpl.java:422)
By attaching the netbeans debugger I've been able to obtain the full stack trace:
"25678960@qtp0-8"
org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1006)
org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:480)
org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:370)
org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:379)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1124)
org.nanocontainer.nanowar.ServletRequestContainerFilter.doFilter(ServletRequestContainerFilter.java:44)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
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:766)
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
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:534)
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
The event triggering the error is usually the 'onFocus' event on the button itself, but it can be an onFocus on an rather unrelated inputbox to be found in the same window as the button as well.
I'm using zk3.5.2 and starting the zk application by the maven jetty plugin 6.1.14; my application is secured by Spring security.
Any suggestion would be much appreciated
With kind regards
César Varona
Hi Varona,
Would you please post your example code, so we can replicate this issue.
Thanks,
Robbie
Hi Robbie,
I'm afraid it's not possible to post everything needed to reproduce this. There is a complex mechanism involving both zscript and tons of java code which creates tabs within a main page and then loads forms via Executions.createComponentsDirectly into their associated tabpanels. The forms themselves display a very complex focus management. As for the error, it does not appear in a consistent manner but rather randomly. I just posted this expecting the dismaying "bsh.ReflectError: No such field: system : at Line: -1" could perhaps have some meaning for somebody.
If by any chance I happen to be able to construct some simple example which allows me to reproduce it take for sure I won't hesitate in posting it.
With kind regards
César Varona
Hi Cesar,
I see, it's not easy to simplify a complex case.
By the way, do you use ZK Spring Security?
Please refer to http://zkoss.org/smalltalks/zkspringsec2/
/robbie
Asked: 2009-02-04 16:33:23 +0800
Seen: 361 times
Last updated: Feb 12 '09