You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Mike Mahoney (Created) (JIRA)" <ji...@apache.org> on 2011/12/19 21:29:30 UTC

[jira] [Created] (VYSPER-301) NamespaceHandlerDictionary does not recognize IQ error stanza namespaces

NamespaceHandlerDictionary does not recognize IQ error stanza namespaces
------------------------------------------------------------------------

                 Key: VYSPER-301
                 URL: https://issues.apache.org/jira/browse/VYSPER-301
             Project: VYSPER
          Issue Type: Bug
          Components: stanza routing
            Reporter: Mike Mahoney
            Priority: Minor


If an IQ error stanza contains the original sender XML then NamespaceHandlerDictionary.get() uses the IQ's namespace, instead of the original sender's namespace.  This prevents custom IQ handlers from ever being invoked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VYSPER-301) NamespaceHandlerDictionary does not recognize IQ error stanza namespaces

Posted by "Niklas Gustavsson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13176337#comment-13176337 ] 

Niklas Gustavsson commented on VYSPER-301:
------------------------------------------

Would the following diff solve the problem for you?


Index: server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceHandlerDictionary.java
===================================================================
--- server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceHandlerDictionary.java	(revision 1225015)
+++ server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceHandlerDictionary.java	(working copy)
@@ -53,12 +53,17 @@
     @Override
     public StanzaHandler get(Stanza stanza) {
         String namespace;
-        if(stanza.getVerifier().subElementsPresentExact(1)) {
+        int noChilds = stanza.getInnerElements().size();
+        if(noChilds == 1) {
             namespace = stanza.getFirstInnerElement().getNamespaceURI();
+        } else if(noChilds == 2 && "error".equals(stanza.getAttributeValue("type"))) {
+            // rfc3920/9.3.2
+            // error stanza with original message as first child
+            namespace = stanza.getFirstInnerElement().getNamespaceURI();
         } else {
             namespace = stanza.getNamespaceURI();
         }
-        
+
         if(namespace != null && namespace.equals(namespaceURI)) {
             return super.get(stanza);
         } else {

                
> NamespaceHandlerDictionary does not recognize IQ error stanza namespaces
> ------------------------------------------------------------------------
>
>                 Key: VYSPER-301
>                 URL: https://issues.apache.org/jira/browse/VYSPER-301
>             Project: VYSPER
>          Issue Type: Bug
>          Components: stanza routing
>            Reporter: Mike Mahoney
>            Priority: Minor
>
> If an IQ error stanza contains the original sender XML then NamespaceHandlerDictionary.get() uses the IQ's namespace, instead of the original sender's namespace.  This prevents custom IQ handlers from ever being invoked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (VYSPER-301) NamespaceHandlerDictionary does not recognize IQ error stanza namespaces

Posted by "Mike Mahoney (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VYSPER-301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13178901#comment-13178901 ] 

Mike Mahoney commented on VYSPER-301:
-------------------------------------

I haven't actually incorporated this into our code, but yes, it does look like it would fix the problem.
                
> NamespaceHandlerDictionary does not recognize IQ error stanza namespaces
> ------------------------------------------------------------------------
>
>                 Key: VYSPER-301
>                 URL: https://issues.apache.org/jira/browse/VYSPER-301
>             Project: VYSPER
>          Issue Type: Bug
>          Components: stanza routing
>            Reporter: Mike Mahoney
>            Priority: Minor
>
> If an IQ error stanza contains the original sender XML then NamespaceHandlerDictionary.get() uses the IQ's namespace, instead of the original sender's namespace.  This prevents custom IQ handlers from ever being invoked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira