Index: module-client/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java =================================================================== --- module-client/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java (revision 643457) +++ module-client/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java Tue Apr 01 14:24:06 EDT 2008 @@ -63,7 +63,7 @@ public abstract class AbstractPooledConnAdapter extends AbstractClientConnAdapter { /** The wrapped pool entry. */ - protected AbstractPoolEntry poolEntry; + protected volatile AbstractPoolEntry poolEntry; /** Index: module-client/src/main/java/org/apache/http/impl/conn/AbstractPoolEntry.java =================================================================== --- module-client/src/main/java/org/apache/http/impl/conn/AbstractPoolEntry.java (revision 643457) +++ module-client/src/main/java/org/apache/http/impl/conn/AbstractPoolEntry.java Tue Apr 01 14:24:06 EDT 2008 @@ -69,16 +69,16 @@ public abstract class AbstractPoolEntry { /** The underlying connection being pooled or used. */ - protected OperatedClientConnection connection; + protected volatile OperatedClientConnection connection; /** The route for which this entry gets allocated. */ //@@@ currently accessed from connection manager(s) as attribute //@@@ avoid that, derived classes should decide whether update is allowed //@@@ SCCM: yes, TSCCM: no - protected HttpRoute plannedRoute; + protected volatile HttpRoute plannedRoute; /** The tracked route, or null before tracking starts. */ - protected RouteTracker tracker; + protected volatile RouteTracker tracker; /**