What could be causing this Java exception when viewing a single file in a collection or viewing a collection report?

1,028 views
Skip to first unread message

Dave Rogers

unread,
Feb 27, 2013, 12:27:53 PM2/27/13
to ace-...@googlegroups.com
ACE 1.6b2 
Tomcat 6.0.36 
Connector/J 5.1.20
Varying JRE versions (see following)

I've attached a PDF screenshot of the error as we saw it (the log file is below), when testing with a 32-bit older version of Java. Similar exceptions occurred in our production 64-bit 1.7.0_11 JRE, but the stack trace was not as descriptive about the offending JSP code.

The "Cannot convert ... of type class java.lang.String to class java.lang.Long" exception would occur on our jre7-64 ACE production installation whenever attempting to view the properties of a single file in the collection, or when attempting to view a collection report (the little PDF icon).

On our jre6-32/64 ACE test platform, attempting to view the properties for a single file always resulted in a blank right-hand side of the screen. Attempting to view the collection report did produce the same exception, but only for a collection with a known corrupt file (which is why the JSP code in the attached PDF seems to have been triggered).

It seems as though the code is trying to convert these alphabetic status codes into numbers and failing. We didn't see this in our previous test environments from last year, and are at a loss to explain the difference.


26-Feb-2013 9:53:40 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.ELException: Cannot convert C of type class java.lang.String to class java.lang.Long
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:296)
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:275)
at org.apache.el.lang.ELSupport.equals(ELSupport.java:121)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:39)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
at org.apache.jsp.report_jsp._jspx_meth_c_005fwhen_005f0(report_jsp.java:508)
at org.apache.jsp.report_jsp._jspx_meth_c_005fchoose_005f0(report_jsp.java:458)
at org.apache.jsp.report_jsp._jspx_meth_c_005fforEach_005f0(report_jsp.java:403)
at org.apache.jsp.report_jsp._jspService(report_jsp.java:202)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at edu.umiacs.ace.monitor.access.CollectionSummaryServlet.processRequest(CollectionSummaryServlet.java:148)
at edu.umiacs.ace.util.EntityManagerServlet.wrapRequest(EntityManagerServlet.java:120)
at edu.umiacs.ace.util.EntityManagerServlet.doGet(EntityManagerServlet.java:229)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
26-Feb-2013 9:53:40 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet ReportServlet threw exception
javax.el.ELException: Cannot convert C of type class java.lang.String to class java.lang.Long
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:296)
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:275)
at org.apache.el.lang.ELSupport.equals(ELSupport.java:121)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:39)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
at org.apache.jsp.report_jsp._jspx_meth_c_005fwhen_005f0(report_jsp.java:508)
at org.apache.jsp.report_jsp._jspx_meth_c_005fchoose_005f0(report_jsp.java:458)
at org.apache.jsp.report_jsp._jspx_meth_c_005fforEach_005f0(report_jsp.java:403)
at org.apache.jsp.report_jsp._jspService(report_jsp.java:202)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at edu.umiacs.ace.monitor.access.CollectionSummaryServlet.processRequest(CollectionSummaryServlet.java:148)
at edu.umiacs.ace.util.EntityManagerServlet.wrapRequest(EntityManagerServlet.java:120)
at edu.umiacs.ace.util.EntityManagerServlet.doGet(EntityManagerServlet.java:229)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)


ace-exception-tomcat6.0.36-java1.6.0_41-32bit.pdf

shake

unread,
Mar 4, 2013, 4:22:06 PM3/4/13
to ace-...@googlegroups.com
Hey Dave,

As far as I know the state for an item has always been a char so this exception is strange. Since your last problem I found out that Tomcat likes to cache old information, and I'm wondering if that could be the source of these. Typically it is done in the work folder inside the Tomcat root directory (or the catalina_base dir).

You can try stopping Tomcat, removing the folder (should be similar to "tomcat/work/Catalina/localhost/ace-am"), then starting Tomcat again.

I suspect this is what was causing the upgrades to fail as well.

-Mike

Dave Rogers

unread,
Mar 13, 2013, 1:01:10 AM3/13/13
to ace-...@googlegroups.com
Thanks, Mike. Unfortunately removing the work folder didn't make any difference. I still see the same error when trying to view the report, and still see a blank screen when trying to browse a single file. The production install was on a new machine, so I kind of figured cached info wouldn't have been the problem.

Any other tips you can suggest?

Dave

shake

unread,
Mar 18, 2013, 6:40:58 PM3/18/13
to ace-...@googlegroups.com
Hey Dave,

I think I found the problems source after doing some testing.

From what I can tell, tomcat 6.0.36 is the culprit. It continually throws the error no matter what version of Java (6/7). Tomcat 6.0.35, however, does not throw the error at all when either browsing or viewing a report on any version of Java. I'm not sure what was changed between the two versions, but I'll work on bringing the code up to date to work on both.

-Mike

shake

unread,
Mar 22, 2013, 2:06:06 PM3/22/13
to ace-...@googlegroups.com
Hey,

I made a patch for this issue and rolled out a new release with some other fixes as well. In addition it will obfuscate filenames by default, so no sensitive information is passed anymore.

It's available at https://scm.umiacs.umd.edu/redmine/adapt/projects/ace/files as ACE 1.8.

-Mike

Dave Rogers

unread,
Mar 22, 2013, 2:20:09 PM3/22/13
to ace-...@googlegroups.com
Thanks, Mike. That's great news, and much appreciated. It'll be a while before we get the chance to test again and upgrade, but in the meantime, the rest of ACE is just humming along at our end.

Dave
Reply all
Reply to author
Forward
0 new messages