I believe I am having some threading issues and I'm wondering if EngineInitializer can help me. I am using the Java APIs for ArcObjects. I have a class with a bunch of static methods that interact with some custom extensions written in VB.NET. These java methods perform functions like connecting to ArcMap and loading my extensions, loading a project, loading a layer, shutting down the application and others. These methods can be called by different java threads. Currently, only the method that connects to ArcMap calls the EngineInitializer.initializeEngine(). I'm wondering if all of the methods should call the EngineInitializer. I need all ArcObject calls to use the same thread so that the Shared variables in my extensions are shared across all users to maintain the state of the extensions. The documentation doesn't provide a very technical description of what the EnginInitializer does but I thought I saw on some charts a while back that it ensures all ArcObject calls use the STA model.