On Thu, May 26, 2011 at 12:42 PM, Simon Laws <simonsl...@googlemail.com> wrote:
> I'm working on a test to look at the lifecycle events to make sure
> that they happen in the right places [1]. One of the tests looks at
> what happens when an exception is thrown in the @Init operation. It
> happens to use the domain node implementation and does the following
> when starting the composite...
>
>        // start a composite
>        try {
>            node.startComposite("HelloworldContrib", "lifecycle.composite");
>
>            // stop a composite - it won't do this
>            node.stopComposite("HelloworldContrib", "lifecycle.composite");
>        } catch (Exception exception) {
>            // it's thrown from the HelloworldClientImpl @Init method
>        }
>
> I did run the test to see what happens if I try and stop the composite
> after the error and the runtime reports.
>
> java.lang.IllegalStateException: not supportted for LocalOnly
>        at 
> org.apache.tuscany.sca.core.assembly.impl.DomainRegistryImpl.remoteCommand(DomainRegistryImpl.java:251)
>        at 
> org.apache.tuscany.sca.impl.NodeImpl.stopComposite(NodeImpl.java:270)
>        at 
> org.apache.tuscany.sca.itest.lifecycle.LifecycleTestCase.testInitExceptionShutdown(LifecycleTestCase.java:113)
>
> It looks like it tries to do remote things if it doesn't find a
> started composite when it's asked to stop one. It would be good to be
> able to call the stop operation regardless and have is just warn that
> there isn't a composite to stop.
>

I've just changed it so that doesn't happen and now its throwing an
IllegalStateException saying "composite not started:
lifecycle.composite". Does that do more closely what you want?

   ...ant

Reply via email to