I get this exception:
org.apache.jasper.JasperException: Unable to compile class for JSP
I am using tomcat 5.5.23.
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 29 in the jsp file: /jsp/general/pos/DoMultiWordFrozen.jspf
Type mismatch: cannot convert from Boolean to boolean
26:
27: item = (ItemType)session.getAttribute(“item”);
28: id = Integer.parseInt((String)session.getAttribute(“id”));
29: newItem = Boolean.valueOf((String)session.getAttribute(“newItem”));
30: changeGroup = null;
31:
32: if (!newItem && item.getMultiWordFrozen() != null && id != 0) {
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.compiler.ErrorDispatcher.javacError(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.compiler.JDTCompiler.generateClass(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.JspCompilationContext.compile(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.servlet.JspServletWrapper.service(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.servlet.JspServlet.serviceJspFile(jasper5-compiler-5.5.23.jar.so)
org.apache.jasper.servlet.JspServlet.service(jasper5-compiler-5.5.23.jar.so)
javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.23.jar.so)
newitem is defined as:
boolean newItem = false;
SOLUTION:
This was caused because I used an old JDK version which does not include autobxing
after upgrading to jdk 1.6 (or any >= 1.5 ). It is working fine now.
Boolean.valueOfreturns aBoolean, not aboolean– so it sounds like you probably want:Or, perhaps more readably:
I’m slightly surprised that it’s not unboxing automatically for you, but I guess it depends on which version of the Java compiler Jasper is using.