JDK-6479959 : AWT needs to use the NO_WM case when running inside of Looking Glass
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 6
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: other
  • CPU: generic
  • Submitted: 2006-10-09
  • Updated: 2006-12-14
  • Resolved: 2006-12-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
6u1 b01Fixed 7Fixed
Related Reports
Relates :  
Relates :  
The netbeans 5.5 (beta2 or rc1) main window is blank when running under Looking Glass.

Here is the original mail I sent to Oleg. He suggested I file it as an official bug.

Hi Oleg,

I've been having a problem with the netbeans window coming up blank
(all white) under Looking Glass. I've traced this problem to the
following AWT code in XDecoratedPeer.handleConfigureNotifyEvent(long

    if (!isReparented() && isVisible() && runningWM != XWM.NO_WM
        && getDecorations() != winAttr.AWT_DECOR_NONE)
        insLog.fine("- visible but not reparented, skipping");

Looking Glass doesn't reparent it's windows into X11 decoration
windows.  This is because the decorations are 3D
objects. Unfortunately, this check is true so this routine returns
immediately without reshaping the window. This leaves the window width
and height equal to 0 and all rendering is clipped out. This is why
the window is blank.

The reason why the check passes is because all xterms in the condition
is true. The window is certainly visible and it has not been
reparented into any other window. getDecorations() has been
initialized somewhere in the AWT code to ALL_DECORATIONS, so this
subterm is true also. And the runningWM equals OTHER_WM, so this term
is true also.

One more thing:

This happens at least on Fedora Core 5. It probably happens on other OS's as well.

EVALUATION the problem was fixed altogether with 6429775.

SUGGESTED FIX see 6429775 for details

EVALUATION should be fixed altogether with 6429775 (Xgl/Compiz/Java 1.5/Swing problem)

EVALUATION AWT can treat Looking Glass window manager as no window manager running at all, and this fix can be integrated into 6.0u1, however I'm not sure it would solve all the problems. More investigation is required to have a full support of LG3D in 7.0, probably a separate bug should be filed to track this issue.

SUGGESTED FIX Is there anyway we can make a fix to XWM.java to treat Looking Glass as not running a window manager? We could potentially use the root property WM_NAME property for this purpose. Is there any chance we could get this into Mustang? What is the current state of the Mustang release process? Fortunately, we do NOT need to worry about back porting this to Tiger because Looking Glass only supports Mustang and beyond.

WORK AROUND Unfortunately, I can't think of any good way to fake out AWT and get any of these terms set to false, which would cause this early bail-out return not to happen. One thing I could do as a temporary measure is to put the string "eXcursion" into the X server vendor string. (I notice that there is a special hack in XWM.getWMID to treat the "eXcursion for Windows" product as not running a window manager). The problem with this work around is that it is not some thing I can do in the long term. Currently the LG group provides its own X server for running with LG, so we can put whatever we like in the server string. But in a few months we are supposed to switch over to the standard Sun X.org server. I don't think Sun's X folks will appreciate putting the name of another X server product in their vendor string.