[
https://issues.apache.org/jira/browse/TUSCANY-2023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Combellack resolved TUSCANY-2023.
--------------------------------------
Resolution: Fixed
Fixed by adding a null check in svn revision 616731
> NPE if callback service has multiple interfaces one of which does not have a
> callback
> -------------------------------------------------------------------------------------
>
> Key: TUSCANY-2023
> URL: https://issues.apache.org/jira/browse/TUSCANY-2023
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Java Implementation Extension
> Environment: implementation-java project trunk SVN revision 616727
> Linux
> Reporter: Mark Combellack
> Priority: Minor
> Fix For: Java-SCA-Next
>
>
> Whilst deploying a sample application, I ran into the following NPE.
> java.lang.NullPointerException
> at
> org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor.createCallback(ServiceProcessor.java:138)
> at
> org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor.visitField(ServiceProcessor.java:117)
> at
> org.apache.tuscany.sca.implementation.java.impl.JavaClassIntrospectorImpl.introspectClass(JavaClassIntrospectorImpl.java:92)
> at
> org.apache.tuscany.sca.implementation.java.impl.JavaImplementationFactoryImpl.createJavaImplementation(JavaImplementationFactoryImpl.java:53)
> at
> org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:154)
> at
> org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:65)
> at
> org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint$LazyStAXArtifactProcessor.resolve(DefaultStAXArtifactProcessorExtensionPoint.java:242)
> at
> org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.resolve(ExtensibleStAXArtifactProcessor.java:108)
> at
> org.apache.tuscany.sca.assembly.xml.BaseAssemblyProcessor.resolveImplementation(BaseAssemblyProcessor.java:241)
> at
> org.apache.tuscany.sca.assembly.xml.CompositeProcessor.resolve(CompositeProcessor.java:794)
> at
> org.apache.tuscany.sca.assembly.xml.CompositeProcessor.resolve(CompositeProcessor.java:74)
> at
> org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.resolve(ExtensibleStAXArtifactProcessor.java:108)
> at
> org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.resolve(CompositeDocumentProcessor.java:113)
> at
> org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.resolve(CompositeDocumentProcessor.java:47)
> at
> org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor.resolve(ExtensibleURLArtifactProcessor.java:86)
> at
> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processResolvePhase(ContributionServiceImpl.java:423)
> at
> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution(ContributionServiceImpl.java:333)
> at
> org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute(ContributionServiceImpl.java:155)
> at
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:125)
> at
> org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:230)
> ... 22 more
> The problem is caused by having a Service Implementation that implements two
> interfaces. One interface has a callback and the other interface does not.
> The code in the ServiceProcessor is:
> 1 for (Service service : type.getServices()) {
> 2 JavaInterface javaInterface =
> (JavaInterface)service.getInterfaceContract().getCallbackInterface();
> 3 if (baseType == javaInterface.getJavaClass()) {
> 4 callbackService = service;
> 5 }
> 6 }
> Line 1: Check each Service
> Line 2: Get the callback interface for the Service
> Line 3: See if the Java Class for the callback interface matches what we are
> looking for
> The NPE is caused by line 3 when inspecting the second interface that does
> not have a callback. The issue is that javaInterface will be null since there
> is no callback.
> The fix is simple - simply add a null check
--
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]