Lucee 5.3.1.95 administrator.updateExtension "was not able to install extension"

Trying to use the admin component to install an extension. I have the provider installed (Ortus) and am using a very basic call:

admin.updateExtension('5C558CC6-1E67-4776-96A60F9726D580F1')

I confirmed the ID of the extension as well as have installed the extension from within the server admin. I am logged in to the admin component properly (I can run other commands successfully) and have also tried using the version variable as part of the function call, same result.

**As a side note, I did also try other extensions (cfspreadsheet for example) and got the same result.

And the result is:

Message	was not able to install extension 5C558CC6-1E67-4776-96A60F9726D580F1
Stacktrace	The Error Occurred in
/org/lucee/cfml/Administrator.cfc: line 819 
called from /opt/www/localmlsp.com/html/test/misc/scott.cfm: line 5 
The Error Occurred in
/org/lucee/cfml/Administrator.cfc: line 819 
called from /opt/www/localmlsp.com/html/test/misc/scott.cfm: line 5 
Java Stacktrace	lucee.runtime.exp.ApplicationException: was not able to install extension 5C558CC6-1E67-4776-96A60F9726D580F1
 	at lucee.runtime.config.DeployHandler.deployExtension(DeployHandler.java:279)
 	at lucee.runtime.tag.Admin.doUpdateRHExtension(Admin.java:4207)
 	at lucee.runtime.tag.Admin._doStartTag(Admin.java:729)
 	at lucee.runtime.tag.Admin.doStartTag(Admin.java:341)
 	at org.lucee.cfml.administrator_cfc$cf.udfCall4(/org/lucee/cfml/Administrator.cfc:819)
 	at org.lucee.cfml.administrator_cfc$cf.udfCall(/org/lucee/cfml/Administrator.cfc)
 	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
 	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:339)
 	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:212)
 	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:678)
 	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:566)
 	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1917)
 	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:767)
 	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1667)
 	at test.misc.scott_cfm$cf.call(/test/misc/scott.cfm:5)
 	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:911)
 	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:803)
 	at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:64)
 	at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:43)
 	at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2367)
 	at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2357)
 	at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2332)
 	at lucee.runtime.engine.Request.exe(Request.java:43)
 	at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1045)
 	at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:991)
 	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:199)
 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 	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.ajp.AjpProcessor.service(AjpProcessor.java:486)
 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
 	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)

Not much of use in that error message :confused: Try looking in the Lucee deploy logs. Or all the Lucee logs for that matter.

Server’s Catalina.out shows:

lucee.runtime.exp.ApplicationException: was not able to install extension 5C558CC6-1E67-4776-96A60F9726D580F1
	at lucee.runtime.config.DeployHandler.deployExtension(DeployHandler.java:279)
	at lucee.runtime.tag.Admin.doUpdateRHExtension(Admin.java:4207)
	at lucee.runtime.tag.Admin._doStartTag(Admin.java:729)
	at lucee.runtime.tag.Admin.doStartTag(Admin.java:341)
	at org.lucee.cfml.administrator_cfc$cf.udfCall4(/org/lucee/cfml/Administrator.cfc:819)
	at org.lucee.cfml.administrator_cfc$cf.udfCall(/org/lucee/cfml/Administrator.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:106)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:339)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:202)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:679)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:566)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1934)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:845)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1686)
	at test.misc.scott_cfm$cf.call(/test/misc/scott.cfm:5)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:911)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:803)
	at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:64)
	at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:43)
	at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2367)
	at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2357)
	at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2332)
	at lucee.runtime.engine.Request.exe(Request.java:43)
	at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1045)
	at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:991)
	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:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	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.ajp.AjpProcessor.service(AjpProcessor.java:486)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	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)

No other logging facility that I see in either the WEB or SERVER context has a change in it since I last ran the command.

You might need to show more code, don’t you need the username and password and the type of install (web/server) if I recall correctly?

From the code:

public void function updateExtension( required string provider, required string id , required string version ){
		admin
			action="updateRHExtension"
			type="#variables.type#"
			password="#variables.password#"
			source="#downloadFull(arguments.provider,arguments.id,arguments.version)#";
	}

It looks like you need the provider id as well as the version?

(this is the line in the source code: Lucee/Administrator.cfc at 5479f06cc8e3ebe567d9e92aa74c5b324f8b5cb5 · lucee/Lucee · GitHub )

That error message is in the DeployHandler.java class in Lucee. It’s basically the last line of the deployExtension() method and it fires if the method never exits in any of the if statements above it. So it’s hard to tell what’s going on if there’s no other log messages previous to that on in the logs. You’d have to step through the code to find out why it was making it to the throw at the end of the method.

Sorry if I wasn’t more clear in my original code. This is the entirety of the code:

admin=new Administrator("server","******"); 
dump(admin.updateExtension('037A27FF-0B80-4CBA-B954BEBD790B460E'));
abort;

Not sure what I could step through, I definitely wouldn’t be able to step through any Lucee source code.

This should have the extension provider as the first part.

updateExtension( required string provider, required string id , required string version )

so that should have thrown an error? who wants to file a bug?

According to the documentation listed here (Lucee 5.3 (Kabang) new features :: Lucee Documentation) under “extensions” the new format only requires the ID:

// Install Update MongoDB admin=new Administrator("server","server");
admin.updateExtension("E6634E1A-4CC5-4839-A83C67549ECA8D5B");

dump(admin.getExtensions());

dump(extensionExists("E6634E1A-4CC5-4839-A83C67549ECA8D5B")); 

But I’ve tried it with every combination of attribute.

Can anyone reproduce this or help solve? Do I need to open a ticket somewhere?

Please file a bug over at https://luceeserver.atlassian.net/ and include a link back to this thread and post a link to the bug here as well

@markdrew not sure from where you get that, the interface does look like this

/**
	* @hint updates(install/upgrade/downgrade) a specific extension.
	* @id id of the extension
	* @version version of the extension
	*/
	public void function updateExtension(required string id , string version ) {

the id is required and the version is optional, so the call of the function itself was correct