HSDB could not terminate when launched on CLI.

KUBOTA Yuji kubota.yuji at gmail.com
Mon Jan 18 22:59:15 UTC 2016


Dmitry

Thank you for your review!

Sorry, I do not have any role of OpenJDK yet. So I can't upload webrev.
I will send a request for becoming Author after pushing these patches :)

Thanks,
Yuji

2016-01-19 2:42 GMT+09:00 Dmitry Samersoff <dmitry.samersoff at oracle.com>:
> Yuji
>
> Looks good for me.
>
> Are you a committer? If yes, please prepare a changeset. I'll sponsor
> the push.
>
> -Dmitry
>
> On 2015-12-15 11:23, KUBOTA Yuji wrote:
>> Hi all,
>>
>> When I ran HSDB by jhsdb on CLI i.e. without x11 display, HSDB could
>> not terminate after throwing HeadlessException.
>>
>> HSDB starts WorkerThread before making the JFrame. If we run HSDB on
>> CLI, HSDB throws HeadlessException when makes the JFrame. Thus, the
>> WorkerThread has never shutdown, then HSDB can not terminate.
>>
>> -----
>> Exception in thread "main" java.awt.HeadlessException:
>> No X11 DISPLAY variable was set, but this program performed an
>> operation which requires it.
>>         at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:205)
>>         at java.awt.Window.<init>(Window.java:535)
>>         at java.awt.Frame.<init>(Frame.java:422)
>>         at javax.swing.JFrame.<init>(JFrame.java:224)
>>         at sun.jvm.hotspot.HSDB.run(HSDB.java:140)
>>         at sun.jvm.hotspot.HSDB.main(HSDB.java:53)
>>         at sun.jvm.hotspot.SALauncher.runHSDB(SALauncher.java:167)
>>         at sun.jvm.hotspot.SALauncher.main(SALauncher.java:339)
>> ## Waiting for the shutdown of WorkerThread forever... ###
>> -----
>>
>> I have created a patch from jdk9/dev/hotspot (changeset:
>> 9625:de592ea5f7ba) as below. Please review it !
>>
>> diff --git a/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
>> b/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
>> --- a/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
>> +++ b/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
>> @@ -137,15 +137,16 @@
>>          return;
>>      }
>>
>> +    // Make frame at first, then initialize agent.
>> +    frame = new JFrame("HSDB - HotSpot Debugger");
>> +    frame.setSize(800, 600);
>> +    frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
>> +
>>      agent = new HotSpotAgent();
>>      workerThread = new WorkerThread();
>>      attachMenuItems = new java.util.ArrayList();
>>      detachMenuItems = new java.util.ArrayList();
>>
>> -    frame = new JFrame("HSDB - HotSpot Debugger");
>> -    frame.setSize(800, 600);
>> -    frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
>> -
>>      JMenuBar menuBar = new JMenuBar();
>>
>>      //
>>
>>
>> Thanks,
>> Yuji
>>
>
>
> --
> Dmitry Samersoff
> Oracle Java development team, Saint Petersburg, Russia
> * I would love to change the world, but they won't give me the sources.


More information about the serviceability-dev mailing list