You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2007/05/12 02:59:57 UTC

svn commit: r537318 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java

Author: dims
Date: Fri May 11 17:59:57 2007
New Revision: 537318

URL: http://svn.apache.org/viewvc?view=rev&rev=537318
Log:
Don't know how this fell thru the cracks, we should not be reusing the same MessageContext, we need to create a new one every time

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java?view=diff&rev=537318&r1=537317&r2=537318
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpService.java Fri May 11 17:59:57 2007
@@ -79,7 +79,6 @@
     private final HttpProcessor httpProcessor;
     private final ConnectionReuseStrategy connStrategy;
     private final HttpResponseFactory responseFactory;
-    private final MessageContext msgContext;
     private final ConfigurationContext configurationContext;
     private final Worker worker;
 
@@ -113,8 +112,6 @@
         this.configurationContext = configurationContext;
         this.worker = worker;
 
-        this.msgContext = configurationContext.createMessageContext();
-        this.msgContext.setIncomingTransportName(Constants.TRANSPORT_HTTP);
     }
 
     public HttpParams getParams() {
@@ -128,11 +125,14 @@
     public void handleRequest(final AxisHttpConnection conn, final HttpContext context) 
             throws IOException, HttpException { 
         
+        MessageContext msgContext = configurationContext.createMessageContext();
+        msgContext.setIncomingTransportName(Constants.TRANSPORT_HTTP);
+
         if (conn instanceof HttpInetConnection) {
             HttpInetConnection inetconn = (HttpInetConnection) conn;
-            this.msgContext.setProperty(MessageContext.REMOTE_ADDR, 
+            msgContext.setProperty(MessageContext.REMOTE_ADDR,
                     inetconn.getRemoteAddress().getHostAddress());
-            this.msgContext.setProperty(MessageContext.TRANSPORT_ADDR,
+            msgContext.setProperty(MessageContext.TRANSPORT_ADDR,
                     inetconn.getLocalAddress().getHostAddress());
 
             if (LOG.isDebugEnabled()) {
@@ -180,7 +180,7 @@
             axisreq.prepare();
             
             // Run the service
-            doService(axisreq, axisres, context);
+            doService(axisreq, axisres, context, msgContext);
             
             // Make sure the request content is fully consumed
             InputStream instream = conn.getInputStream();
@@ -232,7 +232,8 @@
     protected void doService(
             final AxisHttpRequest request, 
             final AxisHttpResponse response,
-            final HttpContext context) throws HttpException, IOException {
+            final HttpContext context,
+            final MessageContext msgContext) throws HttpException, IOException {
         if (LOG.isDebugEnabled()) {
             LOG.debug("Request method: " + request.getMethod());
             LOG.debug("Target URI: " + request.getRequestURI());
@@ -245,11 +246,11 @@
                     .getTransportIn(Constants.TRANSPORT_HTTP);
 
             String sessionKey = (String) context.getAttribute(HTTPConstants.COOKIE_STRING);
-            this.msgContext.setTransportIn(transportIn);
-            this.msgContext.setTransportOut(transportOut);
-            this.msgContext.setServerSide(true);
-            this.msgContext.setProperty(HTTPConstants.COOKIE_STRING, sessionKey);
-            this.msgContext.setProperty(Constants.Configuration.TRANSPORT_IN_URL, 
+            msgContext.setTransportIn(transportIn);
+            msgContext.setTransportOut(transportOut);
+            msgContext.setServerSide(true);
+            msgContext.setProperty(HTTPConstants.COOKIE_STRING, sessionKey);
+            msgContext.setProperty(Constants.Configuration.TRANSPORT_IN_URL,
                     request.getRequestURI());
 
             // set the transport Headers
@@ -258,20 +259,20 @@
                 Header header = (Header) it.next();
                 headerMap.put(header.getName(), header.getValue());
             }
-            this.msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, 
+            msgContext.setProperty(MessageContext.TRANSPORT_HEADERS,
                     headerMap);
-            this.msgContext.setProperty(Constants.Configuration.CONTENT_TYPE, 
+            msgContext.setProperty(Constants.Configuration.CONTENT_TYPE,
                     request.getContentType());
             
-            this.msgContext.setProperty(MessageContext.TRANSPORT_OUT, 
+            msgContext.setProperty(MessageContext.TRANSPORT_OUT,
                     response.getOutputStream());
-            this.msgContext.setProperty(Constants.OUT_TRANSPORT_INFO, 
+            msgContext.setProperty(Constants.OUT_TRANSPORT_INFO,
                     response);
-            this.msgContext.setTo(new EndpointReference(request.getRequestURI()));
-            this.msgContext.setProperty(RequestResponseTransport.TRANSPORT_CONTROL,
+            msgContext.setTo(new EndpointReference(request.getRequestURI()));
+            msgContext.setProperty(RequestResponseTransport.TRANSPORT_CONTROL,
                                  new SimpleHTTPRequestResponseTransport());
             
-            this.worker.service(request, response, this.msgContext);
+            this.worker.service(request, response, msgContext);
         } catch (SocketException ex) {
             // Socket is unreliable. 
             throw ex;
@@ -282,15 +283,15 @@
 
             AxisEngine engine = new AxisEngine(this.configurationContext);
 
-            this.msgContext.setProperty(MessageContext.TRANSPORT_OUT, 
+            msgContext.setProperty(MessageContext.TRANSPORT_OUT,
                     response.getOutputStream());
-            this.msgContext.setProperty(Constants.OUT_TRANSPORT_INFO, 
+            msgContext.setProperty(Constants.OUT_TRANSPORT_INFO,
                     response);
 
             MessageContext faultContext =
                     MessageContextBuilder.createFaultMessageContext(msgContext, e);
             // If the fault is not going along the back channel we should be 202ing
-            if (AddressingHelper.isFaultRedirected(this.msgContext)) {
+            if (AddressingHelper.isFaultRedirected(msgContext)) {
                 response.setStatus(HttpStatus.SC_ACCEPTED);
             } else {
                 response.sendError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Internal server error");



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org