dims        2003/03/09 15:32:32

  Modified:    java/src/org/apache/axis/wsdl/symbolTable BindingEntry.java
                        SymbolTable.java
               java/src/org/apache/axis/i18n resource.properties
  Log:
  Fix for Bug 17766 - WSDL2Java cannot process documents with fewer operations in a 
Binding than in the corresp. portType.
  from [EMAIL PROTECTED] (Andrei Iltchenko)
  
  Revision  Changes    Path
  1.10      +8 -0      
xml-axis/java/src/org/apache/axis/wsdl/symbolTable/BindingEntry.java
  
  Index: BindingEntry.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/BindingEntry.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BindingEntry.java 30 Dec 2002 14:36:45 -0000      1.9
  +++ BindingEntry.java 9 Mar 2003 23:32:30 -0000       1.10
  @@ -64,6 +64,7 @@
   import java.util.HashMap;
   import java.util.Map;
   import java.util.ArrayList;
  +import java.util.Set;
   
   /**
   * This class represents a WSDL binding.  It encompasses the WSDL4J Binding object 
so it can
  @@ -458,6 +459,13 @@
       public void setFaults(HashMap faults) {
           this.faults = faults;
       }
  +
  +    /**
  +     * Get a [EMAIL PROTECTED] Set} of comprised [EMAIL PROTECTED] Operation} 
objects.
  +     */
  +     public Set getOperations() {
  +         return attributes.keySet();
  +     }
   
       /**
        * Set the fault body type map for the given operation.
  
  
  
  1.74      +11 -0     
xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
  
  Index: SymbolTable.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
  retrieving revision 1.73
  retrieving revision 1.74
  diff -u -r1.73 -r1.74
  --- SymbolTable.java  2 Mar 2003 19:07:36 -0000       1.73
  +++ SymbolTable.java  9 Mar 2003 23:32:30 -0000       1.74
  @@ -1178,6 +1178,7 @@
                           continue;
                       
                       Binding binding = bEntry.getBinding();
  +                    Collection bindOperations = bEntry.getOperations();
                       PortType portType = binding.getPortType();
   
                       HashMap parameters = new HashMap();
  @@ -1186,6 +1187,16 @@
                       // get parameters
                       while(operations.hasNext()) {
                           Operation operation = (Operation) operations.next();
  +
  +                        // See if the PortType operation has a corresponding
  +                        // Binding operation and report an error if it doesn't.
  +                        if (!bindOperations.contains(operation)) {
  +                            throw  new IOException(
  +                                
Messages.getMessage("emitFailNoMatchingBindOperation01",
  +                                    operation.getName(),
  +                                    portType.getQName().getLocalPart()));
  +                        }
  +
                           String namespace = portType.getQName().getNamespaceURI();
                           Parameters parms = getOperationParameters(operation,
                                                                     namespace,
  
  
  
  1.51      +1 -0      xml-axis/java/src/org/apache/axis/i18n/resource.properties
  
  Index: resource.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- resource.properties       24 Feb 2003 19:54:01 -0000      1.50
  +++ resource.properties       9 Mar 2003 23:32:32 -0000       1.51
  @@ -189,6 +189,7 @@
   emitFailNoBinding01=Emitter failure.  No binding found for port {0}
   emitFailNoBindingEntry01=Emitter failure. No binding entry found for {0}
   emitFailNoPortType01=Emitter failure.  No portType entry found for {0}
  +emitFailNoMatchingBindOperation01=Emitter failure. The operation ({0}) from 
portType ({1}) in the WSDL document has no corresponding binding operation.\nHint: 
make sure that the binding has the same number of operations as its portType.
   emitFailtUndefinedBinding01=Emitter failure.  There is an undefined binding ({0}) 
in the WSDL document.\nHint: make sure <port binding=\"..\"> is fully qualified.
   emitFailtUndefinedBinding02=Emitter failure.  There is an undefined binding ({0}) 
in the WSDL document {1}.\nHint: make sure <port binding=\"..\"> is fully qualified.
   emitFailtUndefinedMessage01=Emitter failure.  There is an undefined message ({0}) 
in the WSDL document.\nHint: make sure <input message=\"..\"> and <output 
message=".."> are fully qualified.
  
  
  

Reply via email to