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.

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

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.


Reply via email to