tomj        2005/05/31 12:46:14

  Modified:    java/src/org/apache/axis/transport/http HTTPSender.java
               java/src/org/apache/axis/i18n resource.properties
  Log:
  Fix bug 2027 - HTTPSender throws ArrayIndexOutOfBoundsException
    http://issues.apache.org/jira/browse/AXIS-2027
  
  Add defensive code and throw an error if we do not find a content-Type header.
  Add message in the properties file.
  
  Revision  Changes    Path
  1.127     +8 -2      
ws-axis/java/src/org/apache/axis/transport/http/HTTPSender.java
  
  Index: HTTPSender.java
  ===================================================================
  RCS file: 
/home/cvs/ws-axis/java/src/org/apache/axis/transport/http/HTTPSender.java,v
  retrieving revision 1.126
  retrieving revision 1.127
  diff -u -r1.126 -r1.127
  --- HTTPSender.java   20 Apr 2005 22:18:58 -0000      1.126
  +++ HTTPSender.java   31 May 2005 19:46:13 -0000      1.127
  @@ -327,12 +327,18 @@
           MimeHeaders mimeHeaders = reqMessage.getMimeHeaders();
   
           if (posting) {
  -                String contentType;
  -            if (mimeHeaders.getHeader(HTTPConstants.HEADER_CONTENT_TYPE) != 
null) {
  +            String contentType;
  +            final String[] header = 
mimeHeaders.getHeader(HTTPConstants.HEADER_CONTENT_TYPE);
  +            if (header != null && header.length > 0) {
                   contentType = 
mimeHeaders.getHeader(HTTPConstants.HEADER_CONTENT_TYPE)[0];
               } else {
                   contentType = 
reqMessage.getContentType(msgContext.getSOAPConstants());
               }
  +            
  +            //fix for AXIS-2027
  +            if (contentType == null || contentType.equals("")) {
  +             throw new Exception(Messages.getMessage("missingContentType"));
  +            }
               header2.append(HTTPConstants.HEADER_CONTENT_TYPE)
                       .append(": ")
                       .append(contentType)
  
  
  
  1.118     +1 -0      ws-axis/java/src/org/apache/axis/i18n/resource.properties
  
  Index: resource.properties
  ===================================================================
  RCS file: 
/home/cvs/ws-axis/java/src/org/apache/axis/i18n/resource.properties,v
  retrieving revision 1.117
  retrieving revision 1.118
  diff -u -r1.117 -r1.118
  --- resource.properties       22 Apr 2005 13:59:29 -0000      1.117
  +++ resource.properties       31 May 2005 19:46:13 -0000      1.118
  @@ -1073,6 +1073,7 @@
   NullDelegate=Null delegate passed to TypeMappingDelegate constructor
   optionWrapArrays=Prefers building beans to straight arrays for wrapped XML 
array types (defaults to off).
   useStubsGetCallMethod=Please use Stub's _getCall method 
  +missingContentType=A HTTP POST request mandates a contentType HTTP header.
   
   #                                                                    #
   # In-use keys                                                        #
  
  
  

Reply via email to