You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ru...@locus.apache.org on 2000/01/18 03:54:58 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler ClassName.java

rubys       00/01/17 18:54:58

  Modified:    src/share/org/apache/jasper/compiler ClassName.java
  Log:
  Jasper can't deal with Constant pool entries >= 32K bytes in length
  Submitted by: Juan A. Hern�ndez <ja...@dss.es>
  
  Revision  Changes    Path
  1.2       +20 -20    jakarta-tomcat/src/share/org/apache/jasper/compiler/ClassName.java
  
  Index: ClassName.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/ClassName.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClassName.java	1999/10/09 00:20:35	1.1
  +++ ClassName.java	2000/01/18 02:54:57	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/ClassName.java,v 1.1 1999/10/09 00:20:35 duncan Exp $
  - * $Revision: 1.1 $
  - * $Date: 1999/10/09 00:20:35 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/ClassName.java,v 1.2 2000/01/18 02:54:57 rubys Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/01/18 02:54:57 $
    *
    * ====================================================================
    * 
  @@ -82,9 +82,9 @@
       static String processClassData(InputStream in) throws JasperException, IOException {
   	DataInputStream din = new DataInputStream(in);
   	din.readInt(); // magic
  -	din.readShort(); // majorVersion
  -	din.readShort(); // minorVersion
  -	int count = din.readShort(); // #constant pool entries
  +	din.readUnsignedShort(); // majorVersion
  +	din.readUnsignedShort(); // minorVersion
  +	int count = din.readUnsignedShort(); // #constant pool entries
   	ConstantPool[] constantPool = new ConstantPool[count];
   	constantPool[0] = new ConstantPool();
   	for (int i = 1; i < constantPool.length; i++) {
  @@ -105,8 +105,8 @@
   	    if (constantPool[i].index2 > 0)
   		constantPool[i].arg2 = constantPool[constantPool[i].index2];
   	}
  -	short accessFlags = din.readShort();
  -	ConstantPool thisClass = constantPool[din.readShort()];
  +	int accessFlags = din.readUnsignedShort();
  +	ConstantPool thisClass = constantPool[din.readUnsignedShort()];
           din.close();
   	return printClassName(thisClass.arg1.strValue);
       }
  @@ -210,7 +210,7 @@
       String name; 		// String for the type
       ConstantPool  arg1;	// index to first argument
       ConstantPool  arg2;	// index to second argument
  -    short index1, index2;
  +    int index1, index2;
       String 	strValue; 		// ASCIZ String value
       int		intValue;
       long	longValue;
  @@ -251,32 +251,32 @@
   	switch (type) {
   	    case CLASS:
   		name = "Class";
  -		index1 = din.readShort();
  +		index1 = din.readUnsignedShort();
   		index2 = -1;
   		break;
   	    case FIELDREF:
   		name = "Field Reference";
  -		index1 = din.readShort();
  -		index2 = din.readShort();
  +		index1 = din.readUnsignedShort();
  +		index2 = din.readUnsignedShort();
   		break;
   	    case METHODREF:
   		name = "Method Reference";
  -		index1 = din.readShort();
  -		index2 = din.readShort();
  +		index1 = din.readUnsignedShort();
  +		index2 = din.readUnsignedShort();
   		break;
   	    case INTERFACE:
   		name = "Interface Method Reference";
  -		index1 = din.readShort();
  -		index2 = din.readShort();
  +		index1 = din.readUnsignedShort();
  +		index2 = din.readUnsignedShort();
   		break;
   	    case NAMEANDTYPE:
   		name = "Name and Type";
  -		index1 = din.readShort();
  -		index2 = din.readShort();
  +		index1 = din.readUnsignedShort();
  +		index2 = din.readUnsignedShort();
   		break;
   	    case STRING:
   		name = "String";
  -		index1 = din.readShort();
  +		index1 = din.readUnsignedShort();
   		index2 = -1;
   		break;
   	    case INTEGER:
  @@ -304,7 +304,7 @@
   
   		StringBuffer xxBuf = new StringBuffer();
   
  -		len = din.readShort();
  +		len = din.readUnsignedShort();
   		while (len > 0) {
   		    c = (char) (din.readByte());
   		    xxBuf.append(c);