You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-dev@jakarta.apache.org by md...@apache.org on 2002/04/24 13:01:31 UTC
cvs commit: jakarta-bcel/src/java/org/apache/bcel/generic Type.java
mdahm 02/04/24 04:01:31
Modified: examples patchclass.java
src/java/org/apache/bcel/classfile Attribute.java
ClassParser.java Constant.java ConstantPool.java
ConstantValue.java Field.java FieldOrMethod.java
Method.java Utility.java
src/java/org/apache/bcel/generic Type.java
Added: src/java/org/apache/bcel/classfile ClassFormatException.java
Log:
Don\'t throw anymore Errors but exceptions
Revision Changes Path
1.2 +1 -2 jakarta-bcel/examples/patchclass.java
Index: patchclass.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/examples/patchclass.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- patchclass.java 29 Oct 2001 20:01:10 -0000 1.1
+++ patchclass.java 24 Apr 2002 11:01:30 -0000 1.2
@@ -1,6 +1,5 @@
import java.io.*;
import org.apache.bcel.classfile.*;
-import org.apache.bcel.Constants;
/**
* Patch all Utf8 constants in the given class file <em>file</em>.class
@@ -8,7 +7,7 @@
*
* Usage: patch <oldstring> <newstring> files
*
- * @version $Id: patchclass.java,v 1.1 2001/10/29 20:01:10 jvanzyl Exp $
+ * @version $Id: patchclass.java,v 1.2 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="http://www.berlin.de/~markus.dahm/">M. Dahm</A>
*/
public class patchclass {
1.7 +4 -5 jakarta-bcel/src/java/org/apache/bcel/classfile/Attribute.java
Index: Attribute.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/Attribute.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Attribute.java 11 Mar 2002 16:16:35 -0000 1.6
+++ Attribute.java 24 Apr 2002 11:01:30 -0000 1.7
@@ -66,7 +66,7 @@
* <em>Synthetic</em> attributes are supported. The
* <em>Unknown</em> attribute stands for non-standard-attributes.
*
- * @version $Id: Attribute.java,v 1.6 2002/03/11 16:16:35 mdahm Exp $
+ * @version $Id: Attribute.java,v 1.7 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
* @see ConstantValue
* @see SourceFile
@@ -146,12 +146,11 @@
* @param constant_pool Array of constants
* @return Attribute
* @throws IOException
- * @throws ClassFormatError
- * @throws InternalError
+ * @throws ClassFormatException
*/
public static final Attribute readAttribute(DataInputStream file,
ConstantPool constant_pool)
- throws IOException, ClassFormatError, InternalError
+ throws IOException, ClassFormatException
{
ConstantUtf8 c;
String name;
@@ -223,7 +222,7 @@
return new StackMap(name_index, length, file, constant_pool);
default: // Never reached
- throw new InternalError("Ooops! default case reached.");
+ throw new IllegalStateException("Ooops! default case reached.");
}
}
1.3 +22 -22 jakarta-bcel/src/java/org/apache/bcel/classfile/ClassParser.java
Index: ClassParser.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/ClassParser.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClassParser.java 11 Mar 2002 16:16:35 -0000 1.2
+++ ClassParser.java 24 Apr 2002 11:01:30 -0000 1.3
@@ -71,7 +71,7 @@
* JVM specification 1.0</a>. See this paper for
* further details about the structure of a bytecode file.
*
- * @version $Id: ClassParser.java,v 1.2 2002/03/11 16:16:35 mdahm Exp $
+ * @version $Id: ClassParser.java,v 1.3 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public final class ClassParser {
@@ -141,15 +141,15 @@
/**
* Parse the given Java class file and return an object that represents
* the contained data, i.e., constants, methods, fields and commands.
- * A <em>ClassFormatError</em> is raised, if the file is not a valid
+ * A <em>ClassFormatException</em> is raised, if the file is not a valid
* .class file. (This does not include verification of the byte code as it
* is performed by the java interpreter).
*
* @return Class object representing the parsed class file
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- public JavaClass parse() throws IOException, ClassFormatError
+ public JavaClass parse() throws IOException, ClassFormatException
{
/****************** Read headers ********************************/
// Check magic tag of class file
@@ -210,9 +210,9 @@
/**
* Read information about the attributes of the attributes of the class.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readAttributes() throws IOException, ClassFormatError
+ private final void readAttributes() throws IOException, ClassFormatException
{
int attributes_count;
@@ -226,9 +226,9 @@
/**
* Read information about the class and its super class.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readClassInfo() throws IOException, ClassFormatError
+ private final void readClassInfo() throws IOException, ClassFormatException
{
access_flags = file.readUnsignedShort();
@@ -240,7 +240,7 @@
if(((access_flags & Constants.ACC_ABSTRACT) != 0) &&
((access_flags & Constants.ACC_FINAL) != 0 ))
- throw new ClassFormatError("Class can't be both final and abstract");
+ throw new ClassFormatException("Class can't be both final and abstract");
class_name_index = file.readUnsignedShort();
superclass_name_index = file.readUnsignedShort();
@@ -248,9 +248,9 @@
/**
* Read constant pool entries.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readConstantPool() throws IOException, ClassFormatError
+ private final void readConstantPool() throws IOException, ClassFormatException
{
constant_pool = new ConstantPool(file);
}
@@ -258,9 +258,9 @@
/**
* Read information about the fields of the class, i.e., its variables.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readFields() throws IOException, ClassFormatError
+ private final void readFields() throws IOException, ClassFormatException
{
int fields_count;
@@ -277,21 +277,21 @@
* Check whether the header of the file is ok.
* Of course, this has to be the first action on successive file reads.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readID() throws IOException, ClassFormatError
+ private final void readID() throws IOException, ClassFormatException
{
int magic = 0xCAFEBABE;
if(file.readInt() != magic)
- throw new ClassFormatError(file_name + " is not a Java .class file");
+ throw new ClassFormatException(file_name + " is not a Java .class file");
}
/**
* Read information about the interfaces implemented by this class.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readInterfaces() throws IOException, ClassFormatError
+ private final void readInterfaces() throws IOException, ClassFormatException
{
int interfaces_count;
@@ -304,9 +304,9 @@
/**
* Read information about the methods of the class.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readMethods() throws IOException, ClassFormatError
+ private final void readMethods() throws IOException, ClassFormatException
{
int methods_count;
@@ -319,9 +319,9 @@
/**
* Read major and minor version of compiler which created the file.
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- private final void readVersion() throws IOException, ClassFormatError
+ private final void readVersion() throws IOException, ClassFormatException
{
minor = file.readUnsignedShort();
major = file.readUnsignedShort();
1.2 +3 -3 jakarta-bcel/src/java/org/apache/bcel/classfile/Constant.java
Index: Constant.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/Constant.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Constant.java 29 Oct 2001 19:59:58 -0000 1.1
+++ Constant.java 24 Apr 2002 11:01:30 -0000 1.2
@@ -62,7 +62,7 @@
* in the constant pool of a class file. The classes keep closely to
* the JVM specification.
*
- * @version $Id: Constant.java,v 1.1 2001/10/29 19:59:58 jvanzyl Exp $
+ * @version $Id: Constant.java,v 1.2 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public abstract class Constant implements Cloneable, Node {
@@ -124,7 +124,7 @@
* @return Constant object
*/
static final Constant readConstant(DataInputStream file)
- throws IOException, ClassFormatError
+ throws IOException, ClassFormatException
{
byte b = file.readByte(); // Read tag byte
@@ -142,7 +142,7 @@
case Constants.CONSTANT_NameAndType: return new ConstantNameAndType(file);
case Constants.CONSTANT_Utf8: return new ConstantUtf8(file);
default:
- throw new ClassFormatError("Invalid byte tag in constant pool: " + b);
+ throw new ClassFormatException("Invalid byte tag in constant pool: " + b);
}
}
}
1.4 +12 -12 jakarta-bcel/src/java/org/apache/bcel/classfile/ConstantPool.java
Index: ConstantPool.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/ConstantPool.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ConstantPool.java 11 Mar 2002 16:16:35 -0000 1.3
+++ ConstantPool.java 24 Apr 2002 11:01:30 -0000 1.4
@@ -66,7 +66,7 @@
* programatically should see <a href="../generic/ConstantPoolGen.html">
* ConstantPoolGen</a>.
- * @version $Id: ConstantPool.java,v 1.3 2002/03/11 16:16:35 mdahm Exp $
+ * @version $Id: ConstantPool.java,v 1.4 2002/04/24 11:01:30 mdahm Exp $
* @see Constant
* @see org.apache.bcel.generic.ConstantPoolGen
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
@@ -88,9 +88,9 @@
*
* @param file Input stream
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
- ConstantPool(DataInputStream file) throws IOException, ClassFormatError
+ ConstantPool(DataInputStream file) throws IOException, ClassFormatException
{
byte tag;
@@ -134,7 +134,7 @@
* @return String representation
*/
public String constantToString(Constant c)
- throws ClassFormatError
+ throws ClassFormatException
{
String str;
int i;
@@ -210,7 +210,7 @@
* @return String representation
*/
public String constantToString(int index, byte tag)
- throws ClassFormatError
+ throws ClassFormatException
{
Constant c = getConstant(index, tag);
return constantToString(c);
@@ -240,7 +240,7 @@
*/
public Constant getConstant(int index) {
if (index >= constant_pool.length || index < 0)
- throw new ClassFormatError("Invalid constant pool reference: " +
+ throw new ClassFormatException("Invalid constant pool reference: " +
index + ". Constant pool size is: " +
constant_pool.length);
return constant_pool[index];
@@ -254,22 +254,22 @@
* @param tag Tag of expected constant, i.e., its type
* @return Constant value
* @see Constant
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public Constant getConstant(int index, byte tag)
- throws ClassFormatError
+ throws ClassFormatException
{
Constant c;
c = getConstant(index);
if(c == null)
- throw new ClassFormatError("Constant pool at index " + index + " is null.");
+ throw new ClassFormatException("Constant pool at index " + index + " is null.");
if(c.getTag() == tag)
return c;
else
- throw new ClassFormatError("Expected class `" + Constants.CONSTANT_NAMES[tag] +
+ throw new ClassFormatException("Expected class `" + Constants.CONSTANT_NAMES[tag] +
"' at index " + index + " and got " + c);
}
@@ -289,10 +289,10 @@
* @return Contents of string reference
* @see ConstantClass
* @see ConstantString
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public String getConstantString(int index, byte tag)
- throws ClassFormatError
+ throws ClassFormatException
{
Constant c;
int i;
1.4 +5 -4 jakarta-bcel/src/java/org/apache/bcel/classfile/ConstantValue.java
Index: ConstantValue.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/ConstantValue.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ConstantValue.java 11 Mar 2002 17:19:49 -0000 1.3
+++ ConstantValue.java 24 Apr 2002 11:01:30 -0000 1.4
@@ -62,7 +62,7 @@
* value, i.e., a default value for initializing a class field.
* This class is instantiated by the <em>Attribute.readAttribute()</em> method.
*
- * @version $Id: ConstantValue.java,v 1.3 2002/03/11 17:19:49 mdahm Exp $
+ * @version $Id: ConstantValue.java,v 1.4 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
* @see Attribute
*/
@@ -142,8 +142,7 @@
/**
* @return String representation of constant value.
*/
- public final String toString() throws InternalError
- {
+ public final String toString() {
Constant c = constant_pool.getConstant(constantvalue_index);
String buf;
@@ -160,7 +159,9 @@
c = constant_pool.getConstant(i, Constants.CONSTANT_Utf8);
buf = "\"" + Utility.convertString(((ConstantUtf8)c).getBytes()) + "\"";
break;
- default: throw new InternalError("Type of ConstValue invalid: " + c);
+
+ default:
+ throw new IllegalStateException("Type of ConstValue invalid: " + c);
}
return buf;
1.2 +2 -2 jakarta-bcel/src/java/org/apache/bcel/classfile/Field.java
Index: Field.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/Field.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Field.java 29 Oct 2001 20:00:01 -0000 1.1
+++ Field.java 24 Apr 2002 11:01:30 -0000 1.2
@@ -60,7 +60,7 @@
* This class represents the field info structure, i.e., the representation
* for a variable in the class. See JVM specification for details.
*
- * @version $Id: Field.java,v 1.1 2001/10/29 20:00:01 jvanzyl Exp $
+ * @version $Id: Field.java,v 1.2 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public final class Field extends FieldOrMethod {
@@ -77,7 +77,7 @@
* @param file Input stream
*/
Field(DataInputStream file, ConstantPool constant_pool)
- throws IOException, ClassFormatError
+ throws IOException, ClassFormatException
{
super(file, constant_pool);
}
1.3 +3 -3 jakarta-bcel/src/java/org/apache/bcel/classfile/FieldOrMethod.java
Index: FieldOrMethod.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/FieldOrMethod.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FieldOrMethod.java 11 Mar 2002 16:16:35 -0000 1.2
+++ FieldOrMethod.java 24 Apr 2002 11:01:30 -0000 1.3
@@ -59,7 +59,7 @@
/**
* Abstract super class for fields and methods.
*
- * @version $Id: FieldOrMethod.java,v 1.2 2002/03/11 16:16:35 mdahm Exp $
+ * @version $Id: FieldOrMethod.java,v 1.3 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public abstract class FieldOrMethod extends AccessFlags implements Cloneable, Node {
@@ -84,10 +84,10 @@
* Construct object from file stream.
* @param file Input stream
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
protected FieldOrMethod(DataInputStream file, ConstantPool constant_pool)
- throws IOException, ClassFormatError
+ throws IOException, ClassFormatException
{
this(file.readUnsignedShort(), file.readUnsignedShort(),
file.readUnsignedShort(), null, constant_pool);
1.3 +3 -3 jakarta-bcel/src/java/org/apache/bcel/classfile/Method.java
Index: Method.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/Method.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Method.java 11 Mar 2002 16:16:35 -0000 1.2
+++ Method.java 24 Apr 2002 11:01:30 -0000 1.3
@@ -61,7 +61,7 @@
* for a method in the class. See JVM specification for details.
* A method has access flags, a name, a signature and a number of attributes.
*
- * @version $Id: Method.java,v 1.2 2002/03/11 16:16:35 mdahm Exp $
+ * @version $Id: Method.java,v 1.3 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public final class Method extends FieldOrMethod {
@@ -83,10 +83,10 @@
* Construct object from file stream.
* @param file Input stream
* @throws IOException
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
Method(DataInputStream file, ConstantPool constant_pool)
- throws IOException, ClassFormatError
+ throws IOException, ClassFormatException
{
super(file, constant_pool);
}
1.5 +31 -31 jakarta-bcel/src/java/org/apache/bcel/classfile/Utility.java
Index: Utility.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/classfile/Utility.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Utility.java 5 Apr 2002 08:59:39 -0000 1.4
+++ Utility.java 24 Apr 2002 11:01:30 -0000 1.5
@@ -63,7 +63,7 @@
/**
* Utility functions that do not really belong to any class in particular.
*
- * @version $Id: Utility.java,v 1.4 2002/04/05 08:59:39 mdahm Exp $
+ * @version $Id: Utility.java,v 1.5 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public abstract class Utility {
@@ -169,7 +169,7 @@
} catch(IOException e) {
System.out.println(buf.toString());
e.printStackTrace();
- throw new ClassFormatError("Byte code error: " + e);
+ throw new ClassFormatException("Byte code error: " + e);
}
return buf.toString();
@@ -536,7 +536,7 @@
* @return Byte code representation of method signature
*/
public final static String methodTypeToSignature(String ret, String[] argv)
- throws ClassFormatError
+ throws ClassFormatException
{
StringBuffer buf = new StringBuffer("(");
String str;
@@ -546,7 +546,7 @@
str = getSignature(argv[i]);
if(str.endsWith("V")) // void can't be a method argument
- throw new ClassFormatError("Invalid type: " + argv[i]);
+ throw new ClassFormatException("Invalid type: " + argv[i]);
buf.append(str);
}
@@ -561,10 +561,10 @@
/**
* @param signature Method signature
* @return Array of argument types
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public static final String[] methodSignatureArgumentTypes(String signature)
- throws ClassFormatError
+ throws ClassFormatException
{
return methodSignatureArgumentTypes(signature, true);
}
@@ -573,11 +573,11 @@
* @param signature Method signature
* @param chopit Shorten class names ?
* @return Array of argument types
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public static final String[] methodSignatureArgumentTypes(String signature,
boolean chopit)
- throws ClassFormatError
+ throws ClassFormatException
{
ArrayList vec = new ArrayList();
int index;
@@ -585,7 +585,7 @@
try { // Read all declarations between for `(' and `)'
if(signature.charAt(0) != '(')
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
index = 1; // current string position
@@ -594,7 +594,7 @@
index += consumed_chars; // update position
}
} catch(StringIndexOutOfBoundsException e) { // Should never occur
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
types = new String[vec.size()];
@@ -604,10 +604,10 @@
/**
* @param signature Method signature
* @return return type of method
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public static final String methodSignatureReturnType(String signature)
- throws ClassFormatError
+ throws ClassFormatException
{
return methodSignatureReturnType(signature, true);
}
@@ -615,11 +615,11 @@
* @param signature Method signature
* @param chopit Shorten class names ?
* @return return type of method
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public static final String methodSignatureReturnType(String signature,
boolean chopit)
- throws ClassFormatError
+ throws ClassFormatException
{
int index;
String type;
@@ -629,7 +629,7 @@
index = signature.lastIndexOf(')') + 1;
type = signatureToString(signature.substring(index), chopit);
} catch(StringIndexOutOfBoundsException e) { // Should never occur
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
return type;
@@ -674,21 +674,21 @@
* <arguments_signature>::= <argument_signature>*
*
* This method converts such a string into a Java type declaration like
- * `void main(String[])' and throws a `ClassFormatError' when the parsed
+ * `void main(String[])' and throws a `ClassFormatException' when the parsed
* type is invalid.
*
* @param signature Method signature
* @param name Method name
* @param access Method access rights
* @return Java type declaration
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public static final String methodSignatureToString(String signature,
String name,
String access,
boolean chopit,
LocalVariableTable vars)
- throws ClassFormatError
+ throws ClassFormatException
{
StringBuffer buf = new StringBuffer("(");
String type;
@@ -697,7 +697,7 @@
try { // Read all declarations between for `(' and `)'
if(signature.charAt(0) != '(')
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
index = 1; // current string position
@@ -728,7 +728,7 @@
type = signatureToString(signature.substring(index), chopit);
} catch(StringIndexOutOfBoundsException e) { // Should never occur
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
if(buf.length() > 1) // Tack off the extra ", "
@@ -815,13 +815,13 @@
* </PRE>
*
* This method converts this string into a Java type declaration such as
- * `String[]' and throws a `ClassFormatError' when the parsed type is
+ * `String[]' and throws a `ClassFormatException' when the parsed type is
* invalid.
*
* @param signature Class signature
* @param chopit Flag that determines whether chopping is executed or not
* @return Java type declaration
- * @throws ClassFormatError
+ * @throws ClassFormatException
*/
public static final String signatureToString(String signature,
boolean chopit)
@@ -841,7 +841,7 @@
int index = signature.indexOf(';'); // Look for closing `;'
if(index < 0)
- throw new ClassFormatError("Invalid signature: " + signature);
+ throw new ClassFormatException("Invalid signature: " + signature);
consumed_chars = index + 1; // "Lblabla;" `L' and `;' are removed
@@ -875,11 +875,11 @@
case 'V' : return "void";
- default : throw new ClassFormatError("Invalid signature: `" +
+ default : throw new ClassFormatException("Invalid signature: `" +
signature + "'");
}
} catch(StringIndexOutOfBoundsException e) { // Should never occur
- throw new ClassFormatError("Invalid signature: " + e + ":" + signature);
+ throw new ClassFormatException("Invalid signature: " + e + ":" + signature);
}
}
@@ -982,18 +982,18 @@
* @see Constants
*/
public static final byte typeOfMethodSignature(String signature)
- throws ClassFormatError
+ throws ClassFormatException
{
int index;
try {
if(signature.charAt(0) != '(')
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
index = signature.lastIndexOf(')') + 1;
return typeOfSignature(signature.substring(index));
} catch(StringIndexOutOfBoundsException e) {
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
}
@@ -1005,7 +1005,7 @@
* @see Constants
*/
public static final byte typeOfSignature(String signature)
- throws ClassFormatError
+ throws ClassFormatException
{
try {
switch(signature.charAt(0)) {
@@ -1021,10 +1021,10 @@
case 'Z' : return Constants.T_BOOLEAN;
case 'S' : return Constants.T_SHORT;
default:
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
} catch(StringIndexOutOfBoundsException e) {
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
}
1.1 jakarta-bcel/src/java/org/apache/bcel/classfile/ClassFormatException.java
Index: ClassFormatException.java
===================================================================
package org.apache.bcel.classfile;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 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 acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache BCEL" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache BCEL", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* 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/>.
*/
/**
* Thrown when the BCEL attempts to read a class file and determines
* that the file is malformed or otherwise cannot be interpreted as a
* class file.
*
* @version $Id: ClassFormatException.java,v 1.1 2002/04/24 11:01:30 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public class ClassFormatException extends RuntimeException {
public ClassFormatException() { super(); }
public ClassFormatException(String s) { super(s); }
}
1.2 +5 -5 jakarta-bcel/src/java/org/apache/bcel/generic/Type.java
Index: Type.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/generic/Type.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Type.java 29 Oct 2001 20:00:28 -0000 1.1
+++ Type.java 24 Apr 2002 11:01:31 -0000 1.2
@@ -63,7 +63,7 @@
* Abstract super class for all possible java types, namely basic types
* such as int, object types like String and array types, e.g. int[]
*
- * @version $Id: Type.java,v 1.1 2001/10/29 20:00:28 jvanzyl Exp $
+ * @version $Id: Type.java,v 1.2 2002/04/24 11:01:31 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public abstract class Type {
@@ -177,7 +177,7 @@
int index = signature.indexOf(';'); // Look for closing `;'
if(index < 0)
- throw new ClassFormatError("Invalid signature: " + signature);
+ throw new ClassFormatException("Invalid signature: " + signature);
consumed_chars = index + 1; // "Lblabla;" `L' and `;' are removed
@@ -197,7 +197,7 @@
int index = signature.lastIndexOf(')') + 1;
return getType(signature.substring(index));
} catch(StringIndexOutOfBoundsException e) { // Should never occur
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
}
@@ -213,7 +213,7 @@
try { // Read all declarations between for `(' and `)'
if(signature.charAt(0) != '(')
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
index = 1; // current string position
@@ -222,7 +222,7 @@
index += consumed_chars; // update position
}
} catch(StringIndexOutOfBoundsException e) { // Should never occur
- throw new ClassFormatError("Invalid method signature: " + signature);
+ throw new ClassFormatException("Invalid method signature: " + signature);
}
types = new Type[vec.size()];
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>