You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/11/22 14:40:49 UTC
[commons-bcel] 02/02: Fix exception message
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git
commit 7acacff738cff413e951da59cf8f4d1218b700a3
Author: Gary David Gregory (Code signing key) <gg...@apache.org>
AuthorDate: Tue Nov 22 09:40:43 2022 -0500
Fix exception message
Better internal name
Javadoc
---
.../org/apache/bcel/classfile/ElementValue.java | 45 ++++++++++++++++++++--
1 file changed, 41 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/apache/bcel/classfile/ElementValue.java b/src/main/java/org/apache/bcel/classfile/ElementValue.java
index 41a302c4..7bcd73bd 100644
--- a/src/main/java/org/apache/bcel/classfile/ElementValue.java
+++ b/src/main/java/org/apache/bcel/classfile/ElementValue.java
@@ -24,6 +24,28 @@ import java.io.IOException;
import org.apache.bcel.Const;
/**
+ * The element_value structure is documented at https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.7.16.1
+ *
+ * <pre>
+ * element_value {
+ * u1 tag;
+ * union {
+ * u2 const_value_index;
+ *
+ * { u2 type_name_index;
+ * u2 const_name_index;
+ * } enum_const_value;
+ *
+ * u2 class_info_index;
+ *
+ * annotation annotation_value;
+ *
+ * { u2 num_values;
+ * element_value values[num_values];
+ * } array_value;
+ * } value;
+ *}
+ *</pre>
* @since 6.0
*/
public abstract class ElementValue {
@@ -42,17 +64,32 @@ public abstract class ElementValue {
public static final byte PRIMITIVE_SHORT = 'S';
public static final byte PRIMITIVE_BOOLEAN = 'Z';
+ /**
+ * Reads an {@code element_value} as an {@code ElementValue}.
+ *
+ * @param input Raw data input.
+ * @param cpool Constant pool.
+ * @return a new ElementValue.
+ * @throws IOException if an I/O error occurs.
+ */
public static ElementValue readElementValue(final DataInput input, final ConstantPool cpool) throws IOException {
return readElementValue(input, cpool, 0);
}
/**
+ * Reads an {@code element_value} as an {@code ElementValue}.
+ *
+ * @param input Raw data input.
+ * @param cpool Constant pool.
+ * @param arrayNesting level of current array nesting.
+ * @return a new ElementValue.
+ * @throws IOException if an I/O error occurs.
* @since 6.7.0
*/
public static ElementValue readElementValue(final DataInput input, final ConstantPool cpool, int arrayNesting)
throws IOException {
- final byte type = input.readByte();
- switch (type) {
+ final byte tag = input.readByte();
+ switch (tag) {
case PRIMITIVE_BYTE:
case PRIMITIVE_CHAR:
case PRIMITIVE_DOUBLE:
@@ -62,7 +99,7 @@ public abstract class ElementValue {
case PRIMITIVE_SHORT:
case PRIMITIVE_BOOLEAN:
case STRING:
- return new SimpleElementValue(type, input.readUnsignedShort(), cpool);
+ return new SimpleElementValue(tag, input.readUnsignedShort(), cpool);
case ENUM_CONSTANT:
return new EnumElementValue(ENUM_CONSTANT, input.readUnsignedShort(), input.readUnsignedShort(), cpool);
@@ -88,7 +125,7 @@ public abstract class ElementValue {
return new ArrayElementValue(ARRAY, evalues, cpool);
default:
- throw new ClassFormatException("Unexpected element value kind in annotation: " + type);
+ throw new ClassFormatException("Unexpected element value tag in annotation: " + tag);
}
}