dims        2002/09/25 11:21:28

  Modified:    java/src/org/apache/axis/transport/http AxisServlet.java
  Log:
  Calling getContentType immediately shakes out serialization errors....
  
  Fix for 10585 - No serializer error is generated
  
  Revision  Changes    Path
  1.144     +9 -4      
xml-axis/java/src/org/apache/axis/transport/http/AxisServlet.java
  
  Index: AxisServlet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/transport/http/AxisServlet.java,v
  retrieving revision 1.143
  retrieving revision 1.144
  diff -u -r1.143 -r1.144
  --- AxisServlet.java  18 Sep 2002 16:10:30 -0000      1.143
  +++ AxisServlet.java  25 Sep 2002 18:21:28 -0000      1.144
  @@ -619,6 +619,7 @@
           }
   
           Message responseMsg = null;
  +        String  contentType = null;
   
           try {
               AxisEngine engine = getEngine();
  @@ -694,6 +695,7 @@
                   }
   
                   responseMsg = msgContext.getResponseMessage();
  +                contentType = 
responseMsg.getContentType(msgContext.getSOAPConstants()); 
               } catch (AxisFault e) {
                   log.error(Messages.getMessage("exception00"), e);
                   // It's been suggested that a lack of SOAPAction
  @@ -704,14 +706,17 @@
                     // TODO: less generic realm choice?
                   res.setStatus(status);
                   responseMsg = new Message(e);
  +                contentType = 
responseMsg.getContentType(msgContext.getSOAPConstants()); 
               } catch (Exception e) {
                   log.error(Messages.getMessage("exception00"), e);
                   res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                   responseMsg = new Message(AxisFault.makeFault(e));
  +                contentType = 
responseMsg.getContentType(msgContext.getSOAPConstants()); 
               }
           } catch (AxisFault fault) {
               log.error(Messages.getMessage("axisFault00"), fault);
               responseMsg = new Message(fault);
  +            contentType = 
responseMsg.getContentType(msgContext.getSOAPConstants()); 
           }
           if( tlog.isDebugEnabled() ) {
               t3=System.currentTimeMillis();
  @@ -720,7 +725,7 @@
           /* Send response back along the wire...  */
           /***********************************/
           if (responseMsg != null)
  -            sendResponse(getProtocolVersion(req), msgContext.getSOAPConstants(),
  +            sendResponse(getProtocolVersion(req), contentType,
                            res, responseMsg);
   
           if (isDebug) {
  @@ -767,7 +772,7 @@
        * @throws IOException if the response stream can not be written to
        */
       private void sendResponse(final String clientVersion, 
  -            SOAPConstants soapConstants,
  +            String contentType,
               HttpServletResponse res, Message responseMsg)
           throws AxisFault, IOException
       {
  @@ -780,13 +785,13 @@
           } else {
               if(isDebug) {
                   log.debug("Returned Content-Type:" +
  -                    responseMsg.getContentType(soapConstants));
  +                    contentType);
                   // log.debug("Returned Content-Length:" +
                   //          responseMsg.getContentLength());
               }
   
               try {
  -                res.setContentType(responseMsg.getContentType(soapConstants));
  +                res.setContentType(contentType);
   
                   /* My understand of Content-Length
                    * HTTP 1.0
  
  
  


Reply via email to