<< Back to previous view |
[QB-685] request.isScheduled() no longer seems to be supported in build variables in QB 3
|
|
Status: | Resolved |
Project: | QuickBuild |
Component/s: | None |
Affects Version/s: | 3.0.12 |
Fix Version/s: | None |
Type: | Bug | Priority: | Major |
Reporter: | Roger Perkins | Assigned To: | Robin Shen |
Resolution: | Won't Fix | Votes: | 0 |
Remaining Estimate: | Unknown | Time Spent: | Unknown |
Original Estimate: | Unknown |
Description |
If I add a build variable to a configuration, set it's value to "${request.isScheduled() ? true : false}" as I had in QB 2.x, then when I try to run the build I immediately get:
Failed to evaluate below expression: mvel:request.isScheduled() ? true : false And the exception I see is: Root cause: [Error: unable to access property (null parent): isScheduled] [Near : {... Unknown ....}] ^ [Line: 1, Column: 0] at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:886) at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:314) at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:137) at org.mvel2.optimizers.dynamic.DynamicOptimizer.optimizeAccessor(DynamicOptimizer.java:63) at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:137) at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85) at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:107) at org.mvel2.MVEL.executeExpression(MVEL.java:1053) at com.pmease.quickbuild.plugin.basis.BasisPlugin$11.evaluate(BasisPlugin.java:142) at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:85) at com.pmease.quickbuild.DefaultScriptEngine.interpolate(DefaultScriptEngine.java:103) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:416) at org.apache.wicket.proxy.$Proxy62.interpolate(Unknown Source) at com.pmease.quickbuild.web.page.configuration.BuildOptionEdit.<init>(BuildOptionEdit.java:86) at com.pmease.quickbuild.web.page.configuration.ConfigurationPage$3.onClick(ConfigurationPage.java:203) at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:224) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182) at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479) at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:596) at com.pmease.quickbuild.web.WebServlet.handleWebRequest(WebServlet.java:141) at com.pmease.quickbuild.web.WebServlet.service(WebServlet.java:104) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at com.pmease.quickbuild.web.HttpServiceProvider$1$1.service(HttpServiceProvider.java:86) at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 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.headerComplete(HttpConnection.java:865) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:540) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) Complete stack: com.pmease.quickbuild.QuickbuildException: Failed to evaluate below expression: mvel:request.isScheduled() ? true : false at com.pmease.quickbuild.util.ExceptionUtils.wrapException(ExceptionUtils.java:90) at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:91) at com.pmease.quickbuild.DefaultScriptEngine.interpolate(DefaultScriptEngine.java:103) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:416) at org.apache.wicket.proxy.$Proxy62.interpolate(Unknown Source) at com.pmease.quickbuild.web.page.configuration.BuildOptionEdit.<init>(BuildOptionEdit.java:86) at com.pmease.quickbuild.web.page.configuration.ConfigurationPage$3.onClick(ConfigurationPage.java:203) at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:224) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182) at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479) |
Comments |
Comment by Robin Shen [ 14/Oct/10 01:47 AM ] |
It seems that you've used this expression as default value of the variable and that variable is set to prompt. At prompt time, the variable default value will be evaluated however the request is still not generated. So changing the variable definition as below should work:
${request!=null & request.scheduled?"true":"false"} |