Atom
Atom

Reputation: 616

java/swing: gui froze, no thread suspended

To start with it is a huge application and the problem concerns many lines so I can't really attach any code.

After a change that consists mainly of clearing and re-adding elements to some collection, swing GUI of the application freezes. That freeze doesn't happen while that added code is executed but some time afterwards. What makes it strange is that no thread is suspended.

My question is whether the infinite loop is the only explanation of this problem. It feels unlikely to me that this is the case because the added code finishes without problems. There may be some unsynchronized collection access issue, but I don't see it leading to that situation. It doesn't look also like we are dealing with a deadlock coming from synchronization problem since no thread is suspended.

Upvotes: 1

Views: 470

Answers (4)

Atom
Atom

Reputation: 616

In the end it is a deadlock.

My team leader told me that threads waiting on monitor (on "synchronized") aren't shown in eclipse as suspended. He found some two threads and asked to pause them. Then I saw they are waiting for each other to release the occupied monitors.

The deadlock isn't fault of the code I entered. It's just that the change I made revealed wrong synchronization in some other place.

Thank you all for trying to help me, I really appreciate it. It is my first question on stackoverflow and I was surprised how fast had you reacted.

Upvotes: 1

dinukadev
dinukadev

Reputation: 2297

You might already know this, but just for the sake of it i would say that if you have not used a Swing worker in your long running processes within your app, this would be a ideal situation to use it.

Upvotes: 0

vishal_aim
vishal_aim

Reputation: 7854

It may be because of waiting (due to some heavy processing) in Event dispatcher thread in swing where events are executed. Ideally you should execute any resource intensive task in a separate thread so that UI doesn't freeze

Upvotes: 0

hyde
hyde

Reputation: 62777

Huge application + manipulating collections -> garbage collector kicks in?

Some related reading here at SO: side effect for increasing maxpermsize and max heap size

And Oracle article about GC tuning: http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

Upvotes: 0

Related Questions