[jbossws-commits] JBossWS SVN: r14355 - stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/jaxws/client.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Tue May 10 19:51:09 EDT 2011


Author: richard.opalka at jboss.com
Date: 2011-05-10 19:51:09 -0400 (Tue, 10 May 2011)
New Revision: 14355

Modified:
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java
Log:
[JBPAPP-6435][JBWS-3293] fixing dispatch impl to call registered handlers

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java	2011-05-10 23:49:15 UTC (rev 14354)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java	2011-05-10 23:51:09 UTC (rev 14355)
@@ -159,13 +159,9 @@
             handlerResolver.initHandlerChain(ecmd, HandlerType.POST, true);
             
             PortInfo portInfo = epMetaData.getPortInfo();
-            List<Handler> preChain = handlerResolver.getHandlerChain(portInfo, HandlerType.PRE);
-            List<Handler> epChain = handlerResolver.getHandlerChain(portInfo, HandlerType.ENDPOINT);
-            List<Handler> postChain = handlerResolver.getHandlerChain(portInfo, HandlerType.POST);
-            
-            binding.setHandlerChain(preChain, HandlerType.PRE);
-            binding.setHandlerChain(epChain, HandlerType.ENDPOINT);
-            binding.setHandlerChain(postChain, HandlerType.POST);
+            this.appendHandlers(HandlerType.PRE, portInfo, binding);
+            this.appendHandlers(HandlerType.ENDPOINT, portInfo, binding);
+            this.appendHandlers(HandlerType.POST, portInfo, binding);
          }
          
          retObj = invokeInternalSOAP(obj);
@@ -177,6 +173,21 @@
       return retObj;
    }
 
+   private void appendHandlers(final HandlerType handlerType, final PortInfo portInfo, final BindingExt binding)
+   {
+      final List<Handler> resolverHandlerChain = this.handlerResolver.getHandlerChain(portInfo, handlerType);
+      final List<Handler> bindingHandlerChain = binding.getHandlerChain(handlerType);
+      
+      if (bindingHandlerChain == null || bindingHandlerChain.size() == 0)
+      {
+         binding.setHandlerChain(resolverHandlerChain, handlerType);
+      }
+      else
+      {
+         bindingHandlerChain.addAll(resolverHandlerChain);
+      }
+   }
+
    private Object invokeInternalSOAP(Object obj) throws Exception
    {
       Object retObj = null;



More information about the jbossws-commits mailing list