[
https://issues.apache.org/jira/browse/BCEL-183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14249863#comment-14249863
]
Emmanuel Bourg commented on BCEL-183:
-------------------------------------
I'm still reviewing the changes, why was the removal of this chunk necessary?
{code}
// Class and interface initialization methods...
if (name.equals(STATIC_INITIALIZER_NAME)){
if ((obj.getAccessFlags() & (~ACC_STRICT)) > 0){
addMessage("Class or interface initialization method
'"+tostring(obj)+"' has superfluous access modifier(s) set: everything but
ACC_STRICT is ignored.");
}
if (obj.isAbstract()){
throw new ClassConstraintException("Class or interface initialization
method '"+tostring(obj)+"' must not be abstract. This contradicts the Java
Language Specification, Second Edition (which omits this constraint) but is
common practice of existing verifiers.");
}
}
{code}
The block above related to the constructor was moved in the {{if
(jc.isClass())}} block which seems more correct, but I don't understand why
this one was removed.
> Implement Java 7 field/method name validation rules
> ---------------------------------------------------
>
> Key: BCEL-183
> URL: https://issues.apache.org/jira/browse/BCEL-183
> Project: Commons BCEL
> Issue Type: Improvement
> Components: Verifier
> Affects Versions: 5.2
> Reporter: Jérôme Leroux
> Fix For: 6.0
>
> Attachments: BCEL-183-2.patch, BCEL-183-2.zip, BCEL-183-src.zip,
> BCEL-183.patch, BCEL-183.zip
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> The JustIce bytecode verifier checks the validity of the field name and the
> variable name considering the java langage specification.
> This check is not specified by the bytecode verifier specification.
> This may lead to bytecode verification errors in pass2 on valid classfiles.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)