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

Jason T. Greene (JIRA) jira-events at lists.jboss.org
Mon Mar 3 12:19:57 EST 2008


    [ http://jira.jboss.com/jira/browse/JBAOP-531?page=comments#action_12401125 ] 
            
Jason T. Greene commented on JBAOP-531:
---------------------------------------

Just an update. In order to determine the array type, we need to perform data-flow analysis on the method. This requires a significant/complex enhancement to javassist.

> 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