# HG changeset patch # User Andrew John Hughes # Date 1280093812 -3600 # Node ID ed41571c551a04b8949ec15c8e7bddede4c33c4d # Parent c79bef6a3406cbc5a97a93754580b21600c0ab72 Backpatch S6963870: Eliminate NullPointerEx in swing class CompoundBorder method getBorderInsets * patches/openjdk/6963870.patch: New file. Backpatched from jdk7 for upstream bug#6963870. Fixes IcedTea Bug#477: NullPointerEx in swing class CompoundBorder method getBorderInsets. * Makefile.am: Include above patch. diff -r c79bef6a3406 -r ed41571c551a ChangeLog --- a/ChangeLog Mon Jul 26 18:53:50 2010 +0100 +++ b/ChangeLog Sun Jul 25 22:36:52 2010 +0100 @@ -1,3 +1,10 @@ +2010-07-23 Jon VanAlten + + * patches/openjdk/6963870.patch: New file. Backpatched from jdk7 for + upstream bug#6963870. Fixes IcedTea Bug#477: NullPointerEx in swing + class CompoundBorder method getBorderInsets. + * Makefile.am: Include above patch. + 2010-07-25 Andrew John Hughes * Makefile.am: Add patch. diff -r c79bef6a3406 -r ed41571c551a Makefile.am --- a/Makefile.am Mon Jul 26 18:53:50 2010 +0100 +++ b/Makefile.am Sun Jul 25 22:36:52 2010 +0100 @@ -677,7 +677,8 @@ patches/openjdk/6909563-docs-rmi.patch \ patches/openjdk/6917485-docs-corba.patch \ patches/openjdk/6921068-docs-specdefault.patch \ - patches/openjdk/6668231-ssl_cert.patch + patches/openjdk/6668231-ssl_cert.patch \ + patches/openjdk/6963870-swing_npe.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r c79bef6a3406 -r ed41571c551a patches/openjdk/6963870-swing_npe.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6963870-swing_npe.patch Sun Jul 25 22:36:52 2010 +0100 @@ -0,0 +1,99 @@ +# HG changeset patch +# User peterz +# Date 1277808150 -14400 +# Node ID f1bafc4f249d2e5a4f0ff12af78e90b3109404e0 +# Parent a05e047c5b98766ef05cac94e2edce7dc5764916 +6963870: NPE in CompoundBorder.getInsets() +Reviewed-by: alexp +Contributed-by: jon.vanalten@redhat.com + +diff -r a05e047c5b98 -r f1bafc4f249d src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java +--- openjdk.orig/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java Tue Jun 22 20:36:55 2010 +0400 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java Tue Jun 29 14:42:30 2010 +0400 +@@ -1440,10 +1440,6 @@ + } + } + +- public Insets getBorderInsets(Component c) { +- return getBorderInsets(c, null); +- } +- + public Insets getBorderInsets(Component c, Insets i) { + SynthContext context = getContext(c); + +diff -r a05e047c5b98 -r f1bafc4f249d test/com/sun/java/swing/plaf/gtk/Test6963870.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/com/sun/java/swing/plaf/gtk/Test6963870.java Tue Jun 29 14:42:30 2010 +0400 +@@ -0,0 +1,72 @@ ++/* ++ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* @test ++ @bug 6963870 ++ @summary Tests that GTKPainter.ListTableFocusBorder.getBorderInsets() ++ doesn't return null ++ @author Peter Zhelezniakov ++ @run main Test6963870 ++*/ ++ ++import java.awt.Insets; ++import javax.swing.SwingUtilities; ++import javax.swing.UIManager; ++import javax.swing.border.Border; ++ ++public class Test6963870 implements Runnable { ++ ++ final static String[] UI_NAMES = { ++ "List.focusCellHighlightBorder", ++ "List.focusSelectedCellHighlightBorder", ++ "List.noFocusBorder", ++ "Table.focusCellHighlightBorder", ++ "Table.focusSelectedCellHighlightBorder", ++ }; ++ ++ public void run() { ++ for (String uiName: UI_NAMES) { ++ test(uiName); ++ } ++ } ++ ++ void test(String uiName) { ++ Border b = UIManager.getBorder(uiName); ++ Insets i = b.getBorderInsets(null); ++ if (i == null) { ++ throw new RuntimeException("getBorderInsets() returns null for " + uiName); ++ } ++ } ++ ++ public static void main(String[] args) throws Exception { ++ try { ++ UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); ++ } catch (Exception e) { ++ System.out.println("GTKLookAndFeel cannot be set, skipping this test"); ++ return; ++ } ++ ++ SwingUtilities.invokeAndWait(new Test6963870()); ++ } ++} ++