<AWT Dev> [7u6] Review request for 7181027: [macosx] Unable to use headless mode

David Holmes david.holmes at oracle.com
Thu Jul 12 14:26:13 PDT 2012

On 12/07/2012 10:33 PM, Anthony Petrov wrote:
> The logic is all in src/solaris/native/java/lang/java_props_macosx.c.
> The getPreferredToolkit() returns the HToolkit constant when the
> headless mode is needed on the Mac. And the GetJavaProperties() will
> then choose the sun.awt.HToolkit as the toolkit. Interesting.

Interesting indeed. But my concerns remain. HToolkit was not intended 
for general use. OSX seems to be handling headless mode in a completely 
different way to Solaris/linux.

Of course it may be that on OSX you run into the same conditions when 
headless that required the introduction of HToolkit. But somebody should 
have made a very conscious decision to do that.

> But it all seems to work fine in headless mode on the Mac, right?

You mean apart from this bug? ;-) I see a few bugs involving headless on 


> Leonid, did you run headless regression tests with your fix, btw?
> --
> best regards,
> Anthony
> On 07/12/12 12:58, Leonid Romanov wrote:
>> Perhaps Anthony might be able to answer your question: he has tinkered
>> a lot with headless related stuff.
>> David, are you implying that in the current form my fix is no-go?
>> On 12.07.2012, at 5:15, David Holmes wrote:
>>> On 11/07/2012 11:46 PM, Leonid Romanov wrote:
>>>> Hi,
>>>> Please review a fix for 7181027: [macosx] Unable to use headless
>>>> mode. The problem here is that for headless mode
>>>> "java.awt.graphicsenv" system property should be
>>>> CGraphicsEnvironment because the way GraphicsEnvironment.createGE()
>>>> method works: it first instantiates GraphicsEnvironment instance and
>>>> then wraps it with HeadlessGraphicsEnvironment if in headless mode.
>>>> This means twe can't use java.awt.graphicsenv property to determine
>>>> whether we are in headless mode or not. So, I've replaced it with a
>>>> toolkit check: if it's HToolkit, then we are in headless.
>>> sun.awt.HToolkit was introduced for use by SE-Embedded's reduced
>>> headless JRE. How did the OSX port end up using it ???
>>> Headless handling on OSX should be like regular headless on Linux,
>>> Solaris.
>>> David
>>>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7181027
>>>> Webrev: http://cr.openjdk.java.net/~leonidr/7181027/webrev.00/
>>>> Thanks,
>>>> Leonid.

More information about the awt-dev mailing list