[
https://issues.apache.org/jira/browse/TUSCANY-1260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ignacio Silva-Lepe resolved TUSCANY-1260.
-----------------------------------------
Resolution: Fixed
Ok, so the real issue is a dependency on tuscany-implementation-java-runtime.
The pom being used to build the sample was missing this dependency and so the
implementation.java for the missing component was not being created. Perhaps
there can be a more apparent way to warn about this?
> NPE when component reference has target composite with custom implementation
> ----------------------------------------------------------------------------
>
> Key: TUSCANY-1260
> URL: https://issues.apache.org/jira/browse/TUSCANY-1260
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Model
> Affects Versions: Java-SCA-0.90
> Environment: Windows XP
> Reporter: Ignacio Silva-Lepe
> Fix For: Java-SCA-0.90
>
>
> A NPE occurs in DefaultCompositeActivator.createWires() when component
> reference has target composite with custom implementation. This used to work
> before the last refactor.
> Running org.apache.tuscany.notification.remoteProducer.TrafficAdvisoryTestCase
> *** binding ntm [null], notificationType [trafficAdvisory]
> >>> NotificationImplementationLoader.resolve, tmpUri
> >>> [TrafficAdvisoryNotificatio
> n.componentType], ctUri
> [file:/C:/Devt/NotificationComponents/samples/remote-pro
> ducer/target/test-classes/TrafficAdvisoryNotification.componentType]
> Composite assembly problem: No implementation for component:
> TrafficAdvisoryProd
> ucer
> Composite assembly problem: Reference not found for component reference:
> Traffic
> AdvisoryProducer/destination
> >>> createWires, component [TrafficAdvisoryProducer], reference
> >>> [destination], b
> inding [EMAIL PROTECTED]
> org.osoa.sca.ServiceRuntimeException: org.osoa.sca.ServiceRuntimeException:
> org.
> apache.tuscany.core.runtime.ActivationException:
> java.lang.NullPointerException
> at
> org.apache.tuscany.host.embedded.SCADomain.createNewInstance(SCADomai
> n.java:197)
> at
> org.apache.tuscany.host.embedded.SCADomain.newInstance(SCADomain.java
> :73)
> at
> org.apache.tuscany.notification.remoteProducer.TrafficAdvisoryTestCas
> e.setUp(TrafficAdvisoryTestCase.java:40)
> at junit.framework.TestCase.runBare(TestCase.java:132)
> at junit.framework.TestResult$1.protect(TestResult.java:110)
> at junit.framework.TestResult.runProtected(TestResult.java:128)
> at junit.framework.TestResult.run(TestResult.java:113)
> at junit.framework.TestCase.run(TestCase.java:124)
> at junit.framework.TestSuite.runTest(TestSuite.java:232)
> at junit.framework.TestSuite.run(TestSuite.java:227)
> at
> org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.
> java:35)
> at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
> java:62)
> >>> getInterfaceContract
> *** interfaceContract [null]
> *** provider not null, bindingContract [null]
> <<< getInterfaceContract, interfaceContract [null]
> *** bindingContract [null]
> *** bindingContract.getInterface() [null]
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
> tSet(AbstractDirectoryTestSuite.java:138)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
> stractDirectoryTestSuite.java:125)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
> refireBooter.java:290)
> at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
> ava:818)
> Caused by: org.osoa.sca.ServiceRuntimeException:
> org.apache.tuscany.core.runtime
> .ActivationException: java.lang.NullPointerException
> at
> org.apache.tuscany.host.embedded.impl.DefaultSCADomain.<init>(Default
> SCADomain.java:136)
> at
> org.apache.tuscany.host.embedded.SCADomain.createNewInstance(SCADomai
> n.java:186)
> ... 20 more
> Caused by: org.apache.tuscany.core.runtime.ActivationException:
> java.lang.NullPo
> interException
> at
> org.apache.tuscany.core.runtime.DefaultCompositeActivator.start(Defau
> ltCompositeActivator.java:587)
> at
> org.apache.tuscany.host.embedded.impl.DefaultSCADomain.<init>(Default
> SCADomain.java:134)
> ... 21 more
> Caused by: java.lang.NullPointerException
> at
> org.apache.tuscany.core.runtime.DefaultCompositeActivator.createWires
> (DefaultCompositeActivator.java:371)
> at
> org.apache.tuscany.core.runtime.DefaultCompositeActivator.createRunti
> meWires(DefaultCompositeActivator.java:255)
> at
> org.apache.tuscany.core.runtime.DefaultCompositeActivator.start(Defau
> ltCompositeActivator.java:584)
> ... 22 more
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.932 sec <<<
> FA
> ILURE!
> Results :
> Tests in error:
>
> testTrafficAdvisoryNotification(org.apache.tuscany.notification.remoteProducer
> .TrafficAdvisoryTestCase)
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
> The composite being used is:
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>
> targetNamespace="http://tuscany.apache.org/xmlns/notification/1.0/samples"
> xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
> name="TrafficAdvisoryNotificationRemoteProducerComposite">
> <component name="TrafficAdvisoryProducer">
> <implementation.java
> class="org.apache.tuscany.notification.remoteProducer.TrafficAdvisoryProducer"/>
> <reference name="destination"
> target="TrafficAdvisoryNotificationComponent"/>
> </component>
> <component name="TrafficAdvisoryNotificationComponent">
> <implementation.notification name="TrafficAdvisoryNotification"/>
> </component>
>
> <reference name="TrafficAdvisoryNotificationCompositeReference"
>
> promote="TrafficAdvisoryNotificationComponent/TrafficAdvisoryNotificationReference">
> <interface.wsdl
> interface="http://example.com/TrafficAdvisory.wsdl#wsdl.interface(TrafficAdvisoryPortType)"
> wsdli:wsdlLocation="http://example.com/TrafficAdvisory.wsdl
> wsdl/TrafficAdvisory.wsdl">
> <db:databinding
> xmlns:db="http://tuscany.apache.org/xmlns/sca/databinding/1.0"
> name="org.apache.axiom.om.OMElement" />
> </interface.wsdl>
> <binding.notification notificationType="trafficAdvisory"/>
> </reference>
> </composite>
> the custom component type is:
> <componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"
> xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
> <service name="TrafficAdvisoryNotificationService">
> <interface.wsdl
> interface="http://example.com/TrafficAdvisory.wsdl#wsdl.interface(TrafficAdvisoryPortType)"
> wsdli:wsdlLocation="http://example.com/TrafficAdvisory.wsdl
> wsdl/TrafficAdvisory.wsdl">
> <db:databinding
> xmlns:db="http://tuscany.apache.org/xmlns/sca/databinding/1.0"
> name="org.apache.axiom.om.OMElement" />
> </interface.wsdl>
> </service>
> <reference name="TrafficAdvisoryNotificationReference"
> multiplicity="0..n">
> <interface.wsdl
> interface="http://example.com/TrafficAdvisory.wsdl#wsdl.interface(TrafficAdvisoryPortType)"
> wsdli:wsdlLocation="http://example.com/TrafficAdvisory.wsdl
> wsdl/TrafficAdvisory.wsdl">
> <db:databinding
> xmlns:db="http://tuscany.apache.org/xmlns/sca/databinding/1.0"
> name="org.apache.axiom.om.OMElement" />
> </interface.wsdl>
> </reference>
> </componentType>
> the interface.java being used is:
> public interface TrafficAdvisory {
> void trafficNotification(String report);
> }
> and the interface.wsdl being used is:
> <definitions name="TrafficAdvisory"
> targetNamespace="http://example.com/TrafficAdvisory.wsdl"
> xmlns:tns="http://example.com/TrafficAdvisory.wsdl"
> xmlns:xsd1="http://example.com/TrafficAdvisory.xsd"
> xmlns="http://schemas.xmlsoap.org/wsdl/">
> <types>
> <schema targetNamespace="http://example.com/TrafficAdvisory.xsd"
> xmlns:tns="http://example.com/TrafficAdvisory.xsd"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <element name="trafficNotification">
> <complexType>
> <sequence>
> <element name="report" type="string" />
> </sequence>
> </complexType>
> </element>
> </schema>
> </types>
> <message name="TrafficNotificationInput">
> <part name="body" element="xsd1:trafficNotification" />
> </message>
> <portType name="TrafficAdvisoryPortType">
> <operation name="trafficNotification">
> <input message="tns:TrafficNotificationInput" />
> </operation>
> </portType>
> </definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]