[jboss-jira] [JBoss JIRA] (JASSIST-152) instrumentation fails when building stackmap for local var of array type : bad array type for AALOAD: null
Yanic Inghelbrecht (JIRA)
jira-events at lists.jboss.org
Thu Feb 9 08:26:48 EST 2012
[ https://issues.jboss.org/browse/JASSIST-152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665337#comment-12665337 ]
Yanic Inghelbrecht commented on JASSIST-152:
--------------------------------------------
For your convenience, here's the code for the method for which the instrumentation fails :
private static Map<String, Column[]> buildColumnOverride(XAnnotatedElement element, String path) {
Map<String, Column[]> columnOverride = new HashMap<String, Column[]>();
if ( element == null ) return columnOverride;
AttributeOverride singleOverride = element.getAnnotation( AttributeOverride.class );
AttributeOverrides multipleOverrides = element.getAnnotation( AttributeOverrides.class );
AttributeOverride[] overrides;
if ( singleOverride != null ) {
overrides = new AttributeOverride[] { singleOverride };
}
else if ( multipleOverrides != null ) {
overrides = multipleOverrides.value();
}
else {
overrides = null;
}
//fill overridden columns
if ( overrides != null ) {
for (AttributeOverride depAttr : overrides) {
columnOverride.put(
StringHelper.qualify( path, depAttr.name() ),
new Column[] { depAttr.column() }
);
}
}
return columnOverride;
}
(LGPL licensed, taken from the hibernate 4.0.1 final distribution)
> instrumentation fails when building stackmap for local var of array type : bad array type for AALOAD: null
> ----------------------------------------------------------------------------------------------------------
>
> Key: JASSIST-152
> URL: https://issues.jboss.org/browse/JASSIST-152
> Project: Javassist
> Issue Type: Bug
> Affects Versions: 3.15.0-GA
> Environment: Any
> Reporter: Yanic Inghelbrecht
> Assignee: Shigeru Chiba
> Attachments: demonstration.zip
>
>
> When trying to instrument the attached org.hibernate.cfg.AbstractPropertyHolder (copied from the hibernate 4.0.1 final distribution), instrumentation fails with the following exception :
> java.lang.RuntimeException: fatal error:
> at javassist.bytecode.stackmap.TypeData$TypeName.getTypeData(TypeData.java:177)
> at javassist.bytecode.stackmap.MapMaker.fillStackMap(MapMaker.java:410)
> at javassist.bytecode.stackmap.MapMaker.toStackMapBody(MapMaker.java:393)
> at javassist.bytecode.stackmap.MapMaker.toStackMap(MapMaker.java:323)
> at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:98)
> at javassist.bytecode.MethodInfo.rebuildStackMap(MethodInfo.java:417)
> at javassist.bytecode.MethodInfo.rebuildStackMapIf6(MethodInfo.java:399)
> at javassist.expr.ExprEditor.doit(ExprEditor.java:113)
> at javassist.CtBehavior.instrument(CtBehavior.java:672)
> at test_abstractpropertyholder.SimpleTranslator.modify(SimpleTranslator.java:25)
> at test_abstractpropertyholder.SimpleTranslator.onLoad(SimpleTranslator.java:19)
> at test_abstractpropertyholder.JavassistInstrumenter.getInstrumentedClass(JavassistInstrumenter.java:21)
> at test_abstractpropertyholder.Main.main(Main.java:32)transforming org.hibernate.cfg.AbstractPropertyHolder
> Caused by: javassist.bytecode.BadBytecode: bad array type for AALOAD: null
> at javassist.bytecode.stackmap.TypeData$ArrayElement.getName(TypeData.java:422)
> at javassist.bytecode.stackmap.TypeData$TypeName.getExpected(TypeData.java:292)
> at javassist.bytecode.stackmap.TypeData$TypeName.getTypeData(TypeData.java:175)
> ... 12 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list