diff --git a/src/solaris/classes/sun/awt/X11/XAtom.java b/src/solaris/classes/sun/awt/X11/XAtom.java --- a/src/solaris/classes/sun/awt/X11/XAtom.java +++ b/src/solaris/classes/sun/awt/X11/XAtom.java @@ -261,7 +261,7 @@ private XAtom(long display, String name, boolean autoIntern) { this.name = name; this.display = display; - if (autoIntern) { + if (autoIntern && display != 0) { XToolkit.awtLock(); try { atom = XlibWrapper.InternAtom(display,name,0); diff --git a/src/solaris/classes/sun/awt/X11/XSelection.java b/src/solaris/classes/sun/awt/X11/XSelection.java --- a/src/solaris/classes/sun/awt/X11/XSelection.java +++ b/src/solaris/classes/sun/awt/X11/XSelection.java @@ -60,8 +60,15 @@ static { XToolkit.awtLock(); try { - MAX_PROPERTY_SIZE = - (int)(XlibWrapper.XMaxRequestSize(XToolkit.getDisplay()) * 4 - 100); + long display = XToolkit.getDisplay(); + if (display != 0) { + MAX_PROPERTY_SIZE = + (int)(XlibWrapper.XMaxRequestSize(display) * 4 - 100); + XToolkit.addEventDispatcher(XWindow.getXAWTRootWindow().getWindow(), + new SelectionEventHandler()); + } else { + MAX_PROPERTY_SIZE = -1; + } } finally { XToolkit.awtUnlock(); } @@ -102,11 +109,6 @@ private OwnershipListener ownershipListener = null; private final Object stateLock = new Object(); - static { - XToolkit.addEventDispatcher(XWindow.getXAWTRootWindow().getWindow(), - new SelectionEventHandler()); - } - /* * Returns the XSelection object for the specified selection atom or * null if none exists.