HSDB could not terminate when launched on CLI.

Dmitry Samersoff dmitry.samersoff at oracle.com
Mon Jan 18 17:42:10 UTC 2016


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