You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/07/12 02:18:52 UTC
cvs commit: jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/connection DefaultConnectionManager.java
donaldp 2002/07/11 17:18:52
Modified: src/java/org/apache/avalon/cornerstone/blocks/connection
DefaultConnectionManager.java
Log:
Synchronized some mnethods to avoid corruption when creating connections
Revision Changes Path
1.19 +15 -12 jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/connection/DefaultConnectionManager.java
Index: DefaultConnectionManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/connection/DefaultConnectionManager.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- DefaultConnectionManager.java 18 May 2002 13:30:08 -0000 1.18
+++ DefaultConnectionManager.java 12 Jul 2002 00:18:52 -0000 1.19
@@ -31,7 +31,7 @@
extends AbstractLogEnabled
implements ConnectionManager, Serviceable, Disposable
{
- private HashMap m_connections = new HashMap();
+ private final HashMap m_connections = new HashMap();
private ThreadManager m_threadManager;
/**
@@ -54,7 +54,8 @@
}
catch( final Exception e )
{
- getLogger().warn( "Error disconnecting " + names[ i ], e );
+ final String message = "Error disconnecting " + names[ i ];
+ getLogger().warn( message, e );
}
}
}
@@ -70,16 +71,16 @@
* @param threadPool the thread pool to use
* @exception Exception if an error occurs
*/
- public void connect( String name,
- ServerSocket socket,
- ConnectionHandlerFactory handlerFactory,
- ThreadPool threadPool )
+ public synchronized void connect( String name,
+ ServerSocket socket,
+ ConnectionHandlerFactory handlerFactory,
+ ThreadPool threadPool )
throws Exception
{
if( null != m_connections.get( name ) )
{
- throw new IllegalArgumentException( "Connection already exists with name " +
- name );
+ final String message = "Connection already exists with name " + name;
+ throw new IllegalArgumentException( message );
}
//Make sure timeout is specified for socket.
@@ -88,7 +89,8 @@
socket.setSoTimeout( 500 );
}
- final Connection runner = new Connection( socket, handlerFactory, threadPool );
+ final Connection runner =
+ new Connection( socket, handlerFactory, threadPool );
setupLogger( runner );
m_connections.put( name, runner );
threadPool.execute( runner );
@@ -133,14 +135,15 @@
* @param tearDown if true will forcefully tear down all handlers
* @exception Exception if an error occurs
*/
- public void disconnect( final String name, final boolean tearDown )
+ public synchronized void disconnect( final String name, final boolean tearDown )
throws Exception
{
final Connection connection = (Connection)m_connections.remove( name );
if( null == connection )
{
- throw new IllegalArgumentException( "No such connection with name " +
- name );
+ final String message =
+ "No such connection with name " + name;
+ throw new IllegalArgumentException( message );
}
//TODO: Stop ignoring tearDown
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>