tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 15088] New: - org.apache.jasper.servlet.JspServlet doesn't close a FileInputStream.
Date Wed, 04 Dec 2002 22:41:03 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15088>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15088

org.apache.jasper.servlet.JspServlet doesn't close a FileInputStream.

           Summary: org.apache.jasper.servlet.JspServlet doesn't close a
                    FileInputStream.
           Product: Tomcat 4
           Version: 4.0.6 Final
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Jasper
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: martink@handysoft.com


As I know, JspServlet is responsible for checking if jsp should be reloaded or
not, etc.

I found that JspServlet is checking it by opening the jsp file input stream.
In the loadJSP() method of JspServlet,

	// First check if the requested JSP page exists, to avoid creating
	// unnecessary directories and files.
	if (context.getResourceAsStream(jspUri) == null)
	    throw new FileNotFoundException(jspUri);

context.getResourceAsStream() returns a InputStream object for the jsp file.
I think this routine would call `org.apache.catalina.core.ApplicationContext''s
getResourceAsStream() method, and then call
`org.apache.naming.resources.FileDirContext''s `streamContent()' method, which
would return a FileInputStream object.

If my inference is true, then `if (context.getResourceAsStream(jspUri) == null)'
code has a problem. Because this code doesn't close the FileInputStream object
explicitly, the file handle might be monitored only by garbage collector.
This can be a problem in case that the limit count of open files is set on a
system. Every request can open a jsp stream, so the open file count increases.

I don't think it's efficient to open the stream to check whether the jsp should
be reloaded or not.

Thanks. (My opinion could be based on misunderstandings.)

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message