You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by jl...@apache.org on 2007/06/13 08:09:42 UTC

svn commit: r546745 - /incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ProviderInDatabindingInterceptor.java

Author: jliu
Date: Tue Jun 12 23:09:41 2007
New Revision: 546745

URL: http://svn.apache.org/viewvc?view=rev&rev=546745
Log:
Fix NoSuchElementException in ProviderInDatabindingInterce.

Modified:
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ProviderInDatabindingInterceptor.java

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ProviderInDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ProviderInDatabindingInterceptor.java?view=diff&rev=546745&r1=546744&r2=546745
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ProviderInDatabindingInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/ProviderInDatabindingInterceptor.java Tue Jun 12 23:09:41 2007
@@ -41,7 +41,7 @@
 public class ProviderInDatabindingInterceptor extends AbstractInDatabindingInterceptor {
 
     Class type;
-    
+
     public ProviderInDatabindingInterceptor(Class type) {
         super(Phase.UNMARSHAL);
         addAfter(URIMappingInterceptor.class.getName());
@@ -51,20 +51,22 @@
     public void handleMessage(Message message) throws Fault {
         Exchange ex = message.getExchange();
         Endpoint e = ex.get(Endpoint.class);
-        BindingOperationInfo bop = e.getEndpointInfo().getBinding().getOperations().iterator().next();
-        ex.put(BindingOperationInfo.class, bop);
-        getMessageInfo(message, bop);
-        
+        if (e.getEndpointInfo().getBinding().getOperations().iterator().hasNext()) {
+            BindingOperationInfo bop = e.getEndpointInfo().getBinding().getOperations().iterator().next();
+            ex.put(BindingOperationInfo.class, bop);
+            getMessageInfo(message, bop);
+        }
+
         List<Object> params = new ArrayList<Object>();
-        
+
         if (isGET(message)) {
             params.add(null);
             message.setContent(Object.class, params);
             return;
         }
-        
+
         Service s = ex.get(Service.class);
-        
+
         if (SOAPMessage.class.equals(type)) {
             SOAPMessage msg = message.getContent(SOAPMessage.class);
             params.add(msg);
@@ -74,14 +76,14 @@
             if (r != null) {
                 if (r instanceof W3CDOMStreamReader) {
                     Node nd = ((W3CDOMStreamReader)r).getCurrentElement();
-                    DataReader<Node> reader = 
+                    DataReader<Node> reader =
                         s.getDataBinding().createReader(Node.class);
                     Object object = reader.read(null, nd, type);
                     params.add(object);
                 } else {
-                    DataReader<XMLStreamReader> reader = 
+                    DataReader<XMLStreamReader> reader =
                         s.getDataBinding().createReader(XMLStreamReader.class);
-                    
+
                     Object object = reader.read(null, r, type);
                     params.add(object);
                 }