changeset 2523:8adcdb76aa7c

Fix NPE in swing.
author Denis Lila <dlila@redhat.com>
date Tue, 14 Jun 2011 10:09:27 -0400
parents 7360092cc4b1
children e296d9a4e90b
files ChangeLog Makefile.am NEWS patches/openjdk/7036148-npe-null-jmenu-name.patch
diffstat 4 files changed, 97 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jun 10 17:23:24 2011 +0200
+++ b/ChangeLog	Tue Jun 14 10:09:27 2011 -0400
@@ -1,3 +1,10 @@
+2011-06-14  Denis Lila  <dlila@redhat.com>
+
+	* Makefile.am: Add patch.
+	* NEWS: Update with backports.
+	* patches/openjdk/7036148-npe-null-jmenu-name.patch:
+	Backport of S7036148. Fixes RH712211 too.
+
 2011-06-10  Pavel Tisnovsky  <ptisnovs@redhat.com>
 
 	* patches/font-rhel.patch:
--- a/Makefile.am	Fri Jun 10 17:23:24 2011 +0200
+++ b/Makefile.am	Tue Jun 14 10:09:27 2011 -0400
@@ -342,7 +342,8 @@
 	patches/shark-llvm-2.9.patch \
 	patches/openjdk/pgram-pipe-regression.patch \
 	patches/openjdk/mutter.patch \
-	patches/fonts-rhel-version.patch
+	patches/fonts-rhel-version.patch \
+	patches/openjdk/7036148-npe-null-jmenu-name.patch
 
 if WITH_ALT_HSBUILD
 ICEDTEA_PATCHES += \
--- a/NEWS	Fri Jun 10 17:23:24 2011 +0200
+++ b/NEWS	Tue Jun 14 10:09:27 2011 -0400
@@ -11,6 +11,9 @@
 
 New in release 1.10.3 (20XX-XX-XX):
 
+* Backports:
+  - S7037283, RH712211: Null Pointer Exception in SwingUtilities2.
+
 New in release 1.10.2 (2011-06-07):
 
 * Security fixes
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/7036148-npe-null-jmenu-name.patch	Tue Jun 14 10:09:27 2011 -0400
@@ -0,0 +1,85 @@
+# HG changeset patch
+# User alexp
+# Date 1302889010 -14400
+# Node ID d353dcff4f14a1c7efcfb34a436e9ab3795ffcf9
+# Parent  71e769dc8cf689aad94c21a3b4b6f400a9f8f13c
+7036148: NullPointerException with null JMenu name
+Reviewed-by: rupashka
+
+diff -r 71e769dc8cf6 -r d353dcff4f14 src/share/classes/sun/swing/SwingUtilities2.java
+--- openjdk.orig/jdk/src/share/classes/sun/swing/SwingUtilities2.java	Fri Apr 15 21:26:09 2011 +0400
++++ openjdk/jdk/src/share/classes/sun/swing/SwingUtilities2.java	Fri Apr 15 21:36:50 2011 +0400
+@@ -270,11 +270,10 @@
+      */
+     public static int getLeftSideBearing(JComponent c, FontMetrics fm,
+                                          String string) {
+-        int res = 0;
+-        if (!string.isEmpty()) {
+-            res = getLeftSideBearing(c, fm, string.charAt(0));
++        if ((string == null) || (string.length() == 0)) {
++            return 0;
+         }
+-        return res;
++        return getLeftSideBearing(c, fm, string.charAt(0));
+     }
+ 
+     /**
+diff -r 71e769dc8cf6 -r d353dcff4f14 test/javax/swing/JMenuItem/7036148/bug7036148.java
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ openjdk/jdk/test/javax/swing/JMenuItem/7036148/bug7036148.java	Fri Apr 15 21:36:50 2011 +0400
+@@ -0,0 +1,53 @@
++/*
++ * Copyright (c) 2011, 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++ * or visit www.oracle.com if you need additional information or have any
++ * questions.
++ */
++
++ /*
++ * @test
++ * @bug 7036148
++ * @summary NullPointerException with null JMenu name
++ * @author Alexander Potochkin
++ * @run main bug7036148
++ */
++
++
++import javax.swing.*;
++import java.awt.event.ActionEvent;
++
++public class bug7036148 extends JFrame {
++    public bug7036148() {
++        JMenuBar bar = new JMenuBar();
++        Action menuAction = new AbstractAction(null, null){
++            public void actionPerformed(ActionEvent e) {
++            }
++        };
++        JMenu menu = new JMenu(menuAction);
++        menu.add(new JMenuItem("test"));
++        bar.add(menu);
++        setJMenuBar(bar);
++        pack();
++    }
++
++       public static void main(String[] args) {
++            new bug7036148();
++       }
++}
+exporting patch:
+<fdopen>