Java app makes screen display unresponsive after 10 minutes of user idle time

Posted by Ross on Stack Overflow See other posts from Stack Overflow or by Ross
Published on 2010-02-10T00:16:36Z Indexed on 2010/05/04 15:08 UTC
Read the original article Hit count: 251

Filed under:
|
|
|
|

I've written a Java app that allows users to script mouse/keyboard input (JMacro, link not important, only for the curious). I personally use the application to automate character actions in an online game overnight while I sleep. Unfortunately, I keep coming back to the computer in the morning to find it unresponsive. Upon further testing, I'm finding that my application causes the computer to become unresponsive after about 10 minutes of user idle time (even if the application itself it simulating user activity). I can't seem to pin-point the issue, so I'm hoping somebody else might have a suggestion of where to look or what might be causing the issue.

The relevant symptoms and characteristics:

  • Unresponsiveness occurs after user is idle for 10 minutes
  • User can still move the mouse pointer around the screen
  • Everything but the mouse appears frozen... mouse clicks have no effect and no applications update their displays, including the Windows 7 desktop
  • I left the task manager up along the with the app overnight so I could see the last task manager image before the screen freezes... the Java app is at normal CPU/Memory usage and total CPU usage is only ~1%
  • After moving the mouse (in other words, the user comes back from being idle), the screen image starts updating again within 30 minutes (this is very hit and miss... sometimes 10 minutes, sometimes no results after two hours)
  • User can CTRL-ALT-DEL to get to Windows 7's CTRL-ALT-DEL screen (after a 30 second pause). User is still able to move mouse pointer, but clicking any of the button options causes the screen to appear to freeze again
  • On some very rare occasions, the system never freezes, and I come back to it in the morning with full responsiveness
  • The Java app automatically stops input scripting in the middle of the night, so Windows 7 detects "real" idleness and turns the monitors into Standby mode... which they successfully come out of upon manually moving the mouse in the morning when I wake up, even though the desktop display still appears frozen

Given the symptoms and characteristics of the issue, it's as if the Java app is causing the desktop display of the logged in user to stop updating, including any running applications.

Programming concepts and Java packages used:

  • Multi-threading
  • Standard out and err are rerouted to a javax.swing.JTextArea
  • The application uses a Swing GUI
  • awt.Robot (very heavily used)
  • awt.PointerInfo
  • awt.MouseInfo

System Specs:

  • Windows 7 Professional
  • Java 1.6.0 u17

In conclusion, I should stress that I'm not looking for any specific solutions, as I'm not asking a very specific question. I'm just wondering if anybody has run into a similar problem when using the Java libraries that I'm using. I would also gladly appreciate any suggestions for things to try to attempt to further pinpoint what is causing my problem.

Thanks!

Ross

PS, I'll post an update/answer if I manage to stumble across anything else while I continue to debug this.

© Stack Overflow or respective owner

Related posts about java

Related posts about awt