Wondering is anyone stumbled upon a similar issue ...
# box-products
j
Wondering is anyone stumbled upon a similar issue working with Coldbox's `async().newFuture()`:
Copy code
lucee.runtime.exp.NativeException: Can't create file [/[edited]/.CommandBox/server/B18E5DC7678B7F6610D548E1266C7E3B-[edited]/lucee-5.3.9.141/WEB-INF/lucee-web/cfclasses/RPC/V41d6f5ff26589bafd0e9056efd7641284276.class], file already exists
full stack trace in thread
Copy code
lucee.runtime.exp.NativeException: Can't create file [/[edited]/.CommandBox/server/B18E5DC7678B7F6610D548E1266C7E3B-[edited]/lucee-5.3.9.141/WEB-INF/lucee-web/cfclasses/RPC/V41d6f5ff26589bafd0e9056efd7641284276.class], file already exists
	at lucee.commons.io.res.type.file.FileResource.createFile(FileResource.java:281)
	at lucee.commons.io.res.util.ResourceUtil.touch(ResourceUtil.java:768)
	at lucee.transformer.bytecode.util.JavaProxyFactory.createProxy(JavaProxyFactory.java:211)
	at lucee.runtime.functions.other.CreateDynamicProxy._call(CreateDynamicProxy.java:102)
	at lucee.runtime.functions.other.CreateDynamicProxy.call(CreateDynamicProxy.java:51)
	at coldbox.system.async.tasks.future_cfc$cf.udfCall2(/coldbox/system/async/tasks/Future.cfc:354)
	at coldbox.system.async.tasks.future_cfc$cf.udfCall(/coldbox/system/async/tasks/Future.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
	at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1762)
	at coldbox.system.async.tasks.future_cfc$cf.udfCall1(/coldbox/system/async/tasks/Future.cfc:81)
	at coldbox.system.async.tasks.future_cfc$cf.udfCall(/coldbox/system/async/tasks/Future.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:698)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:585)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1951)
	at lucee.runtime.functions.other._CreateComponent.call(_CreateComponent.java:71)
	at coldbox.system.async.asyncmanager_cfc$cf.udfCall2(/coldbox/system/async/AsyncManager.cfc:315)
	at coldbox.system.async.asyncmanager_cfc$cf.udfCall(/coldbox/system/async/AsyncManager.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:697)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:585)
	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1932)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1762)
	at modules_app.items.modules_app.items_api_v1720.handlers.fulfillments_cfc$cf.udfCall1(/modules_app/items/modules_app/items-api-v1/handlers/fulfillments.cfc:491)
contd:
Copy code
at modules_app.items.modules_app.items_api_v1720.handlers.fulfillments_cfc$cf.udfCall(/modules_app/items/modules_app/items-api-v1/handlers/fulfillments.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
	at lucee.runtime.type.scope.ArgumentImpl.callWithNamedValues(ArgumentImpl.java:529)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1781)
	at handlers.resthandler_cfc$cf.udfCall1(/handlers/RestHandler.cfc:58)
	at handlers.resthandler_cfc$cf.udfCall(/handlers/RestHandler.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:698)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:585)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1951)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1781)
	at coldbox.system.web.controller_cfc$cf.udfCall3(/coldbox/system/web/Controller.cfc:940)
	at coldbox.system.web.controller_cfc$cf.udfCall(/coldbox/system/web/Controller.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
	at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:804)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1781)
	at coldbox.system.web.controller_cfc$cf.udfCall3(/coldbox/system/web/Controller.cfc:658)
	at coldbox.system.web.controller_cfc$cf.udfCall(/coldbox/system/web/Controller.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:698)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:585)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1951)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1781)
	at coldbox.system.bootstrap_cfc$cf.udfCall1(/coldbox/system/Bootstrap.cfc:290)
	at coldbox.system.bootstrap_cfc$cf.udfCall(/coldbox/system/Bootstrap.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
	at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1762)
	at coldbox.system.bootstrap_cfc$cf.udfCall1(/coldbox/system/Bootstrap.cfc:507)
	at coldbox.system.bootstrap_cfc$cf.udfCall(/coldbox/system/Bootstrap.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:697)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:585)
	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1932)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1762)
	at application_cfc$cf.udfCall(/Application.cfc:52)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:697)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:585)
	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1932)
	at lucee.runtime.listener.ModernAppListener.call(ModernAppListener.java:444)
	at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:135)
	at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
	at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2475)
	at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2465)
	at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2436)
	at lucee.runtime.engine.Request.exe(Request.java:45)
	at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1198)
	at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1144)
	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:590)
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
	at org.cfmlprojects.regexpathinfofilter.RegexPathInfoFilter.doFilter(RegexPathInfoFilter.java:47)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at runwar.Server$1$1.handleRequest(Server.java:507)
	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:257)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:182)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:225)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:110)
	at org.cfmlprojects.regexpathinfofilter.RegexPathInfoFilter.doFilter(RegexPathInfoFilter.java:45)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at runwar.Server$1$1.handleRequest(Server.java:507)
contd:
Copy code
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:257)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:182)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:225)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:110)
	at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:215)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:405)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at runwar.Server$1$1.handleRequest(Server.java:507)
	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
	at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
	at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: Can't create file [/[edited]/.CommandBox/server/B18E5DC7678B7F6610D548E1266C7E3B-[edited]/lucee-5.3.9.141/WEB-INF/lucee-web/cfclasses/RPC/V41d6f5ff26589bafd0e9056efd7641284276.class], file already exists
	... 181 more
b
@jacek lol, add it as a "snippet" and there's no limit to the amount of text 😉
Click the "plus" icon and search for snippet
I've never seen that error before. What exact Lucee version is this? I'd log a bug with Lucee
j
doh, didn't know such a thing exists (snippet) - will remember next time
tested with Lucee 5.3.9.160 all the way down to 5.3.8.201
it seems to happen when multiple requests hit the same part of code
async().newFuture( function(){}
so I thought it might be a CB async issue? @bdw429s
b
Yeah, that's super weird
I'm surprised I've never seen it before
But it's defo a Lucee issue
j
happens on both windows (local dev) and ubuntu servers, so must be related to either lucee or cb or...?
anyway, the cb's async() seems unusable, need to fall back to parallel map() then
b
You're the first person to report this ¯\_(ツ)_/¯
e
I’ve ran entire workshops and used
async()
in multiple task runners. It’s not unusable, but something is off in your setup.
j
I'm not using it in a task runner @elpete
anyway, trying to do more debugging, the exception object thrown by the future is somewhat cryptic, but I'm starting to think the "class already exists" might be caused by
java.util.concurrent.CompletionException: lucee.runtime.exp.PageRuntimeException: can't call method [getInstance] on object, object is null
it happens only once after server start or fwreinit, then it seems to be working fine
stress on "seems" 😉