Package: openjdk-6-jre
Version: 6b23~pre8-1.1
Severity: normal
Tags: patch
After upgrading openjdk-6 on my testing-based system from 6b18-1.8.9-0.1 to
6b23~pre7-1, the program kolmafia throws a nullpointer exception in
sun.awt.X11.XWindowPeer.restoreTransientFor.
(see attached backtrace)
Googling for this error returns f.e.
http://netbeans.org/bugzilla/show_bug.cgi?id=163548
This seems to be bug http://bugs.sun.com/view_bug.do?bug_id=6826104
I patched the class like suggested in the sun-bugreport, which resolved the
issue.
(However I am not sure, if the awtLock is needed.....)
(patch attached)
(the installed version 6b23~pre8-1.1 is a locally compiled 6b23~pre8-1 with
that patch)
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (900, 'testing'), (900, 'stable'), (600, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.0.0-0.toi.2+ (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages openjdk-6-jre depends on:
ii libaccess-bridge-java-j 1.26.2-5 Java Access Bridge for GNOME (jni
ii libasound2 1.0.24.1-2 shared library for ALSA applicatio
ii libc6 2.13-16 Embedded GNU C Library: Shared lib
ii libgif4 4.1.6-9 library for GIF images (library)
ii libjpeg62 6b1-2 Independent JPEG Group's JPEG runt
ii libpng12-0 1.2.46-3 PNG library - runtime
ii libpulse0 0.9.23-1 PulseAudio client libraries
ii libx11-6 2:1.4.4-1 X11 client-side library
ii libxext6 2:1.3.0-3 X11 miscellaneous extension librar
ii libxi6 2:1.4.3-3 X11 Input extension library
ii libxrender1 1:0.9.6-2 X Rendering Extension client libra
ii libxtst6 2:1.2.0-3 X11 Testing -- Record extension li
ii openjdk-6-jre-headless 6b23~pre8-1.1 OpenJDK Java runtime, using Hotspo
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
Versions of packages openjdk-6-jre recommends:
pn icedtea-netx <none> (no description available)
ii ttf-dejavu-extra 2.33-1 Vera font family derivate with add
Versions of packages openjdk-6-jre suggests:
pn icedtea-plugin <none> (no description available)
-- no debconf information
[ConditionalEventPump] Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1682)
at
sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1748)
at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1470)
at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1441)
at java.awt.Window.setModalBlocked(Window.java:1359)
at java.awt.Dialog.unblockWindow(Dialog.java:1597)
at java.awt.Dialog.modalHide(Dialog.java:1483)
at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
at java.awt.Dialog.hide(Dialog.java:1255)
at java.awt.Component.show(Component.java:1553)
at java.awt.Component.setVisible(Component.java:1503)
at java.awt.Window.setVisible(Window.java:881)
at java.awt.Dialog.setVisible(Dialog.java:1011)
at javax.swing.JOptionPane$3.propertyChange(JOptionPane.java:1021)
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:298)
at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291)
at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:229)
at java.awt.Component.firePropertyChange(Component.java:8148)
at javax.swing.JOptionPane.setInputValue(JOptionPane.java:2231)
at
javax.swing.plaf.basic.BasicOptionPaneUI.resetInputValue(BasicOptionPaneUI.java:866)
at
javax.swing.plaf.basic.BasicOptionPaneUI$ButtonActionListener.actionPerformed(BasicOptionPaneUI.java:1192)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6268)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6033)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4629)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4455)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2517)
at java.awt.Component.dispatchEvent(Component.java:4455)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$2.run(EventQueue.java:622)
at java.awt.EventQueue$2.run(EventQueue.java:620)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1072)
at java.awt.Dialog$3.run(Dialog.java:1126)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1124)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.java:584)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.java:496)
at
net.sourceforge.kolmafia.utilities.InputFieldUtilities.input(InputFieldUtilities.java:91)
at
net.sourceforge.kolmafia.utilities.InputFieldUtilities.getQuantity(InputFieldUtilities.java:239)
at
net.sourceforge.kolmafia.swingui.panel.ItemManagePanel.getDesiredItemAmount(ItemManagePanel.java:533)
at
net.sourceforge.kolmafia.swingui.panel.ItemManagePanel.getDesiredItems(ItemManagePanel.java:423)
at
net.sourceforge.kolmafia.swingui.panel.ItemManagePanel.getDesiredItems(ItemManagePanel.java:385)
at
net.sourceforge.kolmafia.swingui.panel.UseItemEnqueuePanel$EnqueueListener.run(UseItemEnqueuePanel.java:210)
at
net.sourceforge.kolmafia.swingui.listener.ThreadedListener.actionPerformed(ThreadedListener.java:60)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6268)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6033)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4629)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4455)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2517)
at java.awt.Component.dispatchEvent(Component.java:4455)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$2.run(EventQueue.java:622)
at java.awt.EventQueue$2.run(EventQueue.java:620)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
[ConditionalEventPump] Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1682)
at
sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1748)
at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1470)
at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1441)
at java.awt.Window.setModalBlocked(Window.java:1359)
at java.awt.Dialog.unblockWindow(Dialog.java:1597)
at java.awt.Dialog.modalHide(Dialog.java:1483)
at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
at java.awt.Dialog.hide(Dialog.java:1255)
at java.awt.Component.show(Component.java:1553)
at java.awt.Component.setVisible(Component.java:1503)
at java.awt.Window.setVisible(Window.java:881)
at java.awt.Dialog.setVisible(Dialog.java:1011)
at javax.swing.JDialog.processWindowEvent(JDialog.java:649)
at java.awt.Window.processEvent(Window.java:1862)
at java.awt.Component.dispatchEventImpl(Component.java:4629)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Window.dispatchEventImpl(Window.java:2517)
at java.awt.Component.dispatchEvent(Component.java:4455)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$2.run(EventQueue.java:622)
at java.awt.EventQueue$2.run(EventQueue.java:620)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1072)
at java.awt.Dialog$3.run(Dialog.java:1126)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1124)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.java:584)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.java:496)
at
net.sourceforge.kolmafia.utilities.InputFieldUtilities.input(InputFieldUtilities.java:91)
at
net.sourceforge.kolmafia.utilities.InputFieldUtilities.getQuantity(InputFieldUtilities.java:239)
at
net.sourceforge.kolmafia.swingui.panel.ItemManagePanel.getDesiredItemAmount(ItemManagePanel.java:533)
at
net.sourceforge.kolmafia.swingui.panel.ItemManagePanel.getDesiredItems(ItemManagePanel.java:423)
at
net.sourceforge.kolmafia.swingui.panel.ItemManagePanel.getDesiredItems(ItemManagePanel.java:385)
at
net.sourceforge.kolmafia.swingui.panel.UseItemEnqueuePanel$EnqueueListener.run(UseItemEnqueuePanel.java:210)
at
net.sourceforge.kolmafia.swingui.listener.ThreadedListener.actionPerformed(ThreadedListener.java:60)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6268)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6033)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4629)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4455)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2517)
at java.awt.Component.dispatchEvent(Component.java:4455)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$2.run(EventQueue.java:622)
at java.awt.EventQueue$2.run(EventQueue.java:620)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
http://bugs.sun.com/view_bug.do?bug_id=6826104
partly revert 6693253 (Security Warning appearance requires enhancements):
"The call to windows.add(this) was just mistakenly removed.
It needs to be added back to the XWindowPeer.preInit() method."
--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java.orig
2011-08-24 02:42:07.266772400 +0200
+++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
2011-08-23 23:02:45.000000000 +0200
@@ -149,6 +149,13 @@
params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect()));
+ SunToolkit.awtLock();
+ try {
+ windows.add(this);
+ }
+ finally {
+ SunToolkit.awtUnlock();
+ }
cachedFocusableWindow = isFocusableWindow();
Font f = target.getFont();