<< Back to previous view

[QB-685] request.isScheduled() no longer seems to be supported in build variables in QB 3
Created: 13/Oct/10  Updated: 31/Aug/11

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"}
Generated at Fri May 17 05:01:31 UTC 2024 using JIRA 189.