United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6479959 : AWT needs to use the NO_WM case when running inside of Looking Glass

Details
Type:
Bug
Submit Date:
2006-10-09
Status:
Resolved
Updated Date:
2006-12-14
Project Name:
JDK
Resolved Date:
2006-12-14
Component:
client-libs
OS:
other
Sub-Component:
java.awt
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
6u1 (b01)

Related Reports
Backport:
Relates:
Relates:

Sub Tasks

Description
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
ptr):

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

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.

                                    

Comments
SUGGESTED FIX

see 6429775 for details
                                     
2006-11-29
EVALUATION

the problem was fixed altogether with 6429775.
                                     
2006-11-29
EVALUATION

should be fixed altogether with 6429775 (Xgl/Compiz/Java 1.5/Swing problem)
                                     
2006-11-22
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.
                                     
2006-10-10
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.
                                     
2006-10-09
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.
                                     
2006-10-09



Hardware and Software, Engineered to Work Together