cachedwithin="Request" probable issue in 5.2.2.68-RC


#1

Hi,

Running 5.2.2.68-RC, I’ve picked up this error when using “Request” as my cachedwithin value, “Can’t cast String [Request] to a value of type [timespan]”

Is anyone else seeing this? The code I’ve been using has been working with the upper case “Request” value for ages, and reverting back to 5.2.1.9 resolves the issue, so I think there is an issue in the RC, I just want to make sure my upper case string isn’t a deal breaker going forward.


#2

Can you please post the full error information including stack trace?

Also, the snippet of your code that triggers the error.

Thanks


#3

Sure, use gateways that can be called with or without a value for cache minutes. In CF if you remember cacheing with a zero timespan worked okay, and once we migrated to Lucee we needed a way to insert the “Request” value into the queries the make up our gateways. This is done with code that looks like this:

<cfif structKeyExists(arguments, "_cacheMins") and  arguments._cacheMins GT 0 >
	<cfset local.cacheStatement = "#createTimeSpan(0,0,arguments._cacheMins,0)#" />
<cfelse>
	<cfset local.cacheStatement = "Request" />
</cfif>

<cfquery name="qList" datasource="#variables.dsn#" cachedwithin="#local.cacheStatement#">

This has worked fine and continues to work fine in prior Lucee versions but once we’re running on 5.2.2.68-RC we die with this error:

Detail: “Java type of the object is java.lang.String”
Message: “Can’t cast String [Request] to a value of type [timespan]”
StackTrace: “lucee.runtime.exp.CasterException: Can’t cast String [Request] to a value of type [timespan] at lucee.runtime.op.Caster.toTimespan(Caster.java:3167) at lucee.runtime.op.Caster.toTimeSpan(Caster.java:3122) at lucee.runtime.tag.Query.doEndTag(Query.java:623) at entities.projectownergateway_cfc$cf.udfCall(/entities/ProjectOwnerGateway.cfc:154) at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:107) at lucee.runtime.type.UDFImpl._call(UDFImpl.java:355) at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:212) at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:781) at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:835) at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1714) at entities.projectownergateway_cfc$cf.udfCall(/entities/ProjectOwnerGateway.cfc:185) at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:107) at lucee.runtime.type.UDFImpl._call(UDFImpl.java:355) at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:212) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:663) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:580) at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1935) at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:835) at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1714) at entities.project_cfc$cf.udfCall3(/entities/Project.cfc:382) at entities.project_cfc$cf.udfCall(/entities/Project.cfc) at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:107) at lucee.runtime.type.UDFImpl._call(UDFImpl.java:355) at lucee.runtime.type.UDFImpl.call(UDFImpl.java:226) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:662) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:580) at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1918) at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:758) at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1693) at controllers.projectformcontroller_cfc$cf.udfCall(/controllers/ProjectFormController.cfc:644) at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:107) at lucee.runtime.type.UDFImpl._call(UDFImpl.java:355) at lucee.runtime.type.UDFImpl.call(UDFImpl.java:226) at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:772) at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:758) at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1693) at controllers.projectformcontroller_cfc$cf.udfCall(/controllers/ProjectFormController.cfc:103) at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:107) at lucee.runtime.type.UDFImpl._call(UDFImpl.java:355) at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:212) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:663) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:580) at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1931) at lucee.runtime.tag.Invoke.doComponent(Invoke.java:221) at lucee.runtime.tag.Invoke.doEndTag(Invoke.java:194) at rave.core.framework_cfc$cf.udfCall(/rave/core/Framework.cfc:158) at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:107) at lucee.runtime.type.UDFImpl._call(UDFImpl.java:355) at lucee.runtime.type.UDFImpl.call(UDFImpl.java:226) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:662) at lucee.runtime.ComponentImpl._call(ComponentImpl.java:580) at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1918) at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:758) at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1693) at index_cfm$cf.call(/index.cfm:9) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:907) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:838) at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:822) at admin.index_cfm$cf.call(/admin/index.cfm:3) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:907) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:838) at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:224) at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:43) at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2400) at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2390) at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2358) at lucee.runtime.engine.Request.exe(Request.java:46) at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1044) at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:992) at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102) at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:873) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)”


#4

Thank you for reporting this. The issue has been fixed in 5.2.2.69-SNAPSHOT.


#5

And thank you for all the work you do on Lucee, I can confirm this is no longer an issue running 5.2.2.70.


#6

BTW, https://luceeserver.atlassian.net/browse/LDEV-907 has also been resolved now, so you can now pass cachedWithin (0,0,0,0) to refresh the cache for that query.