History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-685
Type: Bug Bug
Status: Resolved Resolved
Resolution: Won't Fix
Priority: Major Major
Assignee: Robin Shen
Reporter: Roger Perkins
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

request.isScheduled() no longer seems to be supported in build variables in QB 3

Created: 13/Oct/10 05:01 PM   Updated: 31/Aug/11 03:38 AM
Component/s: None
Affects Version/s: 3.0.12
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
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)


 All   Comments   Work Log   Change History      Sort Order:
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"}