You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2005/04/22 23:16:36 UTC
DO NOT REPLY [Bug 34587] New: -
JDTCompiler can not resolve package org.foo when class org.Foo exists
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=34587>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=34587
Summary: JDTCompiler can not resolve package org.foo when class
org.Foo exists
Product: Tomcat 5
Version: 5.5.9
Platform: All
OS/Version: Windows XP
Status: NEW
Severity: blocker
Priority: P2
Component: Jasper
AssignedTo: tomcat-dev@jakarta.apache.org
ReportedBy: apachebugzilla@waltersson.com
The following JSP page will not compile:
<%@page import="org.Foo"%>
<%@page import="org.foo.Bar"%>
<html>
</html>
Error page says:
org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
The import com.foo cannot be resolved
org.apache.jasper.compiler.DefaultErrorHandler.javacError
(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError
(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass
(JDTCompiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile
(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
To me, the problem root seems to be this method from JDTCompiler.java:
private boolean isPackage(String result) {
if (result.equals(targetClassName)) {
return false;
}
String resourceName = result.replace('.', '/') + ".class";
InputStream is =
classLoader.getResourceAsStream(resourceName);
return is == null;
}
This code obviously will return false for the org.foo package although it does
exist just because there is a class named Foo in the org package.
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org