Apache Commons logo Commons BCEL

Tag List Report

The following document contains the listing of user tags found in the code. Below is the summary of the occurrences per tag.

Tag Class Total number of occurrences Tag strings used by tag class
NOPMD 0 NOPMD
NOTE 2 NOTE
TODO 172 TODO

Each tag is detailed below:

NOTE

Number of occurrences found in the code: 2

org.apache.bcel.generic.InstructionConst Line
these are not currently immutable, because Instruction has mutable protected fields opcode and length. 43
org.apache.bcel.generic.InstructionConstants Line
these are not currently immutable, because Instruction has mutable protected fields opcode and length. 44

TODO

Number of occurrences found in the code: 172

org.apache.bcel.Constants Line
mutable public array!! 1668
org.apache.bcel.classfile.AccessFlags Line
not used externally at present 32
org.apache.bcel.classfile.AnnotationEntry Line
return List 119
org.apache.bcel.classfile.Attribute Line
make private (has getter & setter) 253
org.apache.bcel.classfile.BootstrapMethod Line
should this throw? 165
org.apache.bcel.classfile.BootstrapMethods Line
this could be made final (setter is not used) 35
org.apache.bcel.classfile.Code Line
this could be made final (setter is not used) 45
this could be made final (setter is not used) 46
org.apache.bcel.classfile.CodeException Line
unused 163
unused 171
should this throw? 213
org.apache.bcel.classfile.Constant Line
should be private & final 64
should this throw? 105
org.apache.bcel.classfile.ConstantCP Line
make private (has getter & setter) This field has the same meaning for all subclasses. 45
make private (has getter & setter) 52
org.apache.bcel.classfile.ConstantPool Line
should this throw? 372
org.apache.bcel.classfile.ConstantPoolTestCase Line
Need real assertions. System.out.println(string); 42
org.apache.bcel.classfile.ConstantUtf8 Line
these should perhaps be AtomicInt? 85
org.apache.bcel.classfile.ElementValue Line
should be final 33
should be final 39
isRuntimeVisible 99
org.apache.bcel.classfile.InnerClass Line
unused 154
unused 162
should this throw? 212
org.apache.bcel.classfile.InnerClasses Line
this could be recoded to use a lower level constructor after creating a copy of the inner classes 147
org.apache.bcel.classfile.JavaClass Line
should this throw? 682
make protected? 762
org.apache.bcel.classfile.LineNumber Line
should this throw? 143
org.apache.bcel.classfile.LineNumberTable Line
could use the lower level constructor and thereby allow line_number_table to be made final 200
org.apache.bcel.classfile.LocalVariable Line
unused 254
unused 262
unused 270
unused 278
should this throw? 299
org.apache.bcel.classfile.MethodParameter Line
should this throw? 116
org.apache.bcel.classfile.Module Line
add more getters and setters? 105
org.apache.bcel.classfile.ModuleExports Line
add more getters and setters? 70
should this throw? 121
org.apache.bcel.classfile.ModuleOpens Line
add more getters and setters? 70
should this throw? 121
org.apache.bcel.classfile.ModuleProvides Line
add more getters and setters? 68
should this throw? 117
org.apache.bcel.classfile.ModuleRequires Line
add more getters and setters? 65
should this throw? 110
org.apache.bcel.classfile.ParameterAnnotationEntry Line
isRuntimeVisible 47
org.apache.bcel.classfile.StackMapEntry Line
unused 342
unused 366
org.apache.bcel.classfile.StackMapType Line
should this throw? 146
org.apache.bcel.generic.BranchHandle Line
could be package-protected? 103
org.apache.bcel.generic.CPInstruction Line
could be package-protected? 130
org.apache.bcel.generic.ClassGen Line
Sometime later, trash any attributes called 'RuntimeVisibleAnnotations' or 'RuntimeInvisibleAnnotations' 208
could be package-protected - only called by test code 250
could be package-protected - only called by test code 258
org.apache.bcel.generic.CodeExceptionGen Line
could be package-protected? 80
could be package-protected? 89
could be package-protected? 98
org.apache.bcel.generic.ConstantPoolGen Line
should this be handled somehow? 193
should this be handled somehow? 195
should this be handled somehow? 197
should this be handled somehow? 199
org.apache.bcel.generic.ElementValueGen Line
isRuntimeVisible ?????????? FIXME 134
org.apache.bcel.generic.FieldAnnotationsTestCase Line
L...;? 39
org.apache.bcel.generic.FieldGenOrMethodGen Line
could this be package protected? 65
could be package-protected? 70
could be package-protected? 93
could be package-protected? 103
could this be package protected? 123
could this be package protected? 139
could this be package protected? 155
org.apache.bcel.generic.GeneratingAnnotatedClassesTestCase Line
L??; 90
org.apache.bcel.generic.Instruction Line
check range? 530
org.apache.bcel.generic.InstructionHandle Line
remove this method in any redesign of BCEL 113
org.apache.bcel.generic.InstructionList Line
could be package-protected? (some test code would need to be repackaged) 843
org.apache.bcel.generic.LDC Line
useless check? 67
org.apache.bcel.generic.LineNumberGen Line
could be package-protected? 79
could be package-protected? 103
org.apache.bcel.generic.LocalVariableGen Line
could be package-protected? 176
could be package-protected? 182
org.apache.bcel.generic.LocalVariableInstruction Line
Why? 161
could be package-protected? 165
org.apache.bcel.generic.MethodGen Line
could be package-protected? 791
could be package-protected? 808
could be package-protected? 868
could be package-protected? (some tests would need repackaging) 882
could be package-protected? (some tests would need repackaging) 894
org.apache.bcel.generic.ReferenceType Line
Check if this is still valid or find a way to dynamically find out which interfaces arrays implement. However, as of the JVM specification edition 2, there are at least two different pages where assignment compatibility is defined and on one of them "interfaces implemented by arrays" is exchanged with "'Cloneable' or 'java.io.Serializable'" 157
Above sounds a little arbitrary. On the other hand, there is no object referenced by Type.NULL so we can also say all the objects referenced by Type.NULL were derived from java.lang.Object. However, the Java Language's "instanceof" operator proves us wrong: "null" is not referring to an instance of java.lang.Object :) 202
Is there a proof of OBJECT being the direct ancestor of every ArrayType? 223
The above line is correct comparing to the vmspec2. But one could make class file verification a bit stronger here by using the notion of superinterfaces or even castability or assignment compatibility. 228
Above sounds a little arbitrary. On the other hand, there is no object referenced by Type.NULL so we can also say all the objects referenced by Type.NULL were derived from java.lang.Object. However, the Java Language's "instanceof" operator proves us wrong: "null" is not referring to an instance of java.lang.Object :) 286
Is there a proof of OBJECT being the direct ancestor of every ArrayType? 295
The above line is correct comparing to the vmspec2. But one could make class file verification a bit stronger here by using the notion of superinterfaces or even castability or assignment compatibility. 300
org.apache.bcel.generic.Select Line
could be package-protected? 187
org.apache.bcel.generic.Type Line
should be final (and private) 38
org.apache.bcel.util.BCELifierTestCase Line
detect if JDK present and skip test if not 86
org.apache.bcel.util.ClassQueue Line
not used externally 35
org.apache.bcel.verifier.statics.Pass1Verifier Line
Maybe change Repository's behavior to throw a LoadingException instead of just returning "null" if a class file cannot be found or in another way be looked up. 178
org.apache.bcel.verifier.statics.Pass2Verifier Line
rework it. 1035
implement. Are there any restrictions? 1418
org.apache.bcel.verifier.statics.Pass3aVerifier Line
--No comment-- 178
Make this a binary search! The instructionPositions array is naturally ordered! 250
Check how BCEL handles (and will handle) instructions like IMPDEP1, IMPDEP2, BREAKPOINT... that BCEL knows about but which are illegal anyway. We currently go the safe way here. 360
see the do_verify() comments. Maybe we should really work on the byte array first to give more comprehensive messages. 411
Review Exception API, possibly build in some "offending instruction" thing when we're ready to insulate the offending instruction by doing the above thing. 413
Implement as much as possible here. BCEL does _not_ check everything. 417
Check if assignment compatibility is sufficient. What does Sun do? 605
Check if assignment compatibility is sufficient. 638
Check for access modifiers here. 652
From time to time check if BCEL allows to detect if the 'count' operand is consistent with the information in the CONSTANT_InterfaceMethodref and if the last operand is zero. By now, BCEL hides those two operands because they're superfluous. 690
org.apache.bcel.verifier.structurals.ControlFlowGraph Line
Put information in the brackets, e.g. Is this an ExceptionHandler? Is this a RET? Is this the start of a subroutine? 229
Can be performance-improved. 241
implement caching! 327
remove. Only JustIce must not use it, but foreign users of the ControlFlowGraph will want it. Thanks Johannes Wust. throw new AssertionViolatedException("DID YOU REALLY WANT TO ASK FOR RET'S SUCCS?"); 341
org.apache.bcel.verifier.structurals.ExecutionVisitor Line
could be package-protected? 98
could be package-protected? 108
One could use a sophisticated analysis here to check if a type cannot possibly be cated to another and by so doing predict the ClassCastException at run-time. 231
org.apache.bcel.verifier.structurals.InstConstraintVisitor Line
Currently, the JVM's behavior concerning monitors (MONITORENTER, MONITOREXIT) is not modeled in JustIce. 48
could be package-protected? 124
could be package-protected? 134
--No comment-- 310
This can only be checked if using Staerk-et-al's "set of object types" instead of a "wider cast object type" created during verification. if (! (objectref.isAssignmentCompatibleWith(mg.getType())) ) { constraintViolated(o, "Type on stack top which should be returned is a '"+stack().peek()+ "' which is not assignment compatible with the return type of this method, '"+mg.getType()+"'."); } 439
Check if assignment compatibility is sufficient. What does Sun do? 1281
One day move to Staerk-et-al's "Set of object types" instead of "wider" object types created during the verification. "Wider" object types don't allow us to check for things like that below. constraintViolated(o, "The referenced field has the ACC_PROTECTED modifier, "+ "and it's a member of the current class or a superclass of the current class."+ " However, the referenced object type '"+stack().peek()+ "' is not the current class or a subclass of the current class."); 1331
Could go into Pass 3a. 1342
Do we want to do anything with it? ConstantInterfaceMethodref cimr = (ConstantInterfaceMethodref) (cpg.getConstant(o.getIndex())); 1820
This can only be checked when using Staerk-et-al's "set of object types" instead of a "wider cast object type" created during verification. if ( ! rFromStack.isAssignmentCompatibleWith(rFromDesc) ) { constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+ "' on the stack (which is not assignment compatible)."); } 1852
This can only be checked if we're using Staerk-et-al's "set of object types" instead of "wider cast object types" generated during verification. if ( ! Repository.implementationOf(objref_classname, theInterface) ) { constraintViolated(o, "The 'objref' item '"+objref+"' does not implement '"+theInterface+"' as expected."); } 1885
This can only be checked using Staerk-et-al's "set of object types", not using a "wider cast object type". 1944
This check can possibly only be done using Staerk-et-al's "set of object types" instead of a "wider cast object type" created during verification. 2033
This can possibly only be checked when using Staerk-et-al's "set of object types" instead of a single "wider cast object type" created during verification. 2087
Check if assignment compatibility is sufficient. What does Sun do? 2719
This can possibly only be checked using Staerk-et-al's "set-of-object types", not using "wider cast object types" created during verification. Comment it out if you encounter problems. See also the analogon at visitPUTSTATIC. 2750
Could go into Pass 3a. 2787
Check if assignment compatibility is sufficient. What does Sun do? 2812
This can possibly only be checked using Staerk-et-al's "set-of-object types", not using "wider cast object types" created during verification. Comment it out if you encounter problems. See also the analogon at visitPUTFIELD. 2842
Interface fields may be assigned to only once. (Hard to implement in JustIce's execution model). This may only happen in <clinit>, see Pass 3a. 2854
org.apache.bcel.verifier.structurals.LocalVariables Line
could be package-protected? 96
--No comment-- 188
org.apache.bcel.verifier.structurals.Pass3bVerifier Line
Throughout pass 3b, upper halves of LONG and DOUBLE 60
the "oldchain" and "newchain" is used to determine the subroutine we're in (by searching for the last JSR) by the InstructionContext implementation. Therefore, we should not use this chain mechanism when dealing with exception handlers. Example: a JSR with an exception handler as its successor does not mean we're in a subroutine if we go to the exception handler. We should address this problem later; by now we simply "cut" the chain by using an empty chain for the exception handlers. if (v.execute(new Frame(u.getOutFrame(oldchain).getLocals(), new OperandStack (u.getOutFrame().getStack().maxStack(), (exc_hds[s].getExceptionType()==null? Type.THROWABLE : exc_hds[s].getExceptionType())) ), newchain), icv, ev) { icq.add(v, (ArrayList) newchain.clone()); 224
This is buggy, we check only the top-level return instructions this way. Maybe some maniac returns from a method when in a subroutine? 250
org.apache.bcel.verifier.structurals.Subroutines Line
refer to the paper. 62
Implement caching. 271
can this be made private? CHECKSTYLE:ON 372
Refer to the special JustIce notion of subroutines.] 457
org.apache.bcel.verifier.tests.TestArrayAccess02Creator Line
why is this not used 62
why is this not used 65
why is this not used 78
why is this not used 82
why is this not used 86
why is this not used 93
org.apache.bcel.verifier.tests.TestArrayAccess03Creator Line
why is this not used 62
why is this not used 65
why is this not used 78
why is this not used 82
why is this not used 89
org.apache.bcel.verifier.tests.TestArrayAccess04Creator Line
why is this not used 62
why is this not used 65
why is this not used 78
why is this not used 82
why is this not used 85
why is this not used 90
org.apache.bcel.verifier.tests.TestReturn01Creator Line
why is this not used 60
why is this not used 63
why is this not used 76
why is this not used 81
org.apache.bcel.verifier.tests.TestReturn03Creator Line
why is this not used 60
why is this not used 63
why is this not used 76
org.apache.bcel.visitors.CounterVisitor Line
Auto-generated method stub 468
Auto-generated method stub 474
Auto-generated method stub 480