You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2003/04/18 19:26:16 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper JspCompilationContext.java
kinman 2003/04/18 10:26:15
Modified: jasper2/src/share/org/apache/jasper
JspCompilationContext.java
Log:
- Fix 12381: Mangling file names not unique
Revision Changes Path
1.38 +14 -24 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspCompilationContext.java
Index: JspCompilationContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspCompilationContext.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- JspCompilationContext.java 11 Apr 2003 22:41:57 -0000 1.37
+++ JspCompilationContext.java 18 Apr 2003 17:26:15 -0000 1.38
@@ -346,15 +346,12 @@
int iEnd = jspUri.length();
StringBuffer modifiedClassName =
new StringBuffer(jspUri.length() - iSep);
- if (!Character.isJavaIdentifierStart(jspUri.charAt(iSep)) ||
- jspUri.charAt(iSep) == '_' ) {
- // If the first char is not a start of Java identifier or is _
- // prepend a '_'.
+ if (!Character.isJavaIdentifierStart(jspUri.charAt(iSep))) {
modifiedClassName.append('_');
}
for (int i = iSep; i < iEnd; i++) {
char ch = jspUri.charAt(i);
- if (Character.isJavaIdentifierPart(ch)) {
+ if (Character.isJavaIdentifierPart(ch) && ch != '_') {
modifiedClassName.append(ch);
} else if (ch == '.') {
modifiedClassName.append('_');
@@ -433,12 +430,10 @@
int nameStart = 1;
for (int i = 1; i < iSep; i++) {
char ch = jspUri.charAt(i);
- if (i == nameStart) {
- if (! Character.isJavaIdentifierStart(ch) || ch == '_') {
- modifiedPackageName.append('_');
- }
- modifiedPackageName.append(ch);
- } else if (Character.isJavaIdentifierPart(ch)) {
+ if (i == nameStart && !Character.isJavaIdentifierStart(ch)) {
+ modifiedPackageName.append('_');
+ }
+ if (Character.isJavaIdentifierPart(ch) && ch != '_') {
modifiedPackageName.append(ch);
} else if (ch == '/') {
if (isJavaKeyword(jspUri.substring(nameStart, i))) {
@@ -671,17 +666,12 @@
* Mangle the specified character to create a legal Java class name.
*/
private static final String mangleChar(char ch) {
-
- String s = Integer.toHexString(ch);
- int nzeros = 5 - s.length();
- char[] result = new char[6];
+ char[] result = new char[5];
result[0] = '_';
- for (int i = 1; i <= nzeros; i++) {
- result[i] = '0';
- }
- for (int i = nzeros+1, j = 0; i < 6; i++, j++) {
- result[i] = s.charAt(j);
- }
+ result[1] = Character.forDigit((ch >> 12) & 0xf, 16);
+ result[2] = Character.forDigit((ch >> 8) & 0xf, 16);
+ result[3] = Character.forDigit((ch >> 4) & 0xf, 16);
+ result[4] = Character.forDigit(ch & 0xf, 16);
return new String(result);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org