Added a lazy initialization to cover connections that are closed by the container

This commit is contained in:
travismccauley 2003-12-23 21:02:41 +00:00
parent 3e1a874653
commit 0df6a89cc3

View file

@ -80,34 +80,51 @@ public class LexRepository
/** /**
* Gets the connection attribute of the LexRepository object * Gets the connection attribute of the LexRepository object
* *
* @return The connection value * @return The connection value
* @exception LexRepositoryException Description of the Exception
* @since * @since
*/ */
private Connection getConnection() private Connection getConnection() throws LexRepositoryException
{ {
if ( null == connection || connection.isClosed() ) try
{ {
Context context = new InitialContext(); if ( null == connection || connection.isClosed() )
DataSource source = (DataSource) context.lookup( LexConstants.DATASOURCE_NAME ); {
setConnection( source.getConnection() ); Context context = new InitialContext();
DataSource source = (DataSource) context.lookup( LexConstants.DATASOURCE_NAME );
setConnection( source.getConnection() );
}
}
catch ( Exception se )
{
throw new LexRepositoryException( se );
} }
return connection; return connection;
} }
/** /**
* Gets the queryStatement attribute of the LexRepository object * Gets the queryStatement attribute of the LexRepository object
* *
* @return The queryStatement value * @return The queryStatement value
* @exception LexRepositoryException Description of the Exception
* @since * @since
*/ */
public Statement getQueryStatement() public Statement getQueryStatement() throws LexRepositoryException
{ {
if ( getConnection().isClosed() ) try
{ {
Context context = new InitialContext(); if ( getConnection().isClosed() )
DataSource source = (DataSource) context.lookup( LexConstants.DATASOURCE_NAME ); {
setConnection( source.getConnection() ); Context context = new InitialContext();
DataSource source = (DataSource) context.lookup( LexConstants.DATASOURCE_NAME );
setConnection( source.getConnection() );
}
}
catch ( Exception se )
{
throw new LexRepositoryException( se );
} }
return queryStatement; return queryStatement;
} }