aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authorAndy Clement <andrew.clement@gmail.com>2013-03-13 08:23:55 -0700
committerAndy Clement <andrew.clement@gmail.com>2013-03-13 08:23:55 -0700
commit0660ad3b68a396993723b3e66b20bc467e6fa982 (patch)
tree551e1829a467201f63e22cd406267529c11f987b /weaver
parentbe5a53001fda264fc8fdebe7d2b64c20e748e51c (diff)
downloadaspectj-0660ad3b68a396993723b3e66b20bc467e6fa982.tar.gz
aspectj-0660ad3b68a396993723b3e66b20bc467e6fa982.zip
avoid potential multi threaded issues
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java b/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java
index 649a74b99..2286a06cf 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java
@@ -286,10 +286,11 @@ public class BcelObjectType extends AbstractReferenceTypeDelegate {
ensureGenericSignatureUnpacked();
if (methods == null) {
Method[] ms = javaClass.getMethods();
- methods = new ResolvedMember[ms.length];
+ ResolvedMember[] newMethods = new ResolvedMember[ms.length];
for (int i = ms.length - 1; i >= 0; i--) {
- methods[i] = new BcelMethod(this, ms[i]);
+ newMethods[i] = new BcelMethod(this, ms[i]);
}
+ methods = newMethods;
}
return methods;
}
@@ -298,10 +299,11 @@ public class BcelObjectType extends AbstractReferenceTypeDelegate {
ensureGenericSignatureUnpacked();
if (fields == null) {
Field[] fs = javaClass.getFields();
- fields = new ResolvedMember[fs.length];
+ ResolvedMember[] newfields = new ResolvedMember[fs.length];
for (int i = 0, len = fs.length; i < len; i++) {
- fields[i] = new BcelField(this, fs[i]);
+ newfields[i] = new BcelField(this, fs[i]);
}
+ fields = newfields;
}
return fields;
}