Admin applications management page is unusable when a logo file is unavailable

Description

It seems that when an application provider logo isn't available Lucee does not handle this well. An error message is displayed but the rest of the page is unusable. This is under Extensions -> Applications:

source file https://s3.amazonaws.com/downloads.ortussolutions.com/ortussolutions/mongodb-extension/mongodb-extension-icon.png is not a file

If you try and load the URL it gives an S3 404: https://s3.amazonaws.com/downloads.ortussolutions.com/ortussolutions/mongodb-extension/mongodb-extension-icon.png

So I suspect Ortus just made a change to their S3 bucket which caused this, but the way Lucee handles a missing image in this instance seems to be overkill. If the image can't load that shouldn't prevent the page from being used. I would think showing that error message but letting the applications load would be ideal, even if that one application can't be managed (not sure why that would be an issue if the image wasn't there) it should not kill the whole page

lucee.runtime.exp.ApplicationException: source file [https://s3.amazonaws.com/downloads.ortussolutions.com/ortussolutions/mongodb-extension/mongodb-extension-icon.png] is not a file at lucee.runtime.tag.FileTag.checkFile(FileTag.java:1172) at lucee.runtime.tag.FileTag.actionRead(FileTag.java:651) at lucee.runtime.tag.FileTag.doStartTag(FileTag.java:409) at ext_functions_cfm184$cf.udfCall3(/admin/ext.functions.cfm:203) at ext_functions_cfm184$cf.udfCall(/admin/ext.functions.cfm) 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.type.scope.UndefinedImpl.call(UndefinedImpl.java:760) at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:767) at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1667) at ext_applications_list_cfm966$cf.call(/admin/ext.applications.list.cfm:210) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:911) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:803) at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:785) at ext_applications_cfm184$cf.call(/admin/ext.applications.cfm:102) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:911) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:803) at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:785) at web_cfm$cf.call(/admin/web.cfm:457) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:911) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:803) at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:785) at server_cfm$cf.call(/admin/server.cfm:2) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:911) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:803) at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:217) at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42) 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: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.ajp.AjpProcessor.service(AjpProcessor.java:479) 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)

Environment

CentOS 7
Apache

Assignee

Pothys - MitrahSoft

Reporter

Scott Berry

Priority

Major

Fix versions

None

Sprint

None

Affects versions

Configure