FileNotFoundException: jndi:/localhost/VAADIN/themes

My application appears to work, but once or twice I day I see log entries such as below. Any clues as to what is going on?

Running on Vaadin 6.8.6 and Tomcat 7.0.34.

Dec 21, 2012 12:52:16 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [manage]
 in context with path [] threw exception
java.io.FileNotFoundException: jndi:/localhost/VAADIN/themes/birdbath
        at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
        at java.net.URL.openStream(URL.java:1035)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.writeStaticResourceResponse(AbstractApplicationServlet.java:1371)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.serveStaticResourcesInVAADIN(AbstractApplicationServlet.java:1350)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.serveStaticResources(AbstractApplicationServlet.java:1246)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:423)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

Dec 21, 2012 8:18:34 AM com.vaadin.terminal.gwt.server.AbstractApplicationServlet serveStaticResourcesInVAADIN
INFO: Requested resource [VAADIN/widgetsets/com.company.birdbath.manage.widgetset.BirdbathWidgetset/F1E7083B7134FD92E8A6ACE28E709CFA.cache.html]
 not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder.
Dec 21, 2012 8:19:28 AM com.vaadin.terminal.gwt.server.AbstractApplicationServlet serveStaticResourcesInVAADIN
INFO: Requested resource [VAADIN/widgetsets/com.company.birdbath.manage.widgetset.BirdbathWidgetset/F1E7083B7134FD92E8A6ACE28E709CFA.cache.html]
 not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder.
Dec 21, 2012 8:25:18 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [manage]
 in context with path [] threw exception
java.io.FileNotFoundException: jndi:/localhost/VAADIN/themes/birdbath
        at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
        at java.net.URL.openStream(URL.java:1035)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.writeStaticResourceResponse(AbstractApplicationServlet.java:1371)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.serveStaticResourcesInVAADIN(AbstractApplicationServlet.java:1350)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.serveStaticResources(AbstractApplicationServlet.java:1246)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:423)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

I am facing exactly the same issue. Any resolution yet?

My guess: someone/something is trying to get a directory listing of the theme directory.

It might also be a robot (e.g. search engine) or a user entering the theme path directly.

The problem simply went away. It may indeed have just been a robot. In any case, I’ve pretty much stopped worrying about so called “SEVERE” log events coming out of Tomcat - they’re always things that I can’t do anything about and do no harm.

It started again. Maybe it is indeed a robot, but I don’t think Vaadin should be throwing out unhandled exceptions for what is essentially a HTTP 404.

03:17:06.807 ERROR http-nio-80-exec-2: Servlet.service() for servlet [manage]
 in context with path [] threw exception [o.a.c.c.C.[.[.[.[manage]
]
java.io.FileNotFoundException: jndi:/localhost/VAADIN/themes/birdbath
        at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389) ~[catalina.jar:7.0.34]

        at java.net.URL.openStream(URL.java:1035) ~[na:1.7.0_05]

        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.writeStaticResourceResponse(AbstractApplicationServlet.java:1371) ~[vaadin-6.8.6.jar:6.8.6]

        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.serveStaticResourcesInVAADIN(AbstractApplicationServlet.java:1350) ~[vaadin-6.8.6.jar:6.8.6]

        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.serveStaticResources(AbstractApplicationServlet.java:1246) ~[vaadin-6.8.6.jar:6.8.6]

        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:423) ~[vaadin-6.8.6.jar:6.8.6]

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) ~[servlet-api.jar:na]

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) ~[catalina.jar:7.0.34]

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[catalina.jar:7.0.34]

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) ~[catalina.jar:7.0.34]

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) [catalina.jar:7.0.34]

        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.34]

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [catalina.jar:7.0.34]

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) [catalina.jar:7.0.34]

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.34]

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [catalina.jar:7.0.34]

        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) [tomcat-coyote.jar:7.0.34]

        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) [tomcat-coyote.jar:7.0.34]

        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) [tomcat-coyote.jar:7.0.34]

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_05]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_05]

        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_05]

I agree - I believe trying to fetch a file that does not exist does not result in an exception being logged but just a one-line log message, trying to fetch an existing directory should do the same.

Please
create a ticket
about this.


Ticket 10760
created.