You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/02/19 20:48:46 UTC

svn commit: r509317 - in /incubator/tuscany/java/sca/kernel/core/src: main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java test/java/org/apache/tuscany/core/implementation/PojoAtomicComponentTestCase.java

Author: jmarino
Date: Mon Feb 19 11:48:46 2007
New Revision: 509317

URL: http://svn.apache.org/viewvc?view=rev&rev=509317
Log:
fix assertion error where a provider has a callback but no clients are wired to it

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoAtomicComponentTestCase.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java?view=diff&rev=509317&r1=509316&r2=509317
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java Mon Feb 19 11:48:46 2007
@@ -231,8 +231,8 @@
             for (Map.Entry<String, Member> entry : callbackSites.entrySet()) {
                 List<Wire> wires = callBackwires.get(entry.getKey());
                 if (wires == null) {
-                    // this is a programming error
-                    throw new AssertionError("Start called before wires were added");
+                    // this can happen when there are no clients wires to a component that has a callback  
+                    continue;
                 }
                 Member member = entry.getValue();
                 if (member instanceof Field) {

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoAtomicComponentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoAtomicComponentTestCase.java?view=diff&rev=509317&r1=509316&r2=509317
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoAtomicComponentTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoAtomicComponentTestCase.java Mon Feb 19 11:48:46 2007
@@ -23,6 +23,7 @@
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -52,6 +53,19 @@
     }
 
     @SuppressWarnings({"unchecked"})
+    public void testNoCallbackWires() throws Exception {
+        ScopeContainer container = EasyMock.createMock(ScopeContainer.class);
+        EasyMock.expect(container.getScope()).andReturn(Scope.CONVERSATION);
+        container.register(EasyMock.isA(AtomicComponent.class));
+        EasyMock.replay(container);
+        config.addCallbackSite("callback", Foo.class.getMethod("setCallback", Object.class));
+        AtomicComponent component = new TestAtomicComponent(config);
+        component.setScopeContainer(container);
+        component.start();
+        EasyMock.verify(container);
+    }
+
+    @SuppressWarnings({"unchecked"})
     public void testInit() throws Exception {
         EventInvoker<Object> invoker = EasyMock.createMock(EventInvoker.class);
         invoker.invokeEvent(EasyMock.notNull());
@@ -164,6 +178,10 @@
 
     private static class Foo {
         public Foo() {
+        }
+
+        public void setCallback(Object callback){
+
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org