2828import java .util .Arrays ;
2929import java .util .Calendar ;
3030import java .util .Collection ;
31- import java .util .Collections ;
3231import java .util .HashMap ;
3332import java .util .Map ;
34- import java .util .Set ;
3533import java .util .concurrent .ConcurrentHashMap ;
3634
3735import org .apache .commons .logging .Log ;
@@ -63,8 +61,9 @@ public abstract class StatementCreatorUtils {
6361
6462 private static final Log logger = LogFactory .getLog (StatementCreatorUtils .class );
6563
66- static final Set <String > driversWithNoSupportForGetParameterType =
67- Collections .newSetFromMap (new ConcurrentHashMap <String , Boolean >(1 ));
64+ // Using a ConcurrentHashMap as a Set (for Java 5 compatibility)
65+ static final Map <String , Boolean > driversWithNoSupportForGetParameterType =
66+ new ConcurrentHashMap <String , Boolean >(1 );
6867
6968 private static final Map <Class <?>, Integer > javaTypeToSqlTypeMap = new HashMap <Class <?>, Integer >(32 );
7069
@@ -233,7 +232,7 @@ private static void setNull(PreparedStatement ps, int paramIndex, int sqlType, S
233232 try {
234233 dbmd = ps .getConnection ().getMetaData ();
235234 jdbcDriverName = dbmd .getDriverName ();
236- checkGetParameterType = !driversWithNoSupportForGetParameterType .contains (jdbcDriverName );
235+ checkGetParameterType = !driversWithNoSupportForGetParameterType .containsKey (jdbcDriverName );
237236 }
238237 catch (Throwable ex ) {
239238 logger .debug ("Could not check connection metadata" , ex );
@@ -260,7 +259,7 @@ private static void setNull(PreparedStatement ps, int paramIndex, int sqlType, S
260259 jdbcDriverName = dbmd .getDriverName ();
261260 }
262261 if (checkGetParameterType ) {
263- driversWithNoSupportForGetParameterType .add (jdbcDriverName );
262+ driversWithNoSupportForGetParameterType .put (jdbcDriverName , Boolean . TRUE );
264263 }
265264 String databaseProductName = dbmd .getDatabaseProductName ();
266265 if (databaseProductName .startsWith ("Informix" ) ||
0 commit comments