marcsaeg 2003/07/01 13:59:02 Modified: src/share/org/apache/jasper/compiler Tag: tomcat_32 Compiler.java JspCompiler.java Log: Avoid multiple calls to isOutDated(). Avoid multiple string concatenations in getPackageName(). Revision Changes Path No revision No revision 1.19.2.7 +3 -6 jakarta-tomcat/src/share/org/apache/jasper/compiler/Compiler.java Index: Compiler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/Compiler.java,v retrieving revision 1.19.2.6 retrieving revision 1.19.2.7 diff -u -r1.19.2.6 -r1.19.2.7 --- Compiler.java 9 Mar 2001 23:35:25 -0000 1.19.2.6 +++ Compiler.java 1 Jul 2003 20:59:02 -0000 1.19.2.7 @@ -116,9 +116,6 @@ new Object[] { classFileName }, Logger.DEBUG); - if (!isOutDated()) - return false; - // Hack to avoid readign the class file every time - // getClassName() is an _expensive_ operation, and it's needed only // if isOutDated() return true. 1.14.2.4 +34 -17 jakarta-tomcat/src/share/org/apache/jasper/compiler/JspCompiler.java Index: JspCompiler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JspCompiler.java,v retrieving revision 1.14.2.3 retrieving revision 1.14.2.4 diff -u -r1.14.2.3 -r1.14.2.4 --- JspCompiler.java 5 Jan 2001 18:07:21 -0000 1.14.2.3 +++ JspCompiler.java 1 Jul 2003 20:59:02 -0000 1.14.2.4 @@ -94,11 +94,19 @@ this.outDated = false; setMangler(this); - // If the .class file exists and is outdated, compute a new - // class name - if( isOutDated() ) { - generateNewClassName(); - } + ctxt.setServletPackageName(getPackageName()); + } + + public boolean compile() throws FileNotFoundException, JasperException, Exception + + { + // If the .class file exists and is outdated, compute a new class name + if( isOutDated() ) { + generateNewClassName(); + return super.compile(); + } + + return false; } private void generateNewClassName() { @@ -195,6 +203,15 @@ "try", "void", "volatile", "while" }; + public static String[] fsKeywords = null; + static{ + fsKeywords = new String[keywords.length]; + char fs = File.separatorChar; + for(int i=0;i<keywords.length;i++){ + fsKeywords[i] = new String(fs + keywords[i]); + } + } + public final String getPackageName() { if( pkgName!=null) return pkgName; @@ -206,18 +223,18 @@ if (indexOfSepChar == -1 || indexOfSepChar == 0) pkgName = null; else { - for (int i = 0; i < keywords.length; i++) { - char fs = File.separatorChar; - int index1 = pathName.indexOf(fs + keywords[i]); - int index2 = pathName.indexOf(keywords[i]); - if (index1 == -1 && index2 == -1) continue; - int index = (index2 == -1) ? index1 : index2; - while (index != -1) { - String tmpathName = pathName.substring (0,index+1) + '%'; - pathName = tmpathName + pathName.substring (index+2); - index = pathName.indexOf(fs + keywords[i]); - } - } + char fs = File.separatorChar; + for (int i = 0; i < keywords.length; i++) { + int index1 = pathName.indexOf(fsKeywords[i]); + int index2 = pathName.indexOf(keywords[i]); + if (index1 == -1 && index2 == -1) continue; + int index = (index2 == -1) ? index1 : index2; + while (index != -1) { + String tmpathName = pathName.substring (0,index+1) + '%'; + pathName = tmpathName + pathName.substring (index+2); + index = pathName.indexOf(fs + keywords[i]); + } + } // XXX fix for paths containing '.'. // Need to be more elegant here.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]