You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Mike Rheinheimer (JIRA)" <ji...@apache.org> on 2008/02/29 19:00:51 UTC

[jira] Created: (AXIS2-3560) dispatchable OperationDescription list is incorrect

dispatchable OperationDescription list is incorrect
---------------------------------------------------

                 Key: AXIS2-3560
                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: jaxws
            Reporter: Mike Rheinheimer


In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:

CURRENTLY:

        if (methodName != null && returnTypeName != null) {
            // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
            answer = methodName.endsWith("Async")
                    && (returnTypeName.equals(Response.class.getName()) ||
                    returnTypeName.equals(Future.class.getName()));
        }

The returnTypeName, however, is always one of the forms:

     javax.xml.ws.Response<some.other.MyClass>
     java.util.concurrent.Future<some.other.MyClass>

Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:

     answer = ( methodName.endsWith("Async")
                    && (returnTypeName.equals(Response.class.getName()) )  ||
                    returnTypeName.equals(Future.class.getName()));

Ok, so the reason I'm not fixing this, is because the change over to this logic:

     answer = methodName.endsWith("Async")
                    && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
                    returnTypeName.indexOf(Future.class.getName()) == 0));

caused much test breakage.

UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.

I'll continue to look at this...

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


[jira] Updated: (AXIS2-3560) [Break] NonWrapTests break - dispatchable OperationDescription list is incorrect

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer updated AXIS2-3560:
------------------------------------

    Attachment: patch.txt

Attached patch is the fix applied in rev 638059.  This item is resolved fixed.

> [Break] NonWrapTests  break - dispatchable OperationDescription list is incorrect
> ---------------------------------------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>            Priority: Blocker
>             Fix For: 1.4
>
>         Attachments: patch.txt
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Updated: (AXIS2-3560) NonWrapTests break - dispatchable OperationDescription list is incorrect

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas updated AXIS2-3560:
------------------------------------

    Priority: Blocker  (was: Major)

> NonWrapTests  break - dispatchable OperationDescription list is incorrect
> -------------------------------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>            Priority: Blocker
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Updated: (AXIS2-3560) NonWrapTests break - dispatchable OperationDescription list is incorrect

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas updated AXIS2-3560:
------------------------------------

    Summary: NonWrapTests  break - dispatchable OperationDescription list is incorrect  (was: dispatchable OperationDescription list is incorrect)

> NonWrapTests  break - dispatchable OperationDescription list is incorrect
> -------------------------------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Commented: (AXIS2-3560) dispatchable OperationDescription list is incorrect

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12576647#action_12576647 ] 

Davanum Srinivas commented on AXIS2-3560:
-----------------------------------------

Mike,

is this needed for 1.4?

> dispatchable OperationDescription list is incorrect
> ---------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Updated: (AXIS2-3560) [Break] NonWrapTests break - dispatchable OperationDescription list is incorrect

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas updated AXIS2-3560:
------------------------------------

    Summary: [Break] NonWrapTests  break - dispatchable OperationDescription list is incorrect  (was: NonWrapTests  break - dispatchable OperationDescription list is incorrect)

> [Break] NonWrapTests  break - dispatchable OperationDescription list is incorrect
> ---------------------------------------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>            Priority: Blocker
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Commented: (AXIS2-3560) dispatchable OperationDescription list is incorrect

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12577055#action_12577055 ] 

Mike Rheinheimer commented on AXIS2-3560:
-----------------------------------------

I believe it is required, since all non-wrap style transactions would fail without this fix.

> dispatchable OperationDescription list is incorrect
> ---------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Resolved: (AXIS2-3560) [Break] NonWrapTests break - dispatchable OperationDescription list is incorrect

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Rheinheimer resolved AXIS2-3560.
-------------------------------------

    Resolution: Fixed

Fixed in rev 638059

> [Break] NonWrapTests  break - dispatchable OperationDescription list is incorrect
> ---------------------------------------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>            Priority: Blocker
>             Fix For: 1.4
>
>         Attachments: patch.txt
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Updated: (AXIS2-3560) dispatchable OperationDescription list is incorrect

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas updated AXIS2-3560:
------------------------------------

    Fix Version/s: 1.4
         Assignee: Mike Rheinheimer

> dispatchable OperationDescription list is incorrect
> ---------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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


[jira] Commented: (AXIS2-3560) [Break] NonWrapTests break - dispatchable OperationDescription list is incorrect

Posted by "Mike Rheinheimer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12578895#action_12578895 ] 

Mike Rheinheimer commented on AXIS2-3560:
-----------------------------------------

The correct code for OperationDescriptionImpl.isJAXWSAsyncClientMethod() is:

            answer = methodName.endsWith("Async")
                    && ((returnTypeName.contains(Response.class.getName()) ||
                    returnTypeName.contains(Future.class.getName())));

After I implemented this, I ran into another problem where the server side was processing async operations.  It should not be doing this.  Running theory:

org.apache.axis2.jaxws.runtime.description.marshal.impl.AnnotationBuilder.getAnnotationDescs
                                          (EndpointInterfaceDescription endpointInterfaceDesc,
                                           ArtifactProcessor ap,
                                           Map<String, AnnotationDesc> map)

We need to see if we are on the client or the server side.  If on the client, we call EndpointInterfaceDescription.getOperations().  If on the server, we call EndpointInterfaceDescription.getDispatchableOperations()

I tried this, and ran into yet another problem:  

java.lang.ClassCastException: java.lang.Class incompatible with java.lang.reflect.ParameterizedType

I'll continue looking at this during week of 3/17.

> [Break] NonWrapTests  break - dispatchable OperationDescription list is incorrect
> ---------------------------------------------------------------------------------
>
>                 Key: AXIS2-3560
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3560
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: jaxws
>            Reporter: Mike Rheinheimer
>            Assignee: Mike Rheinheimer
>            Priority: Blocker
>             Fix For: 1.4
>
>
> In the metadata module, the org.apache.axis2.jaxws.description.impl.OperationDescriptionImpl.isJAXWSAsyncClientMethod() has some incorrect logic at the end:
> CURRENTLY:
>         if (methodName != null && returnTypeName != null) {
>             // REVIEW: Not sure the method MUST end with "Async"; I think it can be customized.
>             answer = methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) ||
>                     returnTypeName.equals(Future.class.getName()));
>         }
> The returnTypeName, however, is always one of the forms:
>      javax.xml.ws.Response<some.other.MyClass>
>      java.util.concurrent.Future<some.other.MyClass>
> Thus the check for returnTypeName.equals(Response.class.getName()) or returnTypeName.equals(Future.class.getName()) will ALWAYS FAIL.  Not only that, the placement of the && and || and lack of perentheses means the statement is interpreted as such:
>      answer = ( methodName.endsWith("Async")
>                     && (returnTypeName.equals(Response.class.getName()) )  ||
>                     returnTypeName.equals(Future.class.getName()));
> Ok, so the reason I'm not fixing this, is because the change over to this logic:
>      answer = methodName.endsWith("Async")
>                     && (((returnTypeName.indexOf(Response.class.getName()) == 0) ||
>                     returnTypeName.indexOf(Future.class.getName()) == 0));
> caused much test breakage.
> UNCOMMENT suite.addTestSuite(NonWrapTests.class); in JAXWSTest and fix the logic in OperationDescriptionImpl.
> I'll continue to look at this...

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