Here’s how I encountered the title error, while attempting to show a client how easily I could prop up his old ACF app to run on Lucee instead:
First, we zip up the original source code from a production Windows IIS server.
Then I unzip it on my own localhost environment, add one mapping and tweak a few path pointers. For example, because it’s fusebox5 (gag) I renamed it’s own getCanonicalPath() function to getCanonicalPathFB() to prevent that conflict.
It now runs great on this platform:
Lucee 5.3.8.84-SNAPSHOT (Gelert)
Apache Tomcat/9.0.11
Java 1.8.0_211 (Oracle Corporation) 64bit
Windows 10 (10.0) 64bit
Thinking I’m ready for prime time, I zip up just the source code (not the WEB-INF folder for heaven’s sake), give myself a DNS entry and extract the source onto this Linux hosted server:
Lucee 5.3.8.206 (Gelert)
Apache Tomcat/8.5.33
Java 1.8.0_201 (Oracle Corporation) 64bit
Linux (4.4.0-210-generic) 64bit
I add the needed mapping and fire 'er up. This is what comes out.
So it runs great on Lucee A, but dumps this error on Lucee B.
Which “thing” do you suspect is amiss between these two platforms (given the same source code)?
Thanks! Al
"ERROR","http-nio-8888-exec-9","04/27/2022","17:29:38","","loader constraint violation:
loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask"";
loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask"";lucee.runtime.exp.CustomTypeException: loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask""
at lucee.runtime.tag.Throw.toPageException(Throw.java:169)
at lucee.runtime.tag.Throw._doStartTag(Throw.java:209)
at lucee.runtime.tag.Throw.doStartTag(Throw.java:202)
at fusebox5.application_cfc$cf.udfCall1(/fusebox5/Application.cfc:310)
at fusebox5.application_cfc$cf.udfCall(/fusebox5/Application.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.listener.ModernAppListener.call(ModernAppListener.java:437)
at lucee.runtime.listener.ModernAppListener.onError(ModernAppListener.java:425)
at lucee.runtime.listener.MixedAppListener.onError(MixedAppListener.java:138)
at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2488)
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:102)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
..."
The framework appears to be catching and throwing a new error. Comment out the error handling or add a rethrow to the catch block to capture the root error and then list full stack info that along with code causing it.
Thanks @bdw429s - but there’s no app code line number to reference.
Every Lucee app on the server (except the admins) just throws this stack, no matter the page.
If you’re talking about some master error catch routine that Lucee itself uses, I don’t know where that is.
If possible, I’m going to reverse my original steps (un-deploy this one new app) and see if that’s still the suspected cause, or something more coincidental has happened here.
Yes there is:
at fusebox5.application_cfc$cf.udfCall1(/fusebox5/Application.cfc:310)
Start there and you’ll likely find Fusebox’s error handing that I referenced in my first message.
Perhaps, but that’s mostly irrelevant. The issue is likely with Fusebox itself, but no matter. My directions remain the same. Get the root error thrown directly so we can see exactly what it is and where it’s coming. And keep in mind I’m referring to both “your” code and the fusebox “framework” as the “app code”. So that means you’ll probably need to be mucking around in the Fusebox files to help teases out the actual original error.
Nope, I’m talking about line 310
of /fusebox5/Application.cfc
where the caught error is being rethrown
@bdw429s Duh, you’re right. I’m looking for the classic user-friendly error structure. Let me poke around some more before Vivio just restores the entire VM for a do-over.
I find it interesting that “Duh” and “No Duh” apparently mean the same thing despite the Boolean implication.
Probably the same reason “fat chance” and “slim change” mean the same thing. One is face value and the other is sarcasm?
I’m not even quite sure what the definition of a “duh” is!
1 Like
@bdw429s I think it’s similar to the Simpsonesque “doh”
Anyway, the app which caused all this is no more. I pulled all the source out of the folder, leaving the WEB-INF that Tomcat/Lucee keeps throwing back in there. This - and various down and upgrade actions - were done since my OP.
However, the issue still remains in all the other apps except the one running Mura.
Here’s the same error (plus a different one) from another app. It points to Line 62 of Application.cfc. This component has no onError handler. The target line is the first in a series of invocations:
62 <cfset Application.ObjUser = createObject("component", "models.user_model") />
63 <cfset Application.ObjBusiness = createObject("component", "models.business_model") />
.
.
"ERROR","http-nio-8888-exec-9","04/28/2022","11:00:20","","loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask"";loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask"";lucee.runtime.exp.NativeException: loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask""
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1517)
at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at lucee.transformer.library.tag.TagLibTag.hasBodyMethodExists(TagLibTag.java:660)
at lucee.transformer.bytecode.statement.tag.TagHelper.writeOut(TagHelper.java:222)
at lucee.transformer.bytecode.statement.tag.TagBase._writeOut(TagBase.java:134)
at lucee.transformer.bytecode.statement.tag.TagOther._writeOut(TagOther.java:44)
at lucee.transformer.bytecode.statement.StatementBase.writeOut(StatementBase.java:81)
at lucee.transformer.bytecode.util.ExpressionUtil.writeOut(ExpressionUtil.java:146)
at lucee.transformer.bytecode.BodyBase.writeOut(BodyBase.java:191)
at lucee.transformer.bytecode.BodyBase.writeOut(BodyBase.java:147)
at lucee.transformer.bytecode.BodyBase._writeOut(BodyBase.java:143)
at lucee.transformer.bytecode.statement.StatementBase.writeOut(StatementBase.java:81)
at lucee.transformer.bytecode.statement.NativeSwitch._writeOut(NativeSwitch.java:74)
at lucee.transformer.bytecode.Page.writeOutUdfCallInner(Page.java:868)
at lucee.transformer.bytecode.Page.execute(Page.java:495)
at lucee.runtime.compiler.CFMLCompilerImpl._compile(CFMLCompilerImpl.java:109)
at lucee.runtime.compiler.CFMLCompilerImpl.compile(CFMLCompilerImpl.java:76)
at lucee.runtime.PageSourceImpl._compile(PageSourceImpl.java:446)
at lucee.runtime.PageSourceImpl.compile(PageSourceImpl.java:413)
at lucee.runtime.PageSourceImpl.loadPhysical(PageSourceImpl.java:346)
at lucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:237)
at lucee.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:1013)
at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:219)
at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:117)
at lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:79)
at lucee.runtime.PageContextImpl.loadComponent(PageContextImpl.java:3247)
at lucee.runtime.functions.other.CreateObject.doComponent(CreateObject.java:148)
at lucee.runtime.functions.other.CreateObject.call(CreateObject.java:70)
at lucee.runtime.functions.other.CreateObject.call(CreateObject.java:49)
at application_cfc$cf$2.udfCall(/Application.cfc:62)
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.onApplicationStart(ModernAppListener.java:304)
at lucee.runtime.PageContextImpl.initApplicationContext(PageContextImpl.java:3135)
at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:120)
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:102)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name ""lucee/runtime/spooler/SpoolerTask""
... 89 more
In this app’s application.log I’m seeing a quantity of these:
"ERROR","http-nio-8888-exec-1","04/28/2022","09:34:38","OSGi","Given version [${version}] is invalid, a valid version is following this pattern <major-number>.<minor-number>.<micro-number>[.<qualifier>];Given version [${version}] is invalid, a valid version is following this pattern <major-number>.<minor-number>.<micro-number>[.<qualifier>];org.osgi.framework.BundleException: Given version [${version}] is invalid, a valid version is following this pattern <major-number>.<minor-number>.<micro-number>[.<qualifier>]
at lucee.runtime.osgi.OSGiUtil.toVersion(OSGiUtil.java:250)
at lucee.runtime.osgi.BundleInfo.<init>(BundleInfo.java:102)
at lucee.runtime.osgi.BundleFile.<init>(BundleFile.java:62)
at lucee.runtime.osgi.BundleFile.getInstance(BundleFile.java:55)
at lucee.runtime.osgi.BundleFile.getInstance(BundleFile.java:42)
at lucee.runtime.config.ConfigWebUtil.loadLib(ConfigWebUtil.java:201)
at lucee.runtime.config.XMLConfigWebFactory.load(XMLConfigWebFactory.java:444)
at lucee.runtime.config.XMLConfigWebFactory.newInstance(XMLConfigWebFactory.java:282)
at lucee.runtime.engine.CFMLEngineImpl.loadJSPFactory(CFMLEngineImpl.java:908)
at lucee.runtime.engine.CFMLEngineImpl.getCFMLFactory(CFMLEngineImpl.java:1101)
at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1134)
at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1125)
at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102)
at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
..."
We’re restoring the entire server from an earlier state now. I’m afraid our debugging time window is closed.
But for posterity, please confirm any potential errors in these deployment steps. As described in the OP - we tweaked an old ACF app on the development machine to run nicely on Lucee. Then:
- Using Linux/Webmin, we created a new virtual host for demoapp.
- Under the new /home/demoapp/public_html/ file structure, Lucee plopped a WEB-INF subfolder there for us. (I don’t know from where it got that.)
- We zipped up our CF source code from the development box (except for IDE files & settings - and the WEB-INF folder there)
- We extracted the CF source code from the zip to /home/demoapp/public_html/
Where did we do wrong?