You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Scott Kurz (JIRA)" <tu...@ws.apache.org> on 2008/04/03 17:20:27 UTC

[jira] Commented: (TUSCANY-2193) NPE when configuring WSDL interface on component ref when the component has a Composite impl

    [ https://issues.apache.org/jira/browse/TUSCANY-2193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12585135#action_12585135 ] 

Scott Kurz commented on TUSCANY-2193:
-------------------------------------

I found the problem.    

In CompositeConfigurationBuilderImpl.reconcileReferences() we do a check to see if we want an incompatible intf warning:

                // Reconcile interface
                if (componentReference.getInterfaceContract() != null) {
                    if (!componentReference.getInterfaceContract().equals(reference
                        .getInterfaceContract())) {
                        if (!interfaceContractMapper.isCompatible(reference.getInterfaceContract(),
                                                                  componentReference
                                                                      .getInterfaceContract())) {
                            warning("Component reference interface incompatible with reference interface: " +.......

In the case I described above, we are going to have a non-null IC from the component reference (the WSDL IC).  However, the reference IC wlil still be null at this point.   (The reason seems to be that the reference IC on the composite impl does not get set until CompositeWireBuilderImpl.wireComposite).

So I'll leave it up to others whether it's best to put a null guard before calling the IC mapper or if we should look to put a guard in the IC mapper impl itself.

> NPE when configuring WSDL interface on component ref when the component has a Composite impl
> --------------------------------------------------------------------------------------------
>
>                 Key: TUSCANY-2193
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-2193
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA Core Runtime
>            Reporter: Scott Kurz
>            Priority: Minor
>
> I noticed this with a more complicated example.  
> To reproduce more simply maybe, go to the SVN dir:  sca/itest/recursive
> and modify BComposite.composite so it looks like:
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>     targetNamespace="http://sample"
>     xmlns:sample="http://sample"
>     name="BComposite">
>    ....
>     <component name="BComponent">
>         <implementation.composite name="sample:CComposite"/>
>         <reference name="PromotedRefX">
>                <interface.wsdl interface="http://blah#wsdl.interface(Blah)" />
>         </reference>
>    ....
> Note that you can put any old WSDL in there.   You shouldn't get far enough for it to even matter.  
> You'll hit errors like:
> java.lang.NullPointerException
> 	at org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl.checkCompatibility(InterfaceContractMapperImpl.java:155)
> 	at org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl.isCompatible(InterfaceContractMapperImpl.java:271)
> 	at org.apache.tuscany.sca.assembly.builder.impl.CompositeConfigurationBuilderImpl.reconcileReferences(CompositeConfigurationBuilderImpl.java:527)
> 	at org.apache.tuscany.sca.assembly.builder.impl.CompositeConfigurationBuilderImpl.configureComponents(CompositeConfigurationBuilderImpl.java:250)
> 	at org.apache.tuscany.sca.assembly.builder.impl.CompositeConfigurationBuilderImpl.configureComponents(CompositeConfigurationBuilderImpl.java:85)
> 	at org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl.build(CompositeBuilderImpl.java:97)

-- 
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: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org