coldfusion.runtime.StructWrapper

Hi Gang,

Can anyone shed some light on this error that I am receiving?
I cannot find anything on it - via Mr.Google.

Thanks as always!!

Don’t forget to tell us about your stack!

OS: Windows 10 - latest
Java Version: openjdk 11.0.14 2022-01-18 LTS
Tomcat Version: 9 (bundled with Lucee)_
Lucee Version: 5.3.8.201

Which error exactly? Is there any more information you could share than just a variable name in the title?

I mean even looking at that variable. I am going to guess that
“coldfusion.runtime” is not a lucee wrapper right?

So in your code are you dropping down to java to do some funky things with a struct?

Anyway, yeah, you need to share code or a stack trace or something for us to help .

Help us help you!

MD

Apologies everyone…
Here is the line of code that is failing;
local.dataWDDXFormStruct = objectLoad(toBinary(local.st[local.i].associatedObject.getDataWDDX()));

This is old code (not mine) that hasn’t been changed in years… so I can only assume that it is correct / doing what it supposed to be doing.

So I am thinking…

  1. Maybe a data issue… but there is data in the column being retrieved / used here and I don’t read binary - unfortunately.

or
2. Any chance there has been a recent change in a recent release of Lucee in this area?

The Prod Server is 5.3.7.47 - whilst I am using 5.3.8.201?
Below is the stack trace;
Thanks again - as always!

lucee.runtime.exp.NativeException: coldfusion.runtime.StructWrapper
at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.felix.framework.BundleWiringImpl.doImplicitBootDelegation(BundleWiringImpl.java:1817)
at org.apache.felix.framework.BundleWiringImpl.tryImplicitBootDelegation(BundleWiringImpl.java:1746)
at org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWiringImpl.java:1699)
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1575)
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at java.base/java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.base/java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.base/java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at lucee.runtime.converter.JavaConverter.deserialize(JavaConverter.java:111)
at lucee.runtime.functions.other.ObjectLoad.call(ObjectLoad.java:57)
at db.document.documentsection_cfc$cf$1lo.udfCall(/gsncfc/db/document/documentSection.cfc:320)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at views.document.edit_cfm$cf.call(/views/document/edit.cfm:324)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1034)
at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:926)
at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:907)
at framework.viewcontext_cfc$cf.udfCall1(/MachII/framework/ViewContext.cfc:114)
at framework.viewcontext_cfc$cf.udfCall(/MachII/framework/ViewContext.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.eventcontext_cfc$cf.udfCall2(/MachII/framework/EventContext.cfc:475)
at framework.eventcontext_cfc$cf.udfCall(/MachII/framework/EventContext.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.commands.viewpagecommand_cfc$cf.udfCall1(/MachII/framework/commands/ViewPageCommand.cfc:92)
at framework.commands.viewpagecommand_cfc$cf.udfCall(/MachII/framework/commands/ViewPageCommand.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.eventhandler_cfc$cf.udfCall(/MachII/framework/EventHandler.cfc:88)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.requesthandler_cfc$cf.udfCall1(/MachII/framework/RequestHandler.cfc:386)
at framework.requesthandler_cfc$cf.udfCall(/MachII/framework/RequestHandler.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:784)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.requesthandler_cfc$cf.udfCall1(/MachII/framework/RequestHandler.cfc:334)
at framework.requesthandler_cfc$cf.udfCall(/MachII/framework/RequestHandler.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:784)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.requesthandler_cfc$cf.udfCall1(/MachII/framework/RequestHandler.cfc:278)
at framework.requesthandler_cfc$cf.udfCall(/MachII/framework/RequestHandler.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:784)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at framework.requesthandler_cfc$cf.udfCall1(/MachII/framework/RequestHandler.cfc:208)
at framework.requesthandler_cfc$cf.udfCall(/MachII/framework/RequestHandler.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at mach_ii_cfc225$cf.udfCall1(/MachII/mach-ii.cfc:210)
at mach_ii_cfc225$cf.udfCall(/MachII/mach-ii.cfc)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:784)
at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1747)
at application_cfc$cf.udfCall(/Application.cfc:189)
at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
at lucee.runtime.type.UDFImpl._call(UDFImpl.java:344)
at lucee.runtime.type.UDFImpl.call(UDFImpl.java:217)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:684)
at lucee.runtime.ComponentImpl._call(ComponentImpl.java:572)
at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1911)
at lucee.runtime.listener.ModernAppListener.call(ModernAppListener.java:437)
at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:133)
at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2460)
at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2450)
at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2421)
at lucee.runtime.engine.Request.exe(Request.java:45)
at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1179)
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1125)
at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: coldfusion.runtime.StructWrapper

I realize you may hope someone just has “the answer” for you (I don’t), but barring that I do have some diagnostics to recommend. :slight_smile:

First, you’re wondering if perhaps “something changed in 5.3.8”, since it works in prod on 5.3.7 but fails on 5.3.8 in dev. While you await anyone clarifying that about this, you could prove/disprove that by running 5.3.7 in dev. But I realize that may be “not an option”, so I’ll continue.

Second, as you may know, the purpose of objectload is to deserialize some object that was persisted using objectsave. If the object may have been saved with one Lucee version and is being loaded with another, perhaps that could be an issue. I’ll leave that for Lucee engineers to speak to.

Finally, consider also dropping to traditional debugging, and do a cfdump/dump of each part of the elements holding that variable being passed to the function. Even if you may think, “I don’t know what they should look like”, just doing the dump may show an error or unusual result for one of them.

I do see you said “there is data in the column being retrieved / used here”, so maybe you did this already. FWIW I don’t see a “column” being referenced, but maybe you mean that the
local.st[local.i].associatedObject is known by you to represent a db col.

In any case, does dumping it show it to be xml, specifically in wddx format, which that getDataWDDX() function you use would be wanting to parse? If it’s not, then dump each var to the left of it in that complex var.

And of course, I do mean you should do the dump BEFORE doing the tobinary. You quipped that you don’t read it, and fortunately you should not need to. :slight_smile:

And if somehow you’re still stuck seeing what’s amiss at this point, you could do the same dumps in prod on 5.3.7 (preferably with the same or similar data), that may show you what things SHOULD look like, which could be useful for comparison, if it’s at all an option.

As for “what changed” to cause the error, maybe the info you find will give you/us a new clue.

without the actual code, its ultra hard to give you a solution.

This looks like, and again, without the code I am just guessing but its some java programmers attempt to overload ColdFusion as on the surface it is very similarly named to:
https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html
java.lang.interger.tobinary

My suggestion before you blame Lucee, look at the java docs.

Additionally, if you posed the code, I am sure you will have at least 5 different people jump in and try to figure out a fix. Otherwise there are multiple consultants who are on the forum like @carehart, @bennadel who are literally the god fathers of the ColdFusion language who do consulting, as well as @bdw429s and others on here who can help you upgrade your code to a working state.

2 Likes

Thanks, Terry. You’ll see I did in fact chime in with thoughts here last night. (Perhaps you got an email notification of Gavin’s note and offered a reply without seeing what others had said so far.)

And Gavin, to add one more point that I’d meant to last night, that key objectload also has a getDataWDDX, which I’m not seeing is a Lucee function (nor a cf one). It could be also that your problem is in that. But i still stand by the diagnostics I first proposed, and I look forward to if you may report what it finds.

1 Like

Yeah, I keep forgetting to hit refresh.

:slight_smile: