{"action":"created","issue":{"url":"https://api.github.com/repos/edwardkort/WWIDesigner/issues/51","repository_url":"https://api.github.com/repos/edwardkort/WWIDesigner","labels_url":"https://api.github.com/repos/edwardkort/WWIDesigner/issues/51/labels{/name}","comments_url":"https://api.github.com/repos/edwardkort/WWIDesigner/issues/51/comments","events_url":"https://api.github.com/repos/edwardkort/WWIDesigner/issues/51/events","html_url":"https://github.com/edwardkort/WWIDesigner/issues/51","id":170985416,"number":51,"title":"Exception in a StudyView Activity can hang application","user":{"login":"bhp1","id":1645842,"avatar_url":"https://avatars.githubusercontent.com/u/1645842?v=3","gravatar_id":"","url":"https://api.github.com/users/bhp1","html_url":"https://github.com/bhp1","followers_url":"https://api.github.com/users/bhp1/followers","following_url":"https://api.github.com/users/bhp1/following{/other_user}","gists_url":"https://api.github.com/users/bhp1/gists{/gist_id}","starred_url":"https://api.github.com/users/bhp1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhp1/subscriptions","organizations_url":"https://api.github.com/users/bhp1/orgs","repos_url":"https://api.github.com/users/bhp1/repos","events_url":"https://api.github.com/users/bhp1/events{/privacy}","received_events_url":"https://api.github.com/users/bhp1/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/edwardkort/WWIDesigner/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2016-08-13T01:09:10Z","updated_at":"2016-08-15T12:11:04Z","closed_at":null,"body":"At times an exception thrown in a StudyView Activity, or some other premature return without presenting a new JFrame, can cause the application to hang; the BlockingProgressListener is presented, but cannot be closed.  Application must be killed from operating system.\r\n\r\nFor example: open an instrument and tuning, select the tuning tab, then select Window->Toggle data view then Tool->Graph note tuning.  This should provoke a null pointer exception because no fingering is available; usually StudyView handles the exception, but sometimes this results in the hang described above."},"comment":{"url":"https://api.github.com/repos/edwardkort/WWIDesigner/issues/comments/239787684","html_url":"https://github.com/edwardkort/WWIDesigner/issues/51#issuecomment-239787684","issue_url":"https://api.github.com/repos/edwardkort/WWIDesigner/issues/51","id":239787684,"user":{"login":"bhp1","id":1645842,"avatar_url":"https://avatars.githubusercontent.com/u/1645842?v=3","gravatar_id":"","url":"https://api.github.com/users/bhp1","html_url":"https://github.com/bhp1","followers_url":"https://api.github.com/users/bhp1/followers","following_url":"https://api.github.com/users/bhp1/following{/other_user}","gists_url":"https://api.github.com/users/bhp1/gists{/gist_id}","starred_url":"https://api.github.com/users/bhp1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhp1/subscriptions","organizations_url":"https://api.github.com/users/bhp1/orgs","repos_url":"https://api.github.com/users/bhp1/repos","events_url":"https://api.github.com/users/bhp1/events{/privacy}","received_events_url":"https://api.github.com/users/bhp1/received_events","type":"User","site_admin":false},"created_at":"2016-08-15T12:11:04Z","updated_at":"2016-08-15T12:11:04Z","body":"Yesterday, I tried once, and it hung.  Today, I tried a dozen times and it didn't.  To make it easier to replicate, temporarily replace one of the tool calls such as study.calculateTuning with:\r\n```\r\n\tMessageDialogRequest.showMessageDialog(getApplication(),\r\n\t\t\"Click OK to continue\", \"Ready to continue\", MessageDialogRequest.INFORMATION_STYLE);\r\n```\r\nYou may have to try many times, but eventually you're likely to get a hang.  My current suspicion is that it is a race condition: showMessageDialog and BlockingProcessListener are both trying to display their dialogs with the same thread, and that isn't the same thread as the tools run under.  Deadlock results if BlockingProcessListener gets there first.\r\n\r\nJRE: 1.8.0 build 91\r\nJIDE: 3.6.12\r\nJDAF: 2.4.26\r\n"}}
{"actor":{"display_login":"bhp1"}}