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.getService(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]

Reply via email to