I am a bit tired of having "could not acquire lock on @Synchronized component: myBean". I just can't understand why changing scope of component to PAGE or SESSION makes it synchronized? I could understand for APPLICATION scope, but why those 2? Separate users should run their own instance of component and why to wait for lock? Why to put lock at all?
Right now I followed tip from forums and added
but it doesn't look the best solution for me. I've also seen a tip to move time-consuming methods outside the component. Is that true? And that simple just to create call to another class from my component?