Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 35826 Details for
Bug 129163
full build occurs when only class file change
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
patch containing implementation of remaining equals/hashCode
pr129163-weaver-patch-remainingEquals.txt (text/plain), 20.03 KB, created by
Helen Beeken
on 2006-03-07 08:22:38 EST
(
hide
)
Description:
patch containing implementation of remaining equals/hashCode
Filename:
MIME Type:
Creator:
Helen Beeken
Created:
2006-03-07 08:22:38 EST
Size:
20.03 KB
patch
obsolete
>Index: src/org/aspectj/weaver/Advice.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/Advice.java,v >retrieving revision 1.31 >diff -u -r1.31 Advice.java >--- src/org/aspectj/weaver/Advice.java 21 Feb 2006 16:13:48 -0000 1.31 >+++ src/org/aspectj/weaver/Advice.java 7 Mar 2006 13:00:53 -0000 >@@ -240,6 +240,8 @@ > // only called as part of parameterization.... > public void setSignature(Member signature) { > this.signature = signature; >+ // reset hashCode value so it can be recalculated next time >+ hashCode = 0; > } > > public boolean hasExtraParameter() { >@@ -369,19 +371,21 @@ > public boolean equals(Object other) { > if (! (other instanceof Advice)) return false; > Advice o = (Advice) other; >- return o.attribute.equals(attribute) >- && o.pointcut.equals(pointcut) >- && o.signature.equals(signature); >+ return o.kind.equals(kind) >+ && ((o.pointcut == null) ? (pointcut == null) : o.pointcut.equals(pointcut)) >+ && ((o.signature == null) ? (signature == null) : o.signature.equals(signature)); >+ > } >- private volatile int hashCode = 0; >+ >+ private volatile int hashCode = 0; > public int hashCode() { >- if (hashCode == 0) { >+ if (hashCode == 0) { > int result = 17; > result = 37*result + kind.hashCode(); >- result = 37*result + pointcut.hashCode(); >- if (signature != null) result = 37*result + signature.hashCode(); >- hashCode = result; >- } >+ result = 37*result + ((pointcut == null) ? 0 : pointcut.hashCode()); >+ result = 37*result + ((signature == null) ? 0 : signature.hashCode()); >+ hashCode = result; >+ } > return hashCode; > } > >Index: src/org/aspectj/weaver/AnnotationOnTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/AnnotationOnTypeMunger.java,v >retrieving revision 1.1 >diff -u -r1.1 AnnotationOnTypeMunger.java >--- src/org/aspectj/weaver/AnnotationOnTypeMunger.java 10 Mar 2005 17:21:06 -0000 1.1 >+++ src/org/aspectj/weaver/AnnotationOnTypeMunger.java 7 Mar 2006 13:00:53 -0000 >@@ -35,4 +35,21 @@ > public AnnotationX getNewAnnotation() { > return newAnnotation; > } >+ >+ public boolean equals(Object other) { >+ if (!(other instanceof AnnotationOnTypeMunger)) return false; >+ AnnotationOnTypeMunger o = (AnnotationOnTypeMunger)other; >+ return newAnnotation.getSignature().equals(o.newAnnotation.getSignature()); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + newAnnotation.getSignature().hashCode(); >+ hashCode = result; >+ } >+ return hashCode; >+ } >+ > } >Index: src/org/aspectj/weaver/MemberImpl.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/MemberImpl.java,v >retrieving revision 1.8 >diff -u -r1.8 MemberImpl.java >--- src/org/aspectj/weaver/MemberImpl.java 24 Feb 2006 12:11:15 -0000 1.8 >+++ src/org/aspectj/weaver/MemberImpl.java 7 Mar 2006 13:00:54 -0000 >@@ -365,22 +365,10 @@ > public boolean equals(Object other) { > if (! (other instanceof Member)) return false; > Member o = (Member) other; >- >- return (kind == o.getKind() >- && name.equals(o.getName()) >- && signature.equals(o.getSignature()) >- && declaringType.equals(o.getDeclaringType())); >- } >- >- /* (non-Javadoc) >- * @see org.aspectj.weaver.Member#compareTo(java.lang.Object) >- */ >- public int compareTo(Object other) { >- Member o = (Member) other; >- >- int i = getName().compareTo(o.getName()); >- if (i != 0) return i; >- return getSignature().compareTo(o.getSignature()); >+ return (getKind() == o.getKind() >+ && getName().equals(o.getName()) >+ && getSignature().equals(o.getSignature()) >+ && getDeclaringType().equals(o.getDeclaringType())); > } > > /** >@@ -392,15 +380,26 @@ > public int hashCode() { > if (hashCode == 0) { > int result = 17; >- result = 37*result + kind.hashCode(); >- result = 37*result + name.hashCode(); >- result = 37*result + signature.hashCode(); >- result = 37*result + declaringType.hashCode(); >+ result = 37*result + getKind().hashCode(); >+ result = 37*result + getName().hashCode(); >+ result = 37*result + getSignature().hashCode(); >+ result = 37*result + getDeclaringType().hashCode(); > hashCode = result; > } > return hashCode; > } > >+ /* (non-Javadoc) >+ * @see org.aspectj.weaver.Member#compareTo(java.lang.Object) >+ */ >+ public int compareTo(Object other) { >+ Member o = (Member) other; >+ >+ int i = getName().compareTo(o.getName()); >+ if (i != 0) return i; >+ return getSignature().compareTo(o.getSignature()); >+ } >+ > public String toString() { > StringBuffer buf = new StringBuffer(); > buf.append(returnType.getName()); >Index: src/org/aspectj/weaver/MethodDelegateTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/MethodDelegateTypeMunger.java,v >retrieving revision 1.6 >diff -u -r1.6 MethodDelegateTypeMunger.java >--- src/org/aspectj/weaver/MethodDelegateTypeMunger.java 19 Dec 2005 13:09:21 -0000 1.6 >+++ src/org/aspectj/weaver/MethodDelegateTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -55,6 +55,26 @@ > this.implClassName = implClassName; > } > >+ public boolean equals(Object other) { >+ if (!(other instanceof MethodDelegateTypeMunger)) return false; >+ MethodDelegateTypeMunger o = (MethodDelegateTypeMunger)other; >+ return ((o.aspect == null) ? (aspect == null ) : aspect.equals(o.aspect)) >+ && ((o.typePattern == null) ? (typePattern == null ) : typePattern.equals(o.typePattern)) >+ && ((o.implClassName == null) ? (implClassName == null) : implClassName.equals(o.implClassName)); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + ((aspect == null) ? 0 : aspect.hashCode()); >+ result = 37*result + ((typePattern == null) ? 0 : typePattern.hashCode()); >+ result = 37*result + ((implClassName == null) ? 0 : implClassName.hashCode()); >+ hashCode = result; >+ } >+ return hashCode; >+ } >+ > public ResolvedMember getDelegate(ResolvedType targetType) { > return AjcMemberMaker.itdAtDeclareParentsField( > targetType, >@@ -130,6 +150,20 @@ > this.typePattern = typePattern; > } > >+ public boolean equals(Object other) { >+ if (!(other instanceof FieldHostTypeMunger)) return false; >+ FieldHostTypeMunger o = (FieldHostTypeMunger)other; >+ return ((o.aspect == null) ? (aspect == null ) : aspect.equals(o.aspect)) >+ && ((o.typePattern == null) ? (typePattern == null ) : typePattern.equals(o.typePattern)); >+ } >+ >+ public int hashCode() { >+ int result = 17; >+ result = 37*result + ((aspect == null) ? 0 : aspect.hashCode()); >+ result = 37*result + ((typePattern == null) ? 0 : typePattern.hashCode()); >+ return result; >+ } >+ > public void write(DataOutputStream s) throws IOException { > kind.write(s); > signature.write(s); >Index: src/org/aspectj/weaver/NewConstructorTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/NewConstructorTypeMunger.java,v >retrieving revision 1.15 >diff -u -r1.15 NewConstructorTypeMunger.java >--- src/org/aspectj/weaver/NewConstructorTypeMunger.java 20 Oct 2005 08:33:40 -0000 1.15 >+++ src/org/aspectj/weaver/NewConstructorTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -40,6 +40,26 @@ > > } > >+ public boolean equals(Object other) { >+ if (!(other instanceof NewConstructorTypeMunger)) return false; >+ NewConstructorTypeMunger o = (NewConstructorTypeMunger)other; >+ return ((o.syntheticConstructor == null) ? (syntheticConstructor == null ) >+ : syntheticConstructor.equals(o.syntheticConstructor)) >+ & ((o.explicitConstructor == null) ? (explicitConstructor == null ) >+ : explicitConstructor.equals(o.explicitConstructor)); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + ((syntheticConstructor == null) ? 0 : syntheticConstructor.hashCode()); >+ result = 37*result + ((explicitConstructor == null) ? 0 : explicitConstructor.hashCode()); >+ hashCode = result; >+ } >+ return hashCode; >+ } >+ > // doesnt seem required.... > // public ResolvedMember getDispatchMethod(UnresolvedType aspectType) { > // return AjcMemberMaker.interMethodBody(signature, aspectType); >@@ -78,6 +98,8 @@ > > public void setExplicitConstructor(ResolvedMember explicitConstructor) { > this.explicitConstructor = explicitConstructor; >+ // reset hashCode so that its recalculated with new value >+ hashCode = 0; > } > > public ResolvedMember getMatchingSyntheticMember(Member member, ResolvedType aspectType) { >Index: src/org/aspectj/weaver/NewFieldTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/NewFieldTypeMunger.java,v >retrieving revision 1.16 >diff -u -r1.16 NewFieldTypeMunger.java >--- src/org/aspectj/weaver/NewFieldTypeMunger.java 26 Oct 2005 16:48:29 -0000 1.16 >+++ src/org/aspectj/weaver/NewFieldTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -93,4 +93,22 @@ > return nftm; > } > >+ public boolean equals(Object other) { >+ if (! (other instanceof NewFieldTypeMunger)) return false; >+ NewFieldTypeMunger o = (NewFieldTypeMunger) other; >+ return kind.equals(o.kind) >+ && ((o.signature == null) ? (signature == null ) : signature.equals(o.signature)) >+ && ((o.declaredSignature == null) ? (declaredSignature == null ) : declaredSignature.equals(o.declaredSignature)) >+ && ((o.typeVariableAliases == null) ? (typeVariableAliases == null ) : typeVariableAliases.equals(o.typeVariableAliases)); >+ } >+ >+ public int hashCode() { >+ int result = 17; >+ result = 37*result + kind.hashCode(); >+ result = 37*result + ((signature == null) ? 0 : signature.hashCode()); >+ result = 37*result + ((declaredSignature == null) ? 0 : declaredSignature.hashCode()); >+ result = 37*result + ((typeVariableAliases == null) ? 0 : typeVariableAliases.hashCode()); >+ return result; >+ } >+ > } >Index: src/org/aspectj/weaver/NewMethodTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/NewMethodTypeMunger.java,v >retrieving revision 1.18 >diff -u -r1.18 NewMethodTypeMunger.java >--- src/org/aspectj/weaver/NewMethodTypeMunger.java 26 Oct 2005 16:48:29 -0000 1.18 >+++ src/org/aspectj/weaver/NewMethodTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -110,5 +110,22 @@ > return nmtm; > } > >+ public boolean equals(Object other) { >+ if (! (other instanceof NewMethodTypeMunger)) return false; >+ NewMethodTypeMunger o = (NewMethodTypeMunger) other; >+ return kind.equals(o.kind) >+ && ((o.signature == null) ? (signature == null ) : signature.equals(o.signature)) >+ && ((o.declaredSignature == null) ? (declaredSignature == null ) : declaredSignature.equals(o.declaredSignature)) >+ && ((o.typeVariableAliases == null) ? (typeVariableAliases == null ) : typeVariableAliases.equals(o.typeVariableAliases)); >+ } >+ >+ public int hashCode() { >+ int result = 17; >+ result = 37*result + kind.hashCode(); >+ result = 37*result + ((signature == null) ? 0 : signature.hashCode()); >+ result = 37*result + ((declaredSignature == null) ? 0 : declaredSignature.hashCode()); >+ result = 37*result + ((typeVariableAliases == null) ? 0 : typeVariableAliases.hashCode()); >+ return result; >+ } > > } >Index: src/org/aspectj/weaver/NewParentTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/NewParentTypeMunger.java,v >retrieving revision 1.3 >diff -u -r1.3 NewParentTypeMunger.java >--- src/org/aspectj/weaver/NewParentTypeMunger.java 15 Jul 2005 16:09:04 -0000 1.3 >+++ src/org/aspectj/weaver/NewParentTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -33,5 +33,19 @@ > return newParent; > } > >- >+ public boolean equals(Object other) { >+ if (! (other instanceof NewParentTypeMunger)) return false; >+ NewParentTypeMunger o = (NewParentTypeMunger) other; >+ return newParent.equals(o.newParent); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + newParent.hashCode(); >+ hashCode = result; >+ } >+ return hashCode; >+ } > } >Index: src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java,v >retrieving revision 1.12 >diff -u -r1.12 PerObjectInterfaceTypeMunger.java >--- src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java 15 Nov 2005 10:58:09 -0000 1.12 >+++ src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -26,7 +26,25 @@ > private final UnresolvedType interfaceType; > private final Pointcut testPointcut; > private TypePattern lazyTestTypePattern; >- >+ >+ public boolean equals(Object other) { >+ if (!(other instanceof PerObjectInterfaceTypeMunger)) return false; >+ PerObjectInterfaceTypeMunger o = (PerObjectInterfaceTypeMunger)other; >+ return ((o.testPointcut == null) ? (testPointcut == null ) : testPointcut.equals(o.testPointcut)) >+ && ((o.lazyTestTypePattern == null) ? (lazyTestTypePattern == null ) : lazyTestTypePattern.equals(o.lazyTestTypePattern)); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + ((testPointcut == null) ? 0 : testPointcut.hashCode()); >+ result = 37*result + ((lazyTestTypePattern == null) ? 0 : lazyTestTypePattern.hashCode()); >+ hashCode = result; >+ } >+ return hashCode; >+ } >+ > public PerObjectInterfaceTypeMunger(UnresolvedType aspectType, Pointcut testPointcut) { > super(PerObjectInterface, null); > this.testPointcut = testPointcut; >@@ -44,6 +62,8 @@ > } > PerThisOrTargetPointcutVisitor v = new PerThisOrTargetPointcutVisitor(!isPerThis, aspectType); > lazyTestTypePattern = v.getPerTypePointcut(testPointcut); >+ // reset hashCode so that its recalculated with the new lazyTestTypePattern >+ hashCode = 0; > } > return lazyTestTypePattern; > } >Index: src/org/aspectj/weaver/PerTypeWithinTargetTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/PerTypeWithinTargetTypeMunger.java,v >retrieving revision 1.6 >diff -u -r1.6 PerTypeWithinTargetTypeMunger.java >--- src/org/aspectj/weaver/PerTypeWithinTargetTypeMunger.java 15 Jul 2005 16:09:03 -0000 1.6 >+++ src/org/aspectj/weaver/PerTypeWithinTargetTypeMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -30,6 +30,24 @@ > this.testPointcut = testPointcut; > } > >+ public boolean equals(Object other) { >+ if (!(other instanceof PerTypeWithinTargetTypeMunger)) return false; >+ PerTypeWithinTargetTypeMunger o = (PerTypeWithinTargetTypeMunger)other; >+ return ((o.testPointcut == null) ? (testPointcut == null ) : testPointcut.equals(o.testPointcut)) >+ && ((o.aspectType == null) ? (aspectType == null ) : aspectType.equals(o.aspectType)); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + ((testPointcut == null) ? 0 : testPointcut.hashCode()); >+ result = 37*result + ((aspectType == null) ? 0 : aspectType.hashCode()); >+ hashCode = result; >+ } >+ return hashCode; >+ } >+ > public void write(DataOutputStream s) throws IOException { > throw new RuntimeException("shouldn't be serialized"); > } >Index: src/org/aspectj/weaver/PrivilegedAccessMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/PrivilegedAccessMunger.java,v >retrieving revision 1.5 >diff -u -r1.5 PrivilegedAccessMunger.java >--- src/org/aspectj/weaver/PrivilegedAccessMunger.java 15 Jul 2005 16:09:03 -0000 1.5 >+++ src/org/aspectj/weaver/PrivilegedAccessMunger.java 7 Mar 2006 13:00:54 -0000 >@@ -45,4 +45,22 @@ > return null; > } > >+ public boolean equals(Object other) { >+ if (! (other instanceof PrivilegedAccessMunger)) return false; >+ PrivilegedAccessMunger o = (PrivilegedAccessMunger) other; >+ return kind.equals(o.kind) >+ && ((o.signature == null) ? (signature == null ) : signature.equals(o.signature)) >+ && ((o.declaredSignature == null) ? (declaredSignature == null ) : declaredSignature.equals(o.declaredSignature)) >+ && ((o.typeVariableAliases == null) ? (typeVariableAliases == null ) : typeVariableAliases.equals(o.typeVariableAliases)); >+ } >+ >+ public int hashCode() { >+ int result = 17; >+ result = 37*result + kind.hashCode(); >+ result = 37*result + ((signature == null) ? 0 : signature.hashCode()); >+ result = 37*result + ((declaredSignature == null) ? 0 : declaredSignature.hashCode()); >+ result = 37*result + ((typeVariableAliases == null) ? 0 : typeVariableAliases.hashCode()); >+ return result; >+ } >+ > } >Index: src/org/aspectj/weaver/bcel/BcelTypeMunger.java >=================================================================== >RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java,v >retrieving revision 1.72 >diff -u -r1.72 BcelTypeMunger.java >--- src/org/aspectj/weaver/bcel/BcelTypeMunger.java 6 Mar 2006 16:09:29 -0000 1.72 >+++ src/org/aspectj/weaver/bcel/BcelTypeMunger.java 7 Mar 2006 13:00:56 -0000 >@@ -1645,6 +1645,25 @@ > return munger.getTypeVariableAliases(); > } > >+ public boolean equals(Object other) { >+ if (! (other instanceof BcelTypeMunger)) return false; >+ BcelTypeMunger o = (BcelTypeMunger) other; >+ return ((o.getMunger() == null) ? (getMunger() == null) : o.getMunger().equals(getMunger())) >+ && ((o.getAspectType() == null) ? (getAspectType() == null) : o.getAspectType().equals(getAspectType())); >+ } >+ >+ private volatile int hashCode = 0; >+ public int hashCode() { >+ if (hashCode == 0) { >+ int result = 17; >+ result = 37*result + ((getMunger() == null) ? 0 : getMunger().hashCode()); >+ result = 37*result + ((getAspectType() == null) ? 0 : getAspectType().hashCode()); >+ hashCode = result; >+ } >+ return hashCode; >+ } >+ >+ > /** > * Some type mungers are created purely to help with the implementation of shadow mungers. > * For example to support the cflow() pointcut we create a new cflow field in the aspect, and
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
aclement
:
iplog+
Actions:
View
|
Diff
Attachments on
bug 129163
:
35752
|
35754
|
35757
|
35759
| 35826 |
35841
|
35899
|
35905
|
35906
|
36053