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]