[ 
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]

Reply via email to