For now I specified the target service in the SCDL. I think we should keep it like that in the sample as picking the default service in a composite is fragile and not really best practice. I'll work on getting rid of the NPE in a bit as it is a fairly simple fix.

Jim

On Jan 2, 2007, at 10:45 AM, Jim Marino wrote:

Yes that's right. I'll fix it in a bit.

Jim

On Jan 2, 2007, at 10:30 AM, Raymond Feng wrote:

Hi,

I ran into a NPE with the latest code in the InnerComposite sample. Please see the stack trace below.

java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.hash (ConcurrentHashMap.java:172) at java.util.concurrent.ConcurrentHashMap.get (ConcurrentHashMap.java:745) at org.apache.tuscany.spi.extension.CompositeComponentExtension.getServi ce(CompositeComponentExtension.java:252) at org.apache.tuscany.core.builder.ConnectorImpl.connect (ConnectorImpl.java:616) at org.apache.tuscany.core.builder.ConnectorImpl.connect (ConnectorImpl.java:503) at org.apache.tuscany.core.builder.ConnectorImpl.handleReference (ConnectorImpl.java:430) at org.apache.tuscany.core.builder.ConnectorImpl.connect (ConnectorImpl.java:90) at org.apache.tuscany.spi.extension.CompositeComponentExtension.prepare( CompositeComponentExtension.java:368) at org.apache.tuscany.spi.extension.CompositeComponentExtension.prepare( CompositeComponentExtension.java:370) at org.apache.tuscany.core.deployer.DeployerImpl.deploy (DeployerImpl.java:98) at org.apache.tuscany.core.launcher.LauncherImpl.bootApplication (LauncherImpl.java:213)
at org.apache.tuscany.test.SCATestCase.setUp(SCATestCase.java:88)
at innercomposite.InnerCompositeTestCase.setUp (InnerCompositeTestCase.java:31)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run( JUnit3TestReference.java:128) at org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:196)

In this case, the qualified name for the target is the component name and the portName is null and a NPE is thrown.

The SCA spec defines the following syntax for wire-target-URI:

<component-name>/<service-name>
o where the target is a service of a component. The specification of the service name is optional if the target component only has one service with a compatible interface

If service-name is not present (portName==null), we should check and pick the only one service. Am I right?

Thanks,
Raymond

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to