aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.matcher/src
diff options
context:
space:
mode:
authoraclement <aclement>2010-07-12 19:21:06 +0000
committeraclement <aclement>2010-07-12 19:21:06 +0000
commitb390592ea35dce3207ea6a4c85a240447284f539 (patch)
treee55dec8781b4e52e1a58b2f3094d265e207a547c /org.aspectj.matcher/src
parentfdbd12e319a0c18c40906780b372fa3cfb573fe4 (diff)
downloadaspectj-b390592ea35dce3207ea6a4c85a240447284f539.tar.gz
aspectj-b390592ea35dce3207ea6a4c85a240447284f539.zip
319431: test+fix: reweavable state names and signatures
Diffstat (limited to 'org.aspectj.matcher/src')
-rw-r--r--org.aspectj.matcher/src/org/aspectj/weaver/WeaverStateInfo.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/WeaverStateInfo.java b/org.aspectj.matcher/src/org/aspectj/weaver/WeaverStateInfo.java
index 0ce6c5c46..626927db5 100644
--- a/org.aspectj.matcher/src/org/aspectj/weaver/WeaverStateInfo.java
+++ b/org.aspectj.matcher/src/org/aspectj/weaver/WeaverStateInfo.java
@@ -27,6 +27,7 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.aspectj.bridge.IMessage;
+import org.aspectj.weaver.AjAttribute.WeaverVersionInfo;
/**
* WeaverStateInfo represents how a type was processed. It is used by the weaver to determine how a type was previously treated and
@@ -300,9 +301,14 @@ public class WeaverStateInfo {
str = s.readSignature();
} else {
str = s.readUTF();
- // StringBuilder sb = new StringBuilder();
- // sb.append("L").append(str.replace('.', '/')).append(";");
- // str = sb.toString();
+ // Prior to 1.6.9 we were writing out names (com.foo.Bar) rather than signatures (Lcom/foo/Bar;)
+ // From 1.6.9 onwards we write out signatures (pr319431)
+ if (s.getMajorVersion() < WeaverVersionInfo.WEAVER_VERSION_AJ169) {
+ // It is a name, make it a signature
+ StringBuilder sb = new StringBuilder();
+ sb.append("L").append(str.replace('.', '/')).append(";");
+ str = sb.toString();
+ }
}
wsi.addAspectAffectingType(str);
}