cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
billbarker2003/09/29 21:49:59 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: Fix problem with empty JSP file. Fix for bug #23478. Reported By: Jens [EMAIL PROTECTED] Revision ChangesPath 1.12 +1 -1 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- JasperMangler.java22 Sep 2003 09:17:46 - 1.11 +++ JasperMangler.java30 Sep 2003 04:49:59 - 1.12 @@ -168,7 +168,7 @@ // Fix for invalid characters. From CommandLineCompiler StringBuffer modifiedClassName = new StringBuffer(); char c='/'; - if( Character.isDigit( className.charAt( 0 ) )) { + if( className.length() 0 Character.isDigit( className.charAt( 0 ) )) { className=_ +className; } for (int i = 0; i className.length(); i++) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
billbarker2003/09/13 21:18:12 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: Add a check for case-insensitive for Windows platforms. Fix for bug #23101 Reported By: Daniele Gaffuri [EMAIL PROTECTED] Revision ChangesPath 1.10 +1 -1 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- JasperMangler.java22 Feb 2002 03:16:09 - 1.9 +++ JasperMangler.java14 Sep 2003 04:18:12 - 1.10 @@ -165,7 +165,7 @@ public String getJspFilePath() { // lazy evaluation of full path if( jspFilePath == null ) -jspFilePath=FileUtil.safePath( docBase, jspFile); +jspFilePath=FileUtil.safePath( docBase, jspFile, false); return jspFilePath; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
larryi 01/11/26 20:04:12 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: Implement lazy evaluation for getJspFilePath() so safePath() is only called once. Revision ChangesPath 1.8 +5 -1 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- JasperMangler.java2001/09/07 04:35:27 1.7 +++ JasperMangler.java2001/11/27 04:04:12 1.8 @@ -163,7 +163,10 @@ } public String getJspFilePath() { - return FileUtil.safePath( docBase, jspFile); +// lazy evaluation of full path +if( jspFilePath == null ) +jspFilePath=FileUtil.safePath( docBase, jspFile); +return jspFilePath; } private String fixInvalidChars(String className) { @@ -287,6 +290,7 @@ // context-relative jsp path // extracted from the jsp-file or the result of a *.jsp mapping private String jspFile; +private String jspFilePath=null; // version of the compiled java file private int version; private String workDir; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
costin 01/09/06 21:35:27 Modified:src/facade22/org/apache/tomcat/facade Servlet22Interceptor.java src/share/org/apache/jasper/compiler JasperMangler.java Log: Minors - one extra debug ( usefull ) in S22, workaround for a common config error in jasper mangler. Revision ChangesPath 1.17 +2 -0 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Servlet22Interceptor.java Index: Servlet22Interceptor.java === RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Servlet22Interceptor.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- Servlet22Interceptor.java 2001/08/12 02:00:23 1.16 +++ Servlet22Interceptor.java 2001/09/07 04:35:27 1.17 @@ -188,6 +188,8 @@ Object value = sess.getAttribute(key); if( value instanceof HttpSessionBindingListener) { + if( debug 0 ) + log(valueUnbound + sess.getId() + + key ); ((HttpSessionBindingListener) value).valueUnbound (new HttpSessionBindingEvent(httpSess , key)); if( removed==null) removed=new Vector(); 1.7 +2 -2 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- JasperMangler.java2001/08/03 02:39:23 1.6 +++ JasperMangler.java2001/09/07 04:35:27 1.7 @@ -241,12 +241,12 @@ if( lastComp 0 ) baseClassN=jspFile.substring( lastComp+1 ); else - baseClassN=jspFile.substring( 1 ); + baseClassN=jspFile.substring( 0 ); } else { if( lastComp 0 ) baseClassN=jspFile.substring( lastComp+1, extIdx ); else - baseClassN=jspFile.substring( 1, extIdx ); + baseClassN=jspFile.substring( 0, extIdx ); } if( JavaGeneratorTool.isKeyword( baseClassN ) )
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
costin 01/08/02 19:39:23 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: 2 fixes in mangler: don't allow keywords in the class name ( new.jsp ) and digits in the first position ( 0.jsp ). We have problems with that because we generate cleaner names, instead of a long string. IMHO it's worth to have a nice name. Revision ChangesPath 1.6 +6 -0 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- JasperMangler.java2001/03/06 21:35:46 1.5 +++ JasperMangler.java2001/08/03 02:39:23 1.6 @@ -170,6 +170,9 @@ // Fix for invalid characters. From CommandLineCompiler StringBuffer modifiedClassName = new StringBuffer(); char c='/'; + if( Character.isDigit( className.charAt( 0 ) )) { + className=_ +className; + } for (int i = 0; i className.length(); i++) { char prev=c; c=className.charAt(i); @@ -246,6 +249,9 @@ baseClassN=jspFile.substring( 1, extIdx ); } + if( JavaGeneratorTool.isKeyword( baseClassN ) ) + baseClassN=_ + baseClassN; + baseClassN=fixInvalidChars( baseClassN ); // System.out.println(XXXMangler: + jspFile + +
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
larryi 01/03/06 13:35:47 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: Update init() method to change '/' character to File.separatorChar in pkgDir for Windows systems. Jasper doesn't work well under Jdk1.1 on Windows if classDir contains '/' characters. Revision ChangesPath 1.5 +5 -1 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- JasperMangler.java2001/02/20 03:36:00 1.4 +++ JasperMangler.java2001/03/06 21:35:46 1.5 @@ -222,7 +222,11 @@ pkgDir=JavaGeneratorTool.manglePackage(pkgDir); pkgDir=pkgDir.replace('.', '_'); pkgDir=fixInvalidChars( pkgDir ); - classDir=workDir + File.separator + pkgDir; + if ( "/".equals(File.separator) ) + classDir=workDir + File.separator + pkgDir; +else + classDir=workDir + File.separator + + pkgDir.replace('/',File.separatorChar); } else { classDir=workDir; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
There is one more problem that you should consider while you are looking at this particular code... JasperMangler.java will generate incorrect class paths if you every have a number after a separator /. It will try to generate package starting with a number, which (obviously) doesn't work in java. -Tom [EMAIL PROTECTED] wrote: larryi 01/03/06 13:35:47 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: Update init() method to change '/' character to File.separatorChar in pkgDir for Windows systems. Jasper doesn't work well under Jdk1.1 on Windows if classDir contains '/' characters. Revision ChangesPath 1.5 +5 -1 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- JasperMangler.java2001/02/20 03:36:00 1.4 +++ JasperMangler.java2001/03/06 21:35:46 1.5 @@ -222,7 +222,11 @@ pkgDir=JavaGeneratorTool.manglePackage(pkgDir); pkgDir=pkgDir.replace('.', '_'); pkgDir=fixInvalidChars( pkgDir ); - classDir=workDir + File.separator + pkgDir; + if ( "/".equals(File.separator) ) + classDir=workDir + File.separator + pkgDir; +else + classDir=workDir + File.separator + + pkgDir.replace('/',File.separatorChar); } else { classDir=workDir; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
costin 01/02/11 20:07:01 Modified:src/share/org/apache/jasper/compiler JasperMangler.java Log: Resolved the (common) "//" problem ( URIs with double slashes ). ( a more generic fix later, this solves a problem with some existing webapps) Revision ChangesPath 1.3 +9 -1 jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java Index: JasperMangler.java === RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JasperMangler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JasperMangler.java2001/02/06 02:46:25 1.2 +++ JasperMangler.java2001/02/12 04:07:00 1.3 @@ -169,8 +169,16 @@ private String fixInvalidChars(String className) { // Fix for invalid characters. From CommandLineCompiler StringBuffer modifiedClassName = new StringBuffer(); + char c='/'; for (int i = 0; i className.length(); i++) { - char c=className.charAt(i); + char prev=c; + c=className.charAt(i); + // workaround for common "//" problem. Alternative + // would be to encode the dot. + if( prev=='/' c=='/' ) { + continue; + } + if (Character.isLetterOrDigit(c) == true || c=='_' || c=='/' ) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler JasperMangler.java
costin 01/01/27 21:54:35 Added: src/share/org/apache/jasper JasperEngineContext.java JasperOptionsImpl.java src/share/org/apache/jasper/compiler JasperMangler.java Log: JspInterceptor: adding support for all options supported by Jasper. This is a slightly bigger change - the Mangler, Options and EngineContext are moved out of JspInterceptor ( to respect the organization of jasper and CommandLineCompiler ). ( they were developed with JspInterceptor as an experimental way to speed up jsp execution - probably at the beggining of tomcat3.2 development, now the code is stable, there is no reason to play with the jasper liaison ) Revision ChangesPath 1.1 jakarta-tomcat/src/share/org/apache/jasper/JasperEngineContext.java Index: JasperEngineContext.java === /* * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * "This product includes software developed by the *Apache Software Foundation (http://www.apache.org/)." *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software *Foundation" must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" *nor may "Apache" appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * */ package org.apache.jasper; import javax.servlet.*; import javax.servlet.http.*; import org.apache.jasper.compiler.JspReader; import org.apache.jasper.compiler.ServletWriter; import org.apache.jasper.compiler.Compiler; import java.util.*; import java.io.*; import java.net.*; import org.apache.jasper.JspCompilationContext; /** Alternative implementation of JspCompilationContext ( in addition to the servlet and standalone ). Used by JspInterceptor - but it's in no way specific to tomcat. */ public class JasperEngineContext implements JspCompilationContext { JspReader reader; ServletWriter writer; ServletContext context; ClassLoader loader; boolean isErrPage; String jspFile; String servletClassName; String servletPackageName; String servletJavaFileName; String contentType; Options options; String cpath;// for compiling JSPs. ServletContext sctx; String outputDir; public JasperEngineContext() { } public void setClassPath( String s ) { cpath=s; } /** * The classpath that is passed off to the Java compiler. */ public String getClassPath() { return cpath; } /** * Get the input reader for the JSP text.