Mercurial > hg > release > icedtea7-forest-2.0 > langtools
changeset 717:f6fe12839a8a
6890226: javah -version is broken
Reviewed-by: darcy
author | jjg |
---|---|
date | Mon, 27 Sep 2010 14:05:33 -0700 |
parents | 827d87221959 |
children | 3c9b64e55c5d |
files | src/share/classes/com/sun/tools/javah/JavahTask.java src/share/classes/com/sun/tools/javah/resources/l10n.properties src/share/classes/com/sun/tools/javah/resources/version.properties-template test/tools/javah/VersionTest.java |
diffstat | 4 files changed, 98 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/tools/javah/JavahTask.java Sat Sep 25 12:02:32 2010 -0700 +++ b/src/share/classes/com/sun/tools/javah/JavahTask.java Mon Sep 27 14:05:33 2010 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 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 @@ -526,15 +526,17 @@ } private void showVersion(boolean full) { - log.println(version(full ? "full" : "release")); + log.println(version(full)); } private static final String versionRBName = "com.sun.tools.javah.resources.version"; private static ResourceBundle versionRB; - private String version(String key) { - // key=version: mm.nn.oo[-milestone] - // key=full: mm.mm.oo[-milestone]-build + private String version(boolean full) { + String msgKey = (full ? "javah.fullVersion" : "javah.version"); + String versionKey = (full ? "full" : "release"); + // versionKey=product: mm.nn.oo[-milestone] + // versionKey=full: mm.mm.oo[-milestone]-build if (versionRB == null) { try { versionRB = ResourceBundle.getBundle(versionRBName); @@ -543,7 +545,7 @@ } } try { - return versionRB.getString(key); + return getMessage(msgKey, "javah", versionRB.getString(versionKey)); } catch (MissingResourceException e) { return getMessage("version.unknown", System.getProperty("java.version"));
--- a/src/share/classes/com/sun/tools/javah/resources/l10n.properties Sat Sep 25 12:02:32 2010 -0700 +++ b/src/share/classes/com/sun/tools/javah/resources/l10n.properties Mon Sep 27 14:05:33 2010 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 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 @@ -113,7 +113,8 @@ # # Version string. # -javah.version=javah version "{0}" +javah.version={0} version "{1}" +javah.fullVersion={0} full version "{1}" # # These should have better diagnostics.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/javah/resources/version.properties-template Mon Sep 27 14:05:33 2010 -0700 @@ -0,0 +1,28 @@ +# +# Copyright (c) 2005, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# 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. +# + +jdk=$(JDK_VERSION) +full=$(FULL_VERSION) +release=$(RELEASE)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javah/VersionTest.java Mon Sep 27 14:05:33 2010 -0700 @@ -0,0 +1,59 @@ +/* + * 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 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 6890226 + * @summary javah -version is broken + */ + +import java.io.*; +import java.util.Locale; + +public class VersionTest { + public static void main(String... args) { + Locale prev = Locale.getDefault(); + try { + Locale.setDefault(Locale.ENGLISH); + System.err.println(Locale.getDefault()); + test("-version", "\\S+ version \"\\S+\""); + test("-fullversion", "\\S+ full version \"\\S+\""); + } finally { + Locale.setDefault(prev); + } + } + + static void test(String option, String regex) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + String[] args = { option }; + int rc = com.sun.tools.javah.Main.run(args, pw); + pw.close(); + if (rc != 0) + throw new Error("javah failed: rc=" + rc); + String out = sw.toString().trim(); + System.err.println(out); + if (!out.matches(regex)) + throw new Error("output does not match pattern: " + regex); + } +}