[jboss-cvs] JBossAS SVN: r62506 - projects/aop/trunk/aop/src/main/org/jboss/aop.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 24 06:21:40 EDT 2007
Author: kabir.khan at jboss.com
Date: 2007-04-24 06:21:39 -0400 (Tue, 24 Apr 2007)
New Revision: 62506
Modified:
projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
projects/aop/trunk/aop/src/main/org/jboss/aop/InstanceAdvisorDelegate.java
Log:
Fix failing tests
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java 2007-04-24 10:13:03 UTC (rev 62505)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/Advisor.java 2007-04-24 10:21:39 UTC (rev 62506)
@@ -701,6 +701,19 @@
joinpoints.add(joinpoint);
}
+ void addPerInstanceJoinpointAspect(Set joinpoints, AspectDefinition def)
+ {
+ initPerInstanceJoinpointAspectDefinitionsMap();
+ Set setJoinpoints = (Set) perInstanceJoinpointAspectDefinitions.get(def);
+ if (setJoinpoints == null)
+ {
+ setJoinpoints = new CopyOnWriteArraySet();
+ perInstanceJoinpointAspectDefinitions.put(def, setJoinpoints);
+ def.registerAdvisor(this);
+ }
+ setJoinpoints.addAll(joinpoints);
+ }
+
public void removePerInstanceJoinpointAspect(AspectDefinition def)
{
perInstanceJoinpointAspectDefinitions.remove(def);
Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/InstanceAdvisorDelegate.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/InstanceAdvisorDelegate.java 2007-04-24 10:13:03 UTC (rev 62505)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/InstanceAdvisorDelegate.java 2007-04-24 10:21:39 UTC (rev 62506)
@@ -82,13 +82,19 @@
if (getClassAdvisor() == null) return;
if (aspects != null) return; // doublecheck I know, but I don't want to do synchronization if not needed
//ClassAdvisor cadvisor = (ClassAdvisor) classAdvisor;
- Set defs = getClassAdvisor().getPerInstanceAspectDefinitions();
if (instanceAdvisor instanceof Advisor)
{
Advisor ia = (Advisor)instanceAdvisor;
Set instanceDefs = ia.getPerInstanceAspectDefinitions();
- defs.addAll(instanceDefs);
+ if (instanceDefs.size() > 0)
+ {
+ for (Iterator it = instanceDefs.iterator() ; it.hasNext() ; )
+ {
+ ia.addPerInstanceAspect((AspectDefinition)it.next());
+ }
+ }
}
+ Set defs = getClassAdvisor().getPerInstanceAspectDefinitions();
if (defs.size() > 0)
{
aspects = new WeakHashMap();
@@ -106,14 +112,23 @@
{
if (getClassAdvisor() == null) return;
if (joinpointAspects != null) return; // doublecheck I know, but I don't want to do synchronization if not needed
- Map jpAspects = getClassAdvisor().getPerInstanceJoinpointAspectDefinitions();
if (instanceAdvisor instanceof Advisor)
{
Advisor ia = (Advisor)instanceAdvisor;
Map instanceJpAspects = ia.getPerInstanceJoinpointAspectDefinitions();
- jpAspects.putAll(instanceJpAspects);
+
+ if (instanceJpAspects.size() > 0)
+ {
+ for (Iterator it = instanceJpAspects.keySet().iterator() ; it.hasNext() ; )
+ {
+ AspectDefinition def = (AspectDefinition) it.next();
+ Set joinpoints = (Set)instanceJpAspects.get(def);
+ ia.addPerInstanceJoinpointAspect(joinpoints, def);
+ }
+ }
}
+ Map jpAspects = getClassAdvisor().getPerInstanceJoinpointAspectDefinitions();
if (jpAspects.size() > 0)
{
joinpointAspects = new WeakHashMap();
More information about the jboss-cvs-commits
mailing list