From: aclement Date: Mon, 18 Jul 2011 20:44:33 +0000 (+0000) Subject: 352389: fix X-Git-Tag: V1_6_12M2~56 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8553b30c9211a49b225e6c6bc81abda849263740;p=aspectj.git 352389: fix --- diff --git a/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java b/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java index 784e1c3f5..fcebfc2a5 100644 --- a/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java +++ b/weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java @@ -53,6 +53,7 @@ import org.aspectj.bridge.IMessage; import org.aspectj.bridge.ISourceLocation; import org.aspectj.bridge.SourceLocation; import org.aspectj.weaver.AjAttribute; +import org.aspectj.weaver.AjAttribute.WeaverState; import org.aspectj.weaver.AjAttribute.WeaverVersionInfo; import org.aspectj.weaver.BCException; import org.aspectj.weaver.Member; @@ -459,8 +460,11 @@ public final class LazyClassGen { myGen.addAttribute(Utility.bcelAttribute(new AjAttribute.WeaverVersionInfo(), getConstantPool())); } - if (myType != null && myType.getWeaverState() != null) { - myGen.addAttribute(Utility.bcelAttribute(new AjAttribute.WeaverState(myType.getWeaverState()), getConstantPool())); + // 352389: don't add another one (there will already be one there and this new one won't deserialize correctly) + if (!world.isOverWeaving() || !myGen.hasAttribute(WeaverState.AttributeName)) { + if (myType != null && myType.getWeaverState() != null) { + myGen.addAttribute(Utility.bcelAttribute(new AjAttribute.WeaverState(myType.getWeaverState()), getConstantPool())); + } } // FIXME ATAJ needed only for slow Aspects.aspectOf() - keep or remove