Sergey, That's very interesting: I optimized the renderer to be perfectly scalable (thread local), but I agree there are still several places with static fields (single thread optimization) or synchronized methods...
The main issue which I would like to clarify is it possible to remove synchronize keyword from the getLocalGraphicsEnvironment(), possibly with updating a specification? We have similar issues in other parts of code which I would like to update later after this one. Could you give more details on your findings ? I recently figured out that TexturePaint suffers such a problem... Regards, Laurent