You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sc...@apache.org on 2011/01/20 22:34:57 UTC

svn commit: r1061531 - in /tuscany/sca-java-2.x/trunk/modules: assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/ interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/ interface-wsdl/src/main/java/org/apache/tuscany/...

Author: scottkurz
Date: Thu Jan 20 21:34:57 2011
New Revision: 1061531

URL: http://svn.apache.org/viewvc?rev=1061531&view=rev
Log:
Fix IndexOutOfBoundsException from TUSCANY-3819 fix.

Modified:
    tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
    tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
    tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java

Modified: tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java?rev=1061531&r1=1061530&r2=1061531&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java Thu Jan 20 21:34:57 2011
@@ -64,7 +64,7 @@ public class OperationImpl implements Op
     private List<Intent> requiredIntents = new ArrayList<Intent>();
     private ExtensionType type;
     private DataType<List<DataType>> outputType;
-    private boolean hasMultipleOutputs;
+    private boolean hasArrayWrappedOutput;
 
     /**
      * @param name
@@ -301,11 +301,11 @@ public class OperationImpl implements Op
     }
 
     public boolean hasArrayWrappedOutput() {
-        return this.hasMultipleOutputs;
+        return this.hasArrayWrappedOutput;
     }
 
     public void setHasArrayWrappedOutput(boolean value) {
-        this.hasMultipleOutputs = value;
+        this.hasArrayWrappedOutput = value;
     }
 
 }

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java?rev=1061531&r1=1061530&r2=1061531&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java Thu Jan 20 21:34:57 2011
@@ -298,13 +298,13 @@ public class JavaInterfaceImpl extends I
      */
     private boolean isAsyncServerOperation( Operation operation ) {
     	// Async form operations have:
-    	// 1) void return type
+    	// 1) void return type (equivalent to an output logical List of size '0')
     	// 2) name ending in "Async"
     	// 3) final parameter which is of ResponseDispatch<?> type
-    	DataType<?> response = operation.getOutputType().getLogical().get(0);
-    	if( response != null ) {
-    	   if ( response.getPhysical() != void.class ) return false;
-    	} // end if
+    	int size = operation.getOutputType().getLogical().size();
+    	if (size != 0) {
+    	    return false;
+    	}
     	
     	if ( !operation.getName().endsWith("Async") ) return false;
     	

Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java?rev=1061531&r1=1061530&r2=1061531&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java Thu Jan 20 21:34:57 2011
@@ -38,6 +38,8 @@ import org.apache.tuscany.sca.contributi
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.interfacedef.ParameterMode;
+
 import static org.apache.tuscany.sca.interfacedef.Operation.IDL_INPUT;
 import static org.apache.tuscany.sca.interfacedef.Operation.IDL_OUTPUT;
 import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
@@ -209,7 +211,12 @@ public class WSDLOperationIntrospectorIm
             operationModel.setName(operation.getName());
             operationModel.setFaultTypes(getFaultTypes());
             operationModel.setNonBlocking(oneway);
-            operationModel.setInputType(getInputType());
+            DataType<List<DataType>> inputType = getInputType(); 
+            operationModel.setInputType(inputType);
+            List<ParameterMode> modes = operationModel.getParameterModes();
+            for (DataType dt : inputType.getLogical()) {
+                modes.add(ParameterMode.IN);                
+            }
             operationModel.setOutputType(getOutputType());
 
             operationModel.setWrapperStyle(isWrapperStyle());