diff options
author | Andy Clement <andrew.clement@gmail.com> | 2013-03-13 08:23:55 -0700 |
---|---|---|
committer | Andy Clement <andrew.clement@gmail.com> | 2013-03-13 08:23:55 -0700 |
commit | 0660ad3b68a396993723b3e66b20bc467e6fa982 (patch) | |
tree | 551e1829a467201f63e22cd406267529c11f987b /weaver | |
parent | be5a53001fda264fc8fdebe7d2b64c20e748e51c (diff) | |
download | aspectj-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.java | 10 |
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; } |