[jboss-jira] [JBoss JIRA] Created: (JBAOP-531) Array replacement bytecode triggers VerifyError

Jason T. Greene (JIRA) jira-events at lists.jboss.org
Tue Feb 26 23:27:42 EST 2008


Array replacement bytecode triggers VerifyError
-----------------------------------------------

                 Key: JBAOP-531
                 URL: http://jira.jboss.com/jira/browse/JBAOP-531
             Project: JBoss AOP
          Issue Type: Bug
      Security Level: Public (Everyone can see)
            Reporter: Jason T. Greene
             Fix For: 2.0.0.GA


This is technically a javassist issue, however, I thought I would create this as a containing issue in AOP.

When array replacement is performed on a typed object array, bad bytecode is generated which triggers a VerifyError when loaded.

Example:
public Person getPerson(int index)
{
      return team[index];
}

The problem is that the bytecode generated from javassist.convert.TransformAccessArrayField for reads always uses an untyped return type,  which is invalid if the result of the operation is returned, passed, or accessed as a typed value, as seen below:

   14:  invokestatic    #108; //Method org/jboss/aop/array/ArrayAdvisor.arrayReadObject:(Ljava/lang/Object;I)Ljava/lang/Object;
   17:  areturn

This should probably be fixed by adding a checkcast using the component type after the invokestatic.  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list