xxxxxxx
-
2007-10-25
- priority: 5 --> 9
The problem is in class IndexerFactory, in the static member called "indexer". Whenever any of the "getIndexer(...)" methods is called it creates a new indexer and assigns it to this member. This works fine in single-threaded environments, but in multi-threaded ones, there can be collisions between different threads entering at the same time into the "getIndexer()" functions leading to a disaster.
I suggest that a local variable is used instead.