You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/29 17:56:31 UTC

svn commit: r1655739 - in /tomcat/trunk/java/org/apache: coyote/http11/ tomcat/util/net/

Author: markt
Date: Thu Jan 29 16:56:30 2015
New Revision: 1655739

URL: http://svn.apache.org/r1655739
Log:
Push obtaining the remote port and local host/address/port down to the SocketWrapper

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/LocalStrings.properties
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Thu Jan 29 16:56:30 2015
@@ -902,6 +902,38 @@ public abstract class AbstractHttp11Proc
             }
             break;
         }
+        case REQ_REMOTEPORT_ATTRIBUTE: {
+            if (socketWrapper == null) {
+                request.setRemotePort(0);
+            } else {
+                request.setRemotePort(socketWrapper.getRemotePort());
+            }
+            break;
+        }
+        case REQ_LOCAL_NAME_ATTRIBUTE: {
+            if (socketWrapper == null) {
+                request.localName().recycle();
+            } else {
+                request.localName().setString(socketWrapper.getLocalName());
+            }
+            break;
+        }
+        case REQ_LOCAL_ADDR_ATTRIBUTE: {
+            if (socketWrapper == null) {
+                request.localAddr().recycle();
+            } else {
+                request.localAddr().setString(socketWrapper.getLocalAddr());
+            }
+            break;
+        }
+        case REQ_LOCALPORT_ATTRIBUTE: {
+            if (socketWrapper == null) {
+                request.setLocalPort(0);
+            } else {
+                request.setLocalPort(socketWrapper.getLocalPort());
+            }
+            break;
+        }
         default: {
             actionInternal(actionCode, param);
             break;

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Thu Jan 29 16:56:30 2015
@@ -24,10 +24,8 @@ import org.apache.coyote.ActionCode;
 import org.apache.coyote.http11.filters.BufferedInputFilter;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.jni.Address;
 import org.apache.tomcat.jni.SSL;
 import org.apache.tomcat.jni.SSLSocket;
-import org.apache.tomcat.jni.Sockaddr;
 import org.apache.tomcat.jni.Socket;
 import org.apache.tomcat.util.net.AbstractEndpoint;
 import org.apache.tomcat.util.net.AprEndpoint;
@@ -109,72 +107,6 @@ public class Http11AprProcessor extends
         long socketRef = socketWrapper.getSocket().longValue();
 
         switch (actionCode) {
-        case REQ_LOCAL_NAME_ATTRIBUTE: {
-            if (socketRef == 0) {
-                request.localName().recycle();
-            } else {
-                if (socketWrapper.getLocalName() == null) {
-                    try {
-                        long sa = Address.get(Socket.APR_LOCAL, socketRef);
-                        socketWrapper.setLocalName(Address.getnameinfo(sa, 0));
-                    } catch (Exception e) {
-                        log.warn(sm.getString("http11processor.socket.info"), e);
-                    }
-                }
-                request.localName().setString(socketWrapper.getLocalName());
-            }
-            break;
-        }
-        case REQ_LOCAL_ADDR_ATTRIBUTE: {
-            if (socketRef == 0) {
-                request.localAddr().recycle();
-            } else {
-                if (socketWrapper.getLocalAddr() == null) {
-                    try {
-                        long sa = Address.get(Socket.APR_LOCAL, socketRef);
-                        socketWrapper.setLocalAddr(Address.getip(sa));
-                    } catch (Exception e) {
-                        log.warn(sm.getString("http11processor.socket.info"), e);
-                    }
-                }
-                request.localAddr().setString(socketWrapper.getLocalAddr());
-            }
-            break;
-        }
-        case REQ_REMOTEPORT_ATTRIBUTE: {
-            if (socketRef == 0) {
-                request.setRemotePort(0);
-            } else {
-                if (socketWrapper.getRemotePort() == -1) {
-                    try {
-                        long sa = Address.get(Socket.APR_REMOTE, socketRef);
-                        Sockaddr addr = Address.getInfo(sa);
-                        socketWrapper.setRemotePort(addr.port);
-                    } catch (Exception e) {
-                        log.warn(sm.getString("http11processor.socket.info"), e);
-                    }
-                }
-                request.setRemotePort(socketWrapper.getRemotePort());
-            }
-            break;
-        }
-        case REQ_LOCALPORT_ATTRIBUTE: {
-            if (socketRef == 0) {
-                request.setLocalPort(0);
-            } else {
-                if (socketWrapper.getLocalPort() == -1) {
-                    try {
-                        long sa = Address.get(Socket.APR_LOCAL, socketRef);
-                        Sockaddr addr = Address.getInfo(sa);
-                        socketWrapper.setLocalPort(addr.port);
-                    } catch (Exception e) {
-                        log.warn(sm.getString("http11processor.socket.info"), e);
-                    }
-                }
-                request.setLocalPort(socketWrapper.getLocalPort());
-            }
-            break;
-        }
         case REQ_SSL_ATTRIBUTE: {
             if (endpoint.isSSLEnabled() && (socketRef != 0)) {
                 try {

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Thu Jan 29 16:56:30 2015
@@ -17,8 +17,6 @@
 package org.apache.coyote.http11;
 
 import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
 
 import javax.net.ssl.SSLEngine;
 
@@ -111,71 +109,6 @@ public class Http11Nio2Processor extends
     public void actionInternal(ActionCode actionCode, Object param) {
 
         switch (actionCode) {
-        case REQ_LOCAL_NAME_ATTRIBUTE: {
-            if (socketWrapper == null || socketWrapper.getSocket() == null) {
-                request.localName().recycle();
-            } else {
-                if (socketWrapper.getLocalName() == null) {
-                    InetAddress inetAddr = null;
-                    try {
-                        inetAddr = ((InetSocketAddress) socketWrapper.getSocket().getIOChannel().getLocalAddress()).getAddress();
-                    } catch (IOException e) {
-                        // Ignore
-                    }
-                    if (inetAddr != null) {
-                        socketWrapper.setLocalName(inetAddr.getHostName());
-                    }
-                }
-                request.localName().setString(socketWrapper.getLocalName());
-            }
-            break;
-        }
-        case REQ_LOCAL_ADDR_ATTRIBUTE: {
-            if (socketWrapper == null || socketWrapper.getSocket() == null) {
-                request.localAddr().recycle();
-            } else {
-                if (socketWrapper.getLocalAddr() == null) {
-                    try {
-                        socketWrapper.setLocalAddr(
-                                ((InetSocketAddress) socketWrapper.getSocket().getIOChannel().getLocalAddress()).getAddress().getHostAddress());
-                    } catch (IOException e) {
-                        // Ignore
-                    }
-                }
-                request.localAddr().setString(socketWrapper.getLocalAddr());
-            }
-            break;
-        }
-        case REQ_REMOTEPORT_ATTRIBUTE: {
-            if (socketWrapper == null || socketWrapper.getSocket() == null) {
-                request.setRemotePort(0);
-            } else {
-                if (socketWrapper.getRemotePort() == -1) {
-                    try {
-                        socketWrapper.setRemotePort(((InetSocketAddress) socketWrapper.getSocket().getIOChannel().getRemoteAddress()).getPort());
-                    } catch (IOException e) {
-                        // Ignore
-                    }
-                }
-                request.setRemotePort(socketWrapper.getRemotePort());
-            }
-            break;
-        }
-        case REQ_LOCALPORT_ATTRIBUTE: {
-            if (socketWrapper == null || socketWrapper.getSocket() == null) {
-                request.setLocalPort(0);
-            } else {
-                if (socketWrapper.getLocalPort() == -1) {
-                    try {
-                        socketWrapper.setLocalPort(((InetSocketAddress) socketWrapper.getSocket().getIOChannel().getLocalAddress()).getPort());
-                    } catch (IOException e) {
-                        // Ignore
-                    }
-                }
-                request.setLocalPort(socketWrapper.getLocalPort());
-            }
-            break;
-        }
         case REQ_SSL_ATTRIBUTE: {
             try {
                 if (sslSupport != null) {

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Thu Jan 29 16:56:30 2015
@@ -17,7 +17,6 @@
 package org.apache.coyote.http11;
 
 import java.io.IOException;
-import java.net.InetAddress;
 
 import javax.net.ssl.SSLEngine;
 
@@ -98,54 +97,6 @@ public class Http11NioProcessor extends
     public void actionInternal(ActionCode actionCode, Object param) {
 
         switch (actionCode) {
-        case REQ_LOCAL_NAME_ATTRIBUTE: {
-            if (socketWrapper == null) {
-                request.localName().recycle();
-            } else {
-                if (socketWrapper.getLocalName() == null) {
-                    InetAddress inetAddr = socketWrapper.getSocket().getIOChannel().socket().getLocalAddress();
-                    if (inetAddr != null) {
-                        socketWrapper.setLocalName(inetAddr.getHostName());
-                    }
-                }
-                request.localName().setString(socketWrapper.getLocalName());
-            }
-            break;
-        }
-        case REQ_LOCAL_ADDR_ATTRIBUTE: {
-            if (socketWrapper == null) {
-                request.localAddr().recycle();
-            } else {
-                if (socketWrapper.getLocalAddr() == null) {
-                    socketWrapper.setLocalAddr(
-                            socketWrapper.getSocket().getIOChannel().socket().getLocalAddress().getHostAddress());
-                }
-                request.localAddr().setString(socketWrapper.getLocalAddr());
-            }
-            break;
-        }
-        case REQ_REMOTEPORT_ATTRIBUTE: {
-            if (socketWrapper == null) {
-                request.setRemotePort(0);
-            } else {
-                if (socketWrapper.getRemotePort() == -1) {
-                    socketWrapper.setRemotePort(socketWrapper.getSocket().getIOChannel().socket().getPort());
-                }
-                request.setRemotePort(socketWrapper.getRemotePort());
-            }
-            break;
-        }
-        case REQ_LOCALPORT_ATTRIBUTE: {
-            if (socketWrapper == null) {
-                request.setLocalPort(0);
-            } else {
-                if (socketWrapper.getLocalPort() == -1) {
-                    socketWrapper.setLocalPort(socketWrapper.getSocket().getIOChannel().socket().getLocalPort());
-                }
-                request.setLocalPort(socketWrapper.getLocalPort());
-            }
-            break;
-        }
         case REQ_SSL_ATTRIBUTE: {
             try {
                 if (sslSupport != null) {

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Thu Jan 29 16:56:30 2015
@@ -2685,5 +2685,67 @@ public class AprEndpoint extends Abstrac
                 log.warn(sm.getString("endpoint.warn.noRemoteHost", getSocket()), e);
             }
         }
+
+
+        @Override
+        protected void populateRemotePort() {
+            long socket = getSocket().longValue();
+            if (socket == 0) {
+                return;
+            }
+            try {
+                long sa = Address.get(Socket.APR_REMOTE, socket);
+                Sockaddr addr = Address.getInfo(sa);
+                remotePort = addr.port;
+            } catch (Exception e) {
+                log.warn(sm.getString("endpoint.warn.noRemotePort", getSocket()), e);
+            }
+        }
+
+
+        @Override
+        protected void populateLocalName() {
+            long socket = getSocket().longValue();
+            if (socket == 0) {
+                return;
+            }
+            try {
+                long sa = Address.get(Socket.APR_LOCAL, socket);
+                localName =Address.getnameinfo(sa, 0);
+            } catch (Exception e) {
+                log.warn(sm.getString("endpoint.warn.noLocalName"), e);
+            }
+        }
+
+
+        @Override
+        protected void populateLocalAddr() {
+            long socket = getSocket().longValue();
+            if (socket == 0) {
+                return;
+            }
+            try {
+                long sa = Address.get(Socket.APR_LOCAL, socket);
+                localAddr = Address.getip(sa);
+            } catch (Exception e) {
+                log.warn(sm.getString("endpoint.warn.noLocalAddr"), e);
+            }
+        }
+
+
+        @Override
+        protected void populateLocalPort() {
+            long socket = getSocket().longValue();
+            if (socket == 0) {
+                return;
+            }
+            try {
+                long sa = Address.get(Socket.APR_LOCAL, socket);
+                Sockaddr addr = Address.getInfo(sa);
+                localPort = addr.port;
+            } catch (Exception e) {
+                log.warn(sm.getString("endpoint.warn.noLocalPort"), e);
+            }
+        }
     }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/LocalStrings.properties?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/LocalStrings.properties Thu Jan 29 16:56:30 2015
@@ -25,7 +25,11 @@ endpoint.warn.noInsecureReneg=Secure re-
 endpoint.warn.unlockAcceptorFailed=Acceptor thread [{0}] failed to unlock. Forcing hard socket shutdown.
 endpoint.warn.executorShutdown=The executor associated with thread pool [{0}] has not fully shutdown. Some application threads may still be running.
 endpoint.warn.noRemoteAddr=Unable to determine remote address for socket [{0}]
-endpoint.warn.noRemoteHost=Unable to determine remote host for socket [{0}]
+endpoint.warn.noRemoteHost=Unable to determine remote host name for socket [{0}]
+endpoint.warn.noRemotePort=Unable to determine remote port for socket [{0}]
+endpoint.warn.noLocalAddr=Unable to determine local address for socket [{0}]
+endpoint.warn.noLocalName=Unable to determine local host name for socket [{0}]
+endpoint.warn.noLocalPort=Unable to determine local port for socket [{0}]
 endpoint.debug.channelCloseFail=Failed to close channel
 endpoint.debug.destroySocket=Destroying socket [{0}]
 endpoint.debug.pollerAdd=Add to addList socket [{0}], timeout [{1}], flags [{2}]

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Thu Jan 29 16:56:30 2015
@@ -237,7 +237,9 @@ public class Nio2Endpoint extends Abstra
     // --------------------------------------------------------- Public Methods
 
     /**
-     * Number of keepalive sockets.
+     * Number of keep-alive sockets.
+     *
+     * @return Always returns -1.
      */
     public int getKeepAliveCount() {
         // For this connector, only the overall connection count is relevant
@@ -1340,6 +1342,62 @@ public class Nio2Endpoint extends Abstra
                 }
             }
         }
+
+
+        @Override
+        protected void populateRemotePort() {
+            SocketAddress socketAddress = null;
+            try {
+                socketAddress = getSocket().getIOChannel().getRemoteAddress();
+            } catch (IOException e) {
+                log.warn(sm.getString("endpoint.warn.noRemotePort", getSocket()), e);
+            }
+            if (socketAddress instanceof InetSocketAddress) {
+                remotePort = ((InetSocketAddress) socketAddress).getPort();
+            }
+        }
+
+
+        @Override
+        protected void populateLocalName() {
+            SocketAddress socketAddress = null;
+            try {
+                socketAddress = getSocket().getIOChannel().getLocalAddress();
+            } catch (IOException e) {
+                log.warn(sm.getString("endpoint.warn.noLocalName", getSocket()), e);
+            }
+            if (socketAddress instanceof InetSocketAddress) {
+                localName = ((InetSocketAddress) socketAddress).getHostName();
+            }
+        }
+
+
+        @Override
+        protected void populateLocalAddr() {
+            SocketAddress socketAddress = null;
+            try {
+                socketAddress = getSocket().getIOChannel().getLocalAddress();
+            } catch (IOException e) {
+                log.warn(sm.getString("endpoint.warn.noLocalAddr", getSocket()), e);
+            }
+            if (socketAddress instanceof InetSocketAddress) {
+                localAddr = ((InetSocketAddress) socketAddress).getAddress().getHostAddress();
+            }
+        }
+
+
+        @Override
+        protected void populateLocalPort() {
+            SocketAddress socketAddress = null;
+            try {
+                socketAddress = getSocket().getIOChannel().getLocalAddress();
+            } catch (IOException e) {
+                log.warn(sm.getString("endpoint.warn.noLocalPort", getSocket()), e);
+            }
+            if (socketAddress instanceof InetSocketAddress) {
+                localPort = ((InetSocketAddress) socketAddress).getPort();
+            }
+        }
     }
 
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Jan 29 16:56:30 2015
@@ -193,7 +193,9 @@ public class NioEndpoint extends Abstrac
     private Poller[] pollers = null;
     private AtomicInteger pollerRotater = new AtomicInteger(0);
     /**
-     * Return an available poller in true round robin fashion
+     * Return an available poller in true round robin fashion.
+     *
+     * @return The next poller in sequence
      */
     public Poller getPoller0() {
         int idx = Math.abs(pollerRotater.incrementAndGet()) % pollers.length;
@@ -290,7 +292,10 @@ public class NioEndpoint extends Abstrac
 
     // --------------------------------------------------------- Public Methods
     /**
-     * Number of keepalive sockets.
+     * Number of keep-alive sockets.
+     *
+     * @return The number of sockets currently in the keep-alive state waiting
+     *         for the next request to be received on the socket
      */
     public int getKeepAliveCount() {
         if (pollers == null) {
@@ -1566,6 +1571,36 @@ public class NioEndpoint extends Abstrac
                 }
             }
         }
+
+
+        @Override
+        protected void populateRemotePort() {
+            remotePort = getSocket().getIOChannel().socket().getPort();
+        }
+
+
+        @Override
+        protected void populateLocalName() {
+            InetAddress inetAddr = getSocket().getIOChannel().socket().getLocalAddress();
+            if (inetAddr != null) {
+                localName = inetAddr.getHostName();
+            }
+        }
+
+
+        @Override
+        protected void populateLocalAddr() {
+            InetAddress inetAddr = getSocket().getIOChannel().socket().getLocalAddress();
+            if (inetAddr != null) {
+                localAddr = inetAddr.getHostAddress();
+            }
+        }
+
+
+        @Override
+        protected void populateLocalPort() {
+            localPort = getSocket().getIOChannel().socket().getLocalPort();
+        }
     }
 
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1655739&r1=1655738&r2=1655739&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Thu Jan 29 16:56:30 2015
@@ -158,14 +158,6 @@ public abstract class SocketWrapperBase<
     public int decrementKeepAlive() { return (--keepAliveLeft);}
     public boolean isKeptAlive() {return keptAlive;}
     public void setKeptAlive(boolean keptAlive) {this.keptAlive = keptAlive;}
-    public int getLocalPort() { return localPort; }
-    public void setLocalPort(int localPort) {this.localPort = localPort; }
-    public String getLocalName() { return localName; }
-    public void setLocalName(String localName) {this.localName = localName; }
-    public String getLocalAddr() { return localAddr; }
-    public void setLocalAddr(String localAddr) {this.localAddr = localAddr; }
-    public int getRemotePort() { return remotePort; }
-    public void setRemotePort(int remotePort) {this.remotePort = remotePort; }
 
     public String getRemoteHost() {
         if (remoteHost == null) {
@@ -183,6 +175,38 @@ public abstract class SocketWrapperBase<
     }
     protected abstract void populateRemoteAddr();
 
+    public int getRemotePort() {
+        if (remotePort == -1) {
+            populateRemotePort();
+        }
+        return remotePort;
+    }
+    protected abstract void populateRemotePort();
+
+    public String getLocalName() {
+        if (localName == null) {
+            populateLocalName();
+        }
+        return localName;
+    }
+    protected abstract void populateLocalName();
+
+    public String getLocalAddr() {
+        if (localAddr == null) {
+            populateLocalAddr();
+        }
+        return localAddr;
+    }
+    protected abstract void populateLocalAddr();
+
+    public int getLocalPort() {
+        if (localPort == -1) {
+            populateLocalPort();
+        }
+        return localPort;
+    }
+    protected abstract void populateLocalPort();
+
     public boolean getBlockingStatus() { return blockingStatus; }
     public void setBlockingStatus(boolean blockingStatus) {
         this.blockingStatus = blockingStatus;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org