ConnectionFactory looks like a singleton and I think could probably be rewritten toand would be as safer as a singleton. Unsynchronized concurrent calls to initializeConnectionPool() would createhave unintended side effects-effects. Take a look at http://en.wikipedia.org/wiki/Singleton_pattern to see which Java singleton pattern works best for you.