From d06b390de7132360231eb0e588f5f270079fe71f Mon Sep 17 00:00:00 2001 From: akashche Date: Aug 18 2016 16:55:46 +0000 Subject: merge with f24 branch --- diff --git a/.gitignore b/.gitignore index 2142798..efd1a3f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz +/aarch32-port-jdk8u-jdk8u102-b14-aarch32-160812.tar.xz /systemtap-tapset.tar.gz diff --git a/6260348-pr3066.patch b/6260348-pr3066.patch new file mode 100644 index 0000000..06be502 --- /dev/null +++ b/6260348-pr3066.patch @@ -0,0 +1,150 @@ +# HG changeset patch +# User ssadetsky +# Date 1467220169 -3600 +# Wed Jun 29 18:09:29 2016 +0100 +# Node ID 9fffaa63c49d93bff70b96af9a86b7635bce44be +# Parent d0462c26152fc8bd5f79db7f1670777e807ef2b3 +6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate +Reviewed-by: alexsch, azvegint + +diff -r d0462c26152f -r 9fffaa63c49d src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java +--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Wed Jun 29 18:09:29 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2015, 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 +@@ -93,7 +93,9 @@ + */ + static enum Settings { + GTK_FONT_NAME, +- GTK_ICON_SIZES ++ GTK_ICON_SIZES, ++ GTK_CURSOR_BLINK, ++ GTK_CURSOR_BLINK_TIME + } + + /* Custom regions are needed for representing regions that don't exist +diff -r d0462c26152f -r 9fffaa63c49d src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java +--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jun 29 18:09:29 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2002, 2015, 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 +@@ -371,7 +371,17 @@ + int vProgWidth = 22 - (progXThickness * 2); + int vProgHeight = 80 - (progYThickness * 2); + +- Integer caretBlinkRate = Integer.valueOf(500); ++ Integer caretBlinkRate; ++ if (Boolean.FALSE.equals(GTKEngine.INSTANCE.getSetting( ++ GTKEngine.Settings.GTK_CURSOR_BLINK))) { ++ caretBlinkRate = Integer.valueOf(0); ++ } else { ++ caretBlinkRate = (Integer) GTKEngine.INSTANCE.getSetting( ++ GTKEngine.Settings.GTK_CURSOR_BLINK_TIME); ++ if (caretBlinkRate == null) { ++ caretBlinkRate = Integer.valueOf(500); ++ } ++ } + Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0); + + Double defaultCaretAspectRatio = new Double(0.025); +diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.c +--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Wed Jun 29 18:09:29 2016 +0100 +@@ -1316,9 +1316,6 @@ + { + result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE] = + (*fp_gtk_entry_new)(); +- +- GtkSettings* settings = fp_gtk_widget_get_settings(result); +- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); + } + result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE]; + break; +@@ -1363,10 +1360,6 @@ + { + gtk2_widgets[_GTK_ENTRY_TYPE] = + (*fp_gtk_entry_new)(); +- +- GtkSettings* settings = +- fp_gtk_widget_get_settings(gtk2_widgets[_GTK_ENTRY_TYPE]); +- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); + } + result = gtk2_widgets[_GTK_ENTRY_TYPE]; + break; +@@ -1558,9 +1551,6 @@ + { + result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE] = + (*fp_gtk_spin_button_new)(NULL, 0, 0); +- +- GtkSettings* settings = fp_gtk_widget_get_settings(result); +- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); + } + result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE]; + break; +@@ -2510,14 +2500,20 @@ + + return result; + } +-/* ++ + jobject get_integer_property(JNIEnv *env, GtkSettings* settings, const gchar* key) + { +- gint intval = NULL; +- ++ gint intval = NULL; + (*fp_g_object_get)(settings, key, &intval, NULL); + return create_Integer(env, intval); +-}*/ ++} ++ ++jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, const gchar* key) ++{ ++ gint intval = NULL; ++ (*fp_g_object_get)(settings, key, &intval, NULL); ++ return create_Boolean(env, intval); ++} + + jobject gtk2_get_setting(JNIEnv *env, Setting property) + { +@@ -2529,6 +2525,10 @@ + return get_string_property(env, settings, "gtk-font-name"); + case GTK_ICON_SIZES: + return get_string_property(env, settings, "gtk-icon-sizes"); ++ case GTK_CURSOR_BLINK: ++ return get_boolean_property(env, settings, "gtk-cursor-blink"); ++ case GTK_CURSOR_BLINK_TIME: ++ return get_integer_property(env, settings, "gtk-cursor-blink-time"); + } + + return NULL; +diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.h +--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Tue Jun 28 19:44:50 2016 +0100 ++++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Wed Jun 29 18:09:29 2016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2015, 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 +@@ -140,7 +140,9 @@ + typedef enum _Setting + { + GTK_FONT_NAME, +- GTK_ICON_SIZES ++ GTK_ICON_SIZES, ++ GTK_CURSOR_BLINK, ++ GTK_CURSOR_BLINK_TIME + } Setting; + + /* GTK types, here to eliminate need for GTK headers at compile time */ diff --git a/8044762-pr2960.patch b/8044762-pr2960.patch new file mode 100644 index 0000000..af5b606 --- /dev/null +++ b/8044762-pr2960.patch @@ -0,0 +1,45 @@ +# HG changeset patch +# User dsamersoff +# Date 1403087398 25200 +# Wed Jun 18 03:29:58 2014 -0700 +# Node ID 13411144d46b50d0087f35eca2b8e827aae558f1 +# Parent 10c9f8461c297a200ef57970c1f4c32d4081d790 +8044762, PR2960: com/sun/jdi/OptionTest.java test time out +Summary: gdata could be NULL in debugInit_exit +Reviewed-by: dcubed + +diff -r 10c9f8461c29 -r 13411144d46b src/share/back/debugInit.c +--- openjdk/jdk/src/share/back/debugInit.c Fri May 20 19:42:05 2016 +0100 ++++ openjdk/jdk/src/share/back/debugInit.c Wed Jun 18 03:29:58 2014 -0700 +@@ -1307,22 +1307,26 @@ + if ( error != JVMTI_ERROR_NONE ) { + exit_code = 1; + if ( docoredump ) { ++ LOG_MISC(("Dumping core as requested by command line")); + finish_logging(exit_code); + abort(); + } + } ++ + if ( msg==NULL ) { + msg = ""; + } + + LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, msg)); + +- gdata->vmDead = JNI_TRUE; ++ if (gdata != NULL) { ++ gdata->vmDead = JNI_TRUE; + +- /* Let's try and cleanup the JVMTI, if we even have one */ +- if ( gdata->jvmti != NULL ) { +- /* Dispose of jvmti (gdata->jvmti becomes NULL) */ +- disposeEnvironment(gdata->jvmti); ++ /* Let's try and cleanup the JVMTI, if we even have one */ ++ if ( gdata->jvmti != NULL ) { ++ /* Dispose of jvmti (gdata->jvmti becomes NULL) */ ++ disposeEnvironment(gdata->jvmti); ++ } + } + + /* Finish up logging. We reach here if JDWP is doing the exiting. */ diff --git a/8049226-pr2960.patch b/8049226-pr2960.patch new file mode 100644 index 0000000..0f6bdf8 --- /dev/null +++ b/8049226-pr2960.patch @@ -0,0 +1,123 @@ +# HG changeset patch +# User dsamersoff +# Date 1409228402 25200 +# Thu Aug 28 05:20:02 2014 -0700 +# Node ID f4c9545cd8a56a5fab74c95de3573623ba2b83c4 +# Parent 13411144d46b50d0087f35eca2b8e827aae558f1 +8049226, PR2960: com/sun/jdi/OptionTest.java test times out again +Summary: Don't call jni_FatalError if transport initialization fails +Reviewed-by: sspitsyn, sla + +diff -r 13411144d46b -r f4c9545cd8a5 src/share/back/debugInit.c +--- openjdk/jdk/src/share/back/debugInit.c Wed Jun 18 03:29:58 2014 -0700 ++++ openjdk/jdk/src/share/back/debugInit.c Thu Aug 28 05:20:02 2014 -0700 +@@ -1013,7 +1013,7 @@ + atexit_finish_logging(void) + { + /* Normal exit(0) (not _exit()) may only reach here */ +- finish_logging(0); /* Only first call matters */ ++ finish_logging(); /* Only first call matters */ + } + + static jboolean +@@ -1301,43 +1301,49 @@ + void + debugInit_exit(jvmtiError error, const char *msg) + { +- int exit_code = 0; ++ enum exit_codes { EXIT_NO_ERRORS = 0, EXIT_JVMTI_ERROR = 1, EXIT_TRANSPORT_ERROR = 2 }; + +- /* Pick an error code */ +- if ( error != JVMTI_ERROR_NONE ) { +- exit_code = 1; +- if ( docoredump ) { +- LOG_MISC(("Dumping core as requested by command line")); +- finish_logging(exit_code); +- abort(); +- } ++ // Prepare to exit. Log error and finish logging ++ LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, ++ ((msg == NULL) ? "" : msg))); ++ ++ // coredump requested by command line. Keep JVMTI data dirty ++ if (error != JVMTI_ERROR_NONE && docoredump) { ++ LOG_MISC(("Dumping core as requested by command line")); ++ finish_logging(); ++ abort(); + } + +- if ( msg==NULL ) { +- msg = ""; +- } ++ finish_logging(); + +- LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, msg)); +- ++ // Cleanup the JVMTI if we have one + if (gdata != NULL) { + gdata->vmDead = JNI_TRUE; +- +- /* Let's try and cleanup the JVMTI, if we even have one */ +- if ( gdata->jvmti != NULL ) { +- /* Dispose of jvmti (gdata->jvmti becomes NULL) */ ++ if (gdata->jvmti != NULL) { ++ // Dispose of jvmti (gdata->jvmti becomes NULL) + disposeEnvironment(gdata->jvmti); + } + } + +- /* Finish up logging. We reach here if JDWP is doing the exiting. */ +- finish_logging(exit_code); /* Only first call matters */ +- +- /* Let's give the JNI a FatalError if non-exit 0, which is historic way */ +- if ( exit_code != 0 ) { +- JNIEnv *env = NULL; +- jniFatalError(env, msg, error, exit_code); ++ // We are here with no errors. Kill entire process and exit with zero exit code ++ if (error == JVMTI_ERROR_NONE) { ++ forceExit(EXIT_NO_ERRORS); ++ return; + } + +- /* Last chance to die, this kills the entire process. */ +- forceExit(exit_code); ++ // No transport initilized. ++ // As we don't have any details here exiting with separate exit code ++ if (error == AGENT_ERROR_TRANSPORT_INIT) { ++ forceExit(EXIT_TRANSPORT_ERROR); ++ return; ++ } ++ ++ // We have JVMTI error. Call hotspot jni_FatalError handler ++ jniFatalError(NULL, msg, error, EXIT_JVMTI_ERROR); ++ ++ // hotspot calls os:abort() so we should never reach code below, ++ // but guard against possible hotspot changes ++ ++ // Last chance to die, this kills the entire process. ++ forceExit(EXIT_JVMTI_ERROR); + } +diff -r 13411144d46b -r f4c9545cd8a5 src/share/back/log_messages.c +--- openjdk/jdk/src/share/back/log_messages.c Wed Jun 18 03:29:58 2014 -0700 ++++ openjdk/jdk/src/share/back/log_messages.c Thu Aug 28 05:20:02 2014 -0700 +@@ -230,7 +230,7 @@ + + /* Finish up logging, flush output to the logfile. */ + void +-finish_logging(int exit_code) ++finish_logging() + { + #ifdef JDWP_LOGGING + MUTEX_LOCK(my_mutex); +diff -r 13411144d46b -r f4c9545cd8a5 src/share/back/log_messages.h +--- openjdk/jdk/src/share/back/log_messages.h Wed Jun 18 03:29:58 2014 -0700 ++++ openjdk/jdk/src/share/back/log_messages.h Thu Aug 28 05:20:02 2014 -0700 +@@ -29,7 +29,7 @@ + /* LOG: Must be called like: LOG_category(("anything")) or LOG_category((format,args)) */ + + void setup_logging(const char *, unsigned); +-void finish_logging(int); ++void finish_logging(); + + #define LOG_NULL ((void)0) + diff --git a/8154313.patch b/8154313.patch new file mode 100644 index 0000000..3a43c5f --- /dev/null +++ b/8154313.patch @@ -0,0 +1,68 @@ +--- jdk8/make/Javadoc.gmk 2016-04-01 16:53:41.069477682 +0200 ++++ jdk8/make/Javadoc.gmk 2016-04-01 16:53:41.014477059 +0200 +@@ -220,6 +220,12 @@ + JRE_API_DOCSDIR = $(DOCSDIR)/jre/api + PLATFORM_DOCSDIR = $(DOCSDIR)/platform + ++ ++JAVADOC_ARCHIVE_NAME := jdk-$(FULL_VERSION)-docs.zip ++JAVADOC_ARCHIVE_ASSEMBLY_DIR := $(DOCSTMPDIR)/zip-docs ++JAVADOC_ARCHIVE_DIR := $(OUTPUT_ROOT)/bundles ++JAVADOC_ARCHIVE := $(JAVADOC_ARCHIVE_DIR)/$(JAVADOC_ARCHIVE_NAME) ++ + # The non-core api javadocs need to be able to access the root of the core + # api directory, so for jdk/api or jre/api to get to the core api/ + # directory we would use this: +@@ -319,6 +325,37 @@ + all: docs + docs: coredocs otherdocs + ++# ++# Optional target which bundles all generated javadocs into a zip ++# archive. The dependency on docs is handled in Main.gmk. Incremental ++# building of docs is currently broken so if you invoke zip-docs after ++# docs, the docs are always rebuilt. ++# ++ ++zip-docs: $(JAVADOC_ARCHIVE) ++ ++# ++# Add the core docs as prerequisite to the archive to trigger a rebuild ++# if the core docs were rebuilt. Ideally any doc rebuild should trigger ++# this, but the way prerequisites are currently setup in this file, that ++# is hard to achieve. ++# ++ ++$(JAVADOC_ARCHIVE): $(COREAPI_INDEX_FILE) ++ @$(ECHO) "Compressing javadoc to single $(JAVADOC_ARCHIVE_NAME)" ; ++ $(MKDIR) -p $(JAVADOC_ARCHIVE_DIR) ; ++ $(RM) -r $(JAVADOC_ARCHIVE_ASSEMBLY_DIR) ; ++ $(MKDIR) -p $(JAVADOC_ARCHIVE_ASSEMBLY_DIR); ++ all_roots=`$(FIND) $(DOCSDIR) | $(GREP) index.html `; \ ++ pushd $(JAVADOC_ARCHIVE_ASSEMBLY_DIR); \ ++ for index_file in $${all_roots} ; do \ ++ target_dir=`dirname $${index_file}`; \ ++ name=`$(ECHO) $${target_dir} | $(SED) "s;/spec;;" | $(SED) "s;.*/;;"`; \ ++ $(LN) -s $${target_dir} $${name}; \ ++ done; \ ++ $(ZIP) -q -r $(JAVADOC_ARCHIVE) * ; \ ++ popd ; ++ + ################################################################# + # Production Targets -- USE THESE TARGETS WHEN: + # a) You're generating docs outside of release engineering's +--- jdk8/make/Main.gmk 2016-04-01 16:53:41.311480424 +0200 ++++ jdk8/make/Main.gmk 2016-04-01 16:53:41.266479914 +0200 +@@ -165,6 +165,12 @@ + @($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk docs) + @$(call TargetExit) + ++zip-docs: docs zip-docs-only ++zip-docs-only: start-make ++ @$(call TargetEnter) ++ @($(CD) $(SRC_ROOT)/make && $(BUILD_LOG_WRAPPER) $(MAKE) $(MAKE_ARGS) -f Javadoc.gmk zip-docs) ++ @$(call TargetExit) ++ + sign-jars: jdk sign-jars-only + sign-jars-only: start-make + @$(call TargetEnter) diff --git a/corba_typo_fix.patch b/corba_typo_fix.patch new file mode 100644 index 0000000..9756a8a --- /dev/null +++ b/corba_typo_fix.patch @@ -0,0 +1,24 @@ +diff -r 5c43ac1f2a59 src/share/classes/javax/rmi/CORBA/Util.java +--- openjdk.orig/corba/src/share/classes/javax/rmi/CORBA/Util.java Fri Jul 01 04:11:22 2016 +0100 ++++ openjdk/corba/src/share/classes/javax/rmi/CORBA/Util.java Mon Jul 04 16:04:39 2016 +0100 +@@ -413,8 +413,18 @@ + // check that a serialization permission has been + // set to allow the loading of the Util delegate + // which provides access to custom ValueHandler +- sm.checkPermission(new SerializablePermission( +- "enableCustomValueHanlder")); ++ try { ++ sm.checkPermission(new SerializablePermission( ++ "enableCustomValueHandler")); ++ } catch (SecurityException ex1) { ++ // Fallback: See if the permission is mis-spelt ++ try { ++ sm.checkPermission(new SerializablePermission( ++ "enableCustomValueHanlder")); ++ } catch (SecurityException ex2) { ++ throw ex1; // Throw original exception ++ } ++ } + } + } + } diff --git a/java-1.8.0-openjdk-aarch32.spec b/java-1.8.0-openjdk-aarch32.spec index b81a084..257a7a8 100644 --- a/java-1.8.0-openjdk-aarch32.spec +++ b/java-1.8.0-openjdk-aarch32.spec @@ -84,6 +84,12 @@ %global NSS_LIBDIR %(pkg-config --variable=libdir nss) %global NSS_LIBS %(pkg-config --libs nss) %global NSS_CFLAGS %(pkg-config --cflags nss-softokn) +# see https://bugzilla.redhat.com/show_bug.cgi?id=1332456 +%global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : ) +%global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : ) +#this is worakround for processing of requires during srpm creation +%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi) +%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" == "x" ] ; then echo "" ;else echo ">= %{NSS_BUILDTIME_NUMBER}" ;fi) # fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 %global _privatelibs libmawt[.]so.* @@ -152,7 +158,7 @@ # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there. %global project aarch32-port %global repo jdk8u -%global revision jdk8u91-b14-aarch32-160510 +%global revision jdk8u102-b14-aarch32-160812 # eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont forget spec escape % by %%) %global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*}) # eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60 @@ -160,7 +166,7 @@ # eg jdk8u60-b27 -> b27 %global buildver %(VERSION=%{revision}; echo ${VERSION##*-}) # priority must be 7 digits in total. The expression is workarounding tip -%global priority %(TIP=18000%{updatever}; echo ${TIP/tip/99}) +%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999}) %global javaver 1.8.0 @@ -630,6 +636,9 @@ Requires: javapackages-tools Requires: tzdata-java >= 2015d # libsctp.so.1 is being `dlopen`ed on demand Requires: lksctp-tools +# there is need to depnd on exact version of nss +Requires: nss %{NSS_BUILDTIME_VERSION} +Requires: nss-softokn %{NSSSOFTOKN_BUILDTIME_VERSION} # tool to copy jdk's configs - should be Recommends only, but then only dnf/yum eforce it, not rpm transaction and so no configs are persisted when pure rpm -u is run. I t may be consiedered as regression Requires: copy-jdk-configs >= 1.1-3 OrderWithRequires: copy-jdk-configs @@ -808,10 +817,22 @@ Patch512: no_strict_overflow.patch # PR1983: Support using the system installation of NSS with the SunEC provider # PR2127: SunEC provider crashes when built using system NSS # PR2815: Race condition in SunEC provider with system NSS +# PR2899: Don't use WithSeed versions of NSS functions as they don't fully process the seed +# PR2934: SunEC provider throwing KeyException with current NSS Patch513: pr1983-jdk.patch Patch514: pr1983-root.patch Patch515: pr2127.patch Patch516: pr2815.patch +Patch517: pr2899.patch +Patch518: pr2934.patch +# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong result +# In progress: http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html +Patch508: rh1176206-jdk.patch +Patch509: rh1176206-root.patch +# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than system line endings +Patch523: pr2974-rh1337583.patch +# PR3083, RH1346460: Regression in SSL debug output without an ECC provider +Patch528: pr3083-rh1346460.patch # Arch-specific upstreamable patches # PR2415: JVM -Xmx requirement is too high on s390 @@ -821,19 +842,6 @@ Patch102: java-1.8.0-openjdk-size_t.patch # Use "%z" for size_t on s390 as size_t != intptr_t Patch103: s390-size_t_format_flags.patch -# AArch64-specific upstreamable patches -# Remove template in AArch64 port which causes issues with GCC 6 -Patch106: remove_aarch64_template_for_gcc6.patch - -# AArch64-specific upstreamed patches -# Remove accidentally included global large code cache changes which break S390 -Patch107: make_reservedcodecachesize_changes_aarch64_only.patch - -# Patches which need backporting to 8u -# S8073139, RH1191652; fix name of ppc64le architecture -Patch601: java-1.8.0-openjdk-rh1191652-root.patch -Patch602: java-1.8.0-openjdk-rh1191652-jdk.patch -Patch603: java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch # Include all sources in src.zip Patch7: include-all-srcs.patch # 8035341: Allow using a system installed libpng @@ -843,29 +851,29 @@ Patch203: system-lcms.patch # PR2462: Backport "8074839: Resolve disabled warnings for libunpack and the unpack200 binary" # This fixes printf warnings that lead to build failure with -Werror=format-security from optflags Patch502: pr2462.patch -# S8140620, PR2769: Find and load default.sf2 as the default soundbank on Linux -# waiting on upstream: http://mail.openjdk.java.net/pipermail/jdk8u-dev/2016-January/004916.html -Patch605: soundFontPatch.patch # S8148351, PR2842: Only display resolved symlink for compiler, do not change path Patch506: pr2842-01.patch Patch507: pr2842-02.patch -# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong result -# In progress: http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html -Patch508: rh1176206-jdk.patch -Patch509: rh1176206-root.patch +# S8154313: Generated javadoc scattered all over the place +Patch400: 8154313.patch +# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate +Patch526: 6260348-pr3066.patch -# Patches upstream and appearing in 8u76 -# Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656 -# 8087120: [GCC5] java.lang.StackOverflowError on Zero JVM initialization on non x86 platforms -Patch403: rhbz1206656_fix_current_stack_pointer.patch -# S8143855: Bad printf formatting in frame_zero.cpp -Patch505: 8143855.patch +# Patches upstream and appearing in 8u112 +# S8044762, PR2960: com/sun/jdi/OptionTest.java test time out +Patch521: 8044762-pr2960.patch +# S8049226, PR2960: com/sun/jdi/OptionTest.java test times out again +Patch522: 8049226-pr2960.patch # Patches ineligible for 8u # 8043805: Allow using a system-installed libjpeg Patch201: system-libjpeg.patch # Local fixes +# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS +Patch525: pr1834-rh1022017.patch +# Temporary fix for typo in CORBA security patch +Patch529: corba_typo_fix.patch # Non-OpenJDK fixes Patch300: jstack-pr1845.patch @@ -1135,21 +1143,8 @@ sh %{SOURCE12} %patch102 %patch103 -# aarch64 build fixes -#%patch106 -#%patch107 - -# Zero PPC fixes. -#%patch403 - -#%patch603 -#%patch601 -#%patch602 -%patch605 - %patch502 %patch504 -#%patch505 %patch506 %patch507 %patch508 @@ -1160,6 +1155,15 @@ sh %{SOURCE12} %patch514 %patch515 %patch516 +%patch517 +%patch518 +%patch400 +%patch521 +%patch522 +%patch523 +%patch525 +%patch528 +%patch529 # Extract systemtap tapsets %if %{with_systemtap} @@ -1723,6 +1727,16 @@ require "copy_jdk_configs.lua" %endif %changelog +* Sun Aug 14 2016 Alex Kashchenko - 1:1.8.0.102-1.160812 +- remove upstreamed soundFontPatch.patch +- added patches 6260348-pr3066.patch, pr2974-rh1337583.patch, pr3083-rh1346460.patch, pr2899.patch, pr2934.patch, pr1834-rh1022017.patch, corba_typo_fix.patch, 8154313.patch +- removed unused patches java-1.8.0-openjdk-rh1191652-root.patch, java-1.8.0-openjdk-rh1191652-jdk.patch, java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch +- removed upstreamed (and previously unused) patches 8143855.patch, rhbz1206656_fix_current_stack_pointer.patch, remove_aarch64_template_for_gcc6.patch, make_reservedcodecachesize_changes_aarch64_only.patch +- added JDWP patches 8044762-pr2960.patch and 8049226-pr2960.patch +- priority lowered for ine zero digit, tip moved to 999 +- Restricted to depend on exactly same version of nss as used for build, +- Resolves: rhbz#1332456 +- used aarch32-port-jdk8u-jdk8u102-b14-aarch32-160812.tar.xz as new sources * Wed Jun 29 2016 Jiri Vanek - 1:1.8.0.91-1.160510 - initial clone form java-1.8.0-openjdk - using aarch32 sources diff --git a/pr1834-rh1022017.patch b/pr1834-rh1022017.patch new file mode 100644 index 0000000..1b3c903 --- /dev/null +++ b/pr1834-rh1022017.patch @@ -0,0 +1,44 @@ +diff -r a5c3d9643077 src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java +--- openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Tue Feb 10 16:24:28 2015 +0000 ++++ openjdk/jdk/src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java Thu May 14 04:01:02 2015 +0100 +@@ -37,25 +37,11 @@ + // the extension value to send in the ClientHello message + static final SupportedEllipticCurvesExtension DEFAULT; + +- private static final boolean fips; +- + static { +- int[] ids; +- fips = SunJSSE.isFIPS(); +- if (fips == false) { +- ids = new int[] { +- // NIST curves first +- // prefer NIST P-256, rest in order of increasing key length +- 23, 1, 3, 19, 21, 6, 7, 9, 10, 24, 11, 12, 25, 13, 14, +- // non-NIST curves +- 15, 16, 17, 2, 18, 4, 5, 20, 8, 22, +- }; +- } else { +- ids = new int[] { +- // same as above, but allow only NIST curves in FIPS mode +- 23, 1, 3, 19, 21, 6, 7, 9, 10, 24, 11, 12, 25, 13, 14, +- }; +- } ++ int[] ids = new int[] { ++ // NSS currently only supports these three NIST curves ++ 23, 24, 25 ++ }; + DEFAULT = new SupportedEllipticCurvesExtension(ids); + } + +@@ -150,10 +136,6 @@ + if ((index <= 0) || (index >= NAMED_CURVE_OID_TABLE.length)) { + return false; + } +- if (fips == false) { +- // in non-FIPS mode, we support all valid indices +- return true; +- } + return DEFAULT.contains(index); + } + diff --git a/pr2899.patch b/pr2899.patch new file mode 100644 index 0000000..58fb3c8 --- /dev/null +++ b/pr2899.patch @@ -0,0 +1,23 @@ +# HG changeset patch +# User andrew +# Date 1459313680 -3600 +# Wed Mar 30 05:54:40 2016 +0100 +# Node ID 9dc0eca5fa8926e6a952fa4f1931e78aa1f52443 +# Parent 8957aff589013e671f02d38023d5ff245ef27e87 +PR2899: Don't use WithSeed versions of NSS functions as they don't fully process the seed +Contributed-by: Alex Kashchenko + +diff -r 8957aff58901 -r 9dc0eca5fa89 src/share/native/sun/security/ec/ecc_impl.h +--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 04:48:56 2016 +0100 ++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Mar 30 05:54:40 2016 +0100 +@@ -267,8 +267,8 @@ + + #ifdef SYSTEM_NSS + #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b) +-#define EC_NewKey(a,b,c,d,e) EC_NewKeyFromSeed(a,b,c,d) +-#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigestWithSeed(a,b,c,d,e) ++#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b) ++#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c) + #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c) + #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e) + #else diff --git a/pr2934.patch b/pr2934.patch new file mode 100644 index 0000000..21e769d --- /dev/null +++ b/pr2934.patch @@ -0,0 +1,90 @@ +# HG changeset patch +# User andrew +# Date 1461349033 -3600 +# Fri Apr 22 19:17:13 2016 +0100 +# Node ID dab76de2f91cf1791c03560a3f45aaa69f8351fd +# Parent 3fa42705acab6d69b6141f47ebba4f85739a338c +PR2934: SunEC provider throwing KeyException with current NSS +Summary: Initialise the random number generator and feed the seed to it. + +diff -r 3fa42705acab -r dab76de2f91c src/share/native/sun/security/ec/ECC_JNI.cpp +--- openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Apr 20 03:39:11 2016 +0100 ++++ openjdk/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Fri Apr 22 19:17:13 2016 +0100 +@@ -134,8 +134,17 @@ + env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer); + + // Generate the new keypair (using the supplied seed) ++#ifdef SYSTEM_NSS ++ if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength) ++ != SECSuccess) { ++ ThrowException(env, KEY_EXCEPTION); ++ goto cleanup; ++ } ++ if (EC_NewKey(ecparams, &privKey) != SECSuccess) { ++#else + if (EC_NewKey(ecparams, &privKey, (unsigned char *) pSeedBuffer, + jSeedLength, 0) != SECSuccess) { ++#endif + ThrowException(env, KEY_EXCEPTION); + goto cleanup; + } +@@ -267,8 +276,18 @@ + env->GetByteArrayRegion(seed, 0, jSeedLength, pSeedBuffer); + + // Sign the digest (using the supplied seed) ++#ifdef SYSTEM_NSS ++ if (RNG_RandomUpdate((unsigned char *) pSeedBuffer, jSeedLength) ++ != SECSuccess) { ++ ThrowException(env, KEY_EXCEPTION); ++ goto cleanup; ++ } ++ if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item) ++ != SECSuccess) { ++#else + if (ECDSA_SignDigest(&privKey, &signature_item, &digest_item, + (unsigned char *) pSeedBuffer, jSeedLength, 0) != SECSuccess) { ++#endif + ThrowException(env, KEY_EXCEPTION); + goto cleanup; + } +@@ -499,6 +518,9 @@ + if (SECOID_Init() != SECSuccess) { + ThrowException(env, INTERNAL_ERROR); + } ++ if (RNG_RNGInit() != SECSuccess) { ++ ThrowException(env, INTERNAL_ERROR); ++ } + #endif + } + +@@ -507,6 +529,7 @@ + (JNIEnv *env, jclass UNUSED(clazz)) + { + #ifdef SYSTEM_NSS ++ RNG_RNGShutdown(); + if (SECOID_Shutdown() != SECSuccess) { + ThrowException(env, INTERNAL_ERROR); + } +diff -r 3fa42705acab -r dab76de2f91c src/share/native/sun/security/ec/ecc_impl.h +--- openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Wed Apr 20 03:39:11 2016 +0100 ++++ openjdk/jdk/src/share/native/sun/security/ec/ecc_impl.h Fri Apr 22 19:17:13 2016 +0100 +@@ -254,8 +254,10 @@ + This function is no longer required because the random bytes are now + supplied by the caller. Force a failure. + */ ++#ifndef SYSTEM_NSS + #define RNG_GenerateGlobalRandomBytes(p,l) SECFailure + #endif ++#endif + #define CHECK_MPI_OK(func) if (MP_OKAY > (err = func)) goto cleanup + #define MP_TO_SEC_ERROR(err) + +@@ -267,8 +269,6 @@ + + #ifdef SYSTEM_NSS + #define EC_DecodeParams(a,b,c) EC_DecodeParams(a,b) +-#define EC_NewKey(a,b,c,d,e) EC_NewKey(a,b) +-#define ECDSA_SignDigest(a,b,c,d,e,f) ECDSA_SignDigest(a,b,c) + #define ECDSA_VerifyDigest(a,b,c,d) ECDSA_VerifyDigest(a,b,c) + #define ECDH_Derive(a,b,c,d,e,f) ECDH_Derive(a,b,c,d,e) + #else diff --git a/pr2974-rh1337583.patch b/pr2974-rh1337583.patch new file mode 100644 index 0000000..5c00050 --- /dev/null +++ b/pr2974-rh1337583.patch @@ -0,0 +1,148 @@ +# HG changeset patch +# User andrew +# Date 1464316115 -3600 +# Fri May 27 03:28:35 2016 +0100 +# Node ID 794541fbbdc323f7da8a5cee75611f977eee66ee +# Parent 0be28a33e12dfc9ae1e4be381530643f691d351a +PR2974: PKCS#10 certificate requests now use CRLF line endings rather than system line endings +Summary: Add -systemlineendings option to keytool to allow system line endings to be used again. + +diff -r 0be28a33e12d -r 794541fbbdc3 src/share/classes/sun/security/pkcs10/PKCS10.java +--- openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java Tue Dec 29 10:40:43 2015 -0500 ++++ openjdk/jdk/src/share/classes/sun/security/pkcs10/PKCS10.java Fri May 27 03:28:35 2016 +0100 +@@ -30,6 +30,7 @@ + import java.io.IOException; + import java.math.BigInteger; + ++import java.security.AccessController; + import java.security.cert.CertificateException; + import java.security.NoSuchAlgorithmException; + import java.security.InvalidKeyException; +@@ -39,6 +40,7 @@ + + import java.util.Base64; + ++import sun.security.action.GetPropertyAction; + import sun.security.util.*; + import sun.security.x509.AlgorithmId; + import sun.security.x509.X509Key; +@@ -76,6 +78,14 @@ + * @author Hemma Prafullchandra + */ + public class PKCS10 { ++ ++ private static final byte[] sysLineEndings; ++ ++ static { ++ sysLineEndings = ++ AccessController.doPrivileged(new GetPropertyAction("line.separator")).getBytes(); ++ } ++ + /** + * Constructs an unsigned PKCS #10 certificate request. Before this + * request may be used, it must be encoded and signed. Then it +@@ -286,13 +296,39 @@ + */ + public void print(PrintStream out) + throws IOException, SignatureException { ++ print(out, false); ++ } ++ ++ /** ++ * Prints an E-Mailable version of the certificate request on the print ++ * stream passed. The format is a common base64 encoded one, supported ++ * by most Certificate Authorities because Netscape web servers have ++ * used this for some time. Some certificate authorities expect some ++ * more information, in particular contact information for the web ++ * server administrator. ++ * ++ * @param out the print stream where the certificate request ++ * will be printed. ++ * @param systemLineEndings true if the request should be terminated ++ * using the system line endings. ++ * @exception IOException when an output operation failed ++ * @exception SignatureException when the certificate request was ++ * not yet signed. ++ */ ++ public void print(PrintStream out, boolean systemLineEndings) ++ throws IOException, SignatureException { ++ byte[] lineEndings; ++ + if (encoded == null) + throw new SignatureException("Cert request was not signed"); + ++ if (systemLineEndings) ++ lineEndings = sysLineEndings; ++ else ++ lineEndings = new byte[] {'\r', '\n'}; // CRLF + +- byte[] CRLF = new byte[] {'\r', '\n'}; + out.println("-----BEGIN NEW CERTIFICATE REQUEST-----"); +- out.println(Base64.getMimeEncoder(64, CRLF).encodeToString(encoded)); ++ out.println(Base64.getMimeEncoder(64, lineEndings).encodeToString(encoded)); + out.println("-----END NEW CERTIFICATE REQUEST-----"); + } + +diff -r 0be28a33e12d -r 794541fbbdc3 src/share/classes/sun/security/tools/keytool/Main.java +--- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java Tue Dec 29 10:40:43 2015 -0500 ++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Main.java Fri May 27 03:28:35 2016 +0100 +@@ -117,6 +117,7 @@ + private String infilename = null; + private String outfilename = null; + private String srcksfname = null; ++ private boolean systemLineEndings = false; + + // User-specified providers are added before any command is called. + // However, they are not removed before the end of the main() method. +@@ -163,7 +164,7 @@ + CERTREQ("Generates.a.certificate.request", + ALIAS, SIGALG, FILEOUT, KEYPASS, KEYSTORE, DNAME, + STOREPASS, STORETYPE, PROVIDERNAME, PROVIDERCLASS, +- PROVIDERARG, PROVIDERPATH, V, PROTECTED), ++ PROVIDERARG, PROVIDERPATH, SYSTEMLINEENDINGS, V, PROTECTED), + CHANGEALIAS("Changes.an.entry.s.alias", + ALIAS, DESTALIAS, KEYPASS, KEYSTORE, STOREPASS, + STORETYPE, PROVIDERNAME, PROVIDERCLASS, PROVIDERARG, +@@ -296,6 +297,7 @@ + STARTDATE("startdate", "", "certificate.validity.start.date.time"), + STOREPASS("storepass", "", "keystore.password"), + STORETYPE("storetype", "", "keystore.type"), ++ SYSTEMLINEENDINGS("systemlineendings", null, "system.line.endings"), + TRUSTCACERTS("trustcacerts", null, "trust.certificates.from.cacerts"), + V("v", null, "verbose.output"), + VALIDITY("validity", "", "validity.number.of.days"); +@@ -537,6 +539,8 @@ + protectedPath = true; + } else if (collator.compare(flags, "-srcprotected") == 0) { + srcprotectedPath = true; ++ } else if (collator.compare(flags, "-systemlineendings") == 0) { ++ systemLineEndings = true; + } else { + System.err.println(rb.getString("Illegal.option.") + flags); + tinyHelp(); +@@ -1335,7 +1339,7 @@ + + // Sign the request and base-64 encode it + request.encodeAndSign(subject, signature); +- request.print(out); ++ request.print(out, systemLineEndings); + } + + /** +@@ -4191,4 +4195,3 @@ + return new Pair<>(a,b); + } + } +- +diff -r 0be28a33e12d -r 794541fbbdc3 src/share/classes/sun/security/tools/keytool/Resources.java +--- openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java Tue Dec 29 10:40:43 2015 -0500 ++++ openjdk/jdk/src/share/classes/sun/security/tools/keytool/Resources.java Fri May 27 03:28:35 2016 +0100 +@@ -168,6 +168,8 @@ + "keystore password"}, //-storepass + {"keystore.type", + "keystore type"}, //-storetype ++ {"system.line.endings", ++ "use system line endings rather than CRLF to terminate output"}, //-systemlineendings + {"trust.certificates.from.cacerts", + "trust certificates from cacerts"}, //-trustcacerts + {"verbose.output", diff --git a/pr3083-rh1346460.patch b/pr3083-rh1346460.patch new file mode 100644 index 0000000..d44ed1d --- /dev/null +++ b/pr3083-rh1346460.patch @@ -0,0 +1,152 @@ +# HG changeset patch +# User andrew +# Date 1467652889 -3600 +# Mon Jul 04 18:21:29 2016 +0100 +# Node ID a4541d1d8609cadb08d3e31b40b9184ff32dd6c3 +# Parent bc6eab2038c603afb2eb2b4644f3b900c8fd0c46 +PR3083, RH1346460: Regression in SSL debug output without an ECC provider +Summary: Return null rather than throwing an exception when there's no ECC provider. + +diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/Debug.java +--- openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 17:08:12 2016 +0100 ++++ openjdk/jdk/src/share/classes/sun/security/util/Debug.java Mon Jul 04 18:21:29 2016 +0100 +@@ -73,6 +73,7 @@ + System.err.println("certpath PKIX CertPathBuilder and"); + System.err.println(" CertPathValidator debugging"); + System.err.println("combiner SubjectDomainCombiner debugging"); ++ System.err.println("ecc Elliptic Curve Cryptography debugging"); + System.err.println("gssloginconfig"); + System.err.println(" GSS LoginConfigImpl debugging"); + System.err.println("configfile JAAS ConfigFile loading"); +diff -r bc6eab2038c6 -r a4541d1d8609 src/share/classes/sun/security/util/ECUtil.java +--- openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 17:08:12 2016 +0100 ++++ openjdk/jdk/src/share/classes/sun/security/util/ECUtil.java Mon Jul 04 18:21:29 2016 +0100 +@@ -41,6 +41,9 @@ + + public class ECUtil { + ++ /* Are we debugging ? */ ++ private static final Debug debug = Debug.getInstance("ecc"); ++ + // Used by SunPKCS11 and SunJSSE. + public static ECPoint decodePoint(byte[] data, EllipticCurve curve) + throws IOException { +@@ -90,6 +93,10 @@ + } + + private static AlgorithmParameters getECParameters(Provider p) { ++ return getECParameters(p, false); ++ } ++ ++ private static AlgorithmParameters getECParameters(Provider p, boolean throwException) { + try { + if (p != null) { + return AlgorithmParameters.getInstance("EC", p); +@@ -97,13 +104,21 @@ + + return AlgorithmParameters.getInstance("EC"); + } catch (NoSuchAlgorithmException nsae) { +- throw new RuntimeException(nsae); ++ if (throwException) { ++ throw new RuntimeException(nsae); ++ } else { ++ // ECC provider is optional so just return null ++ if (debug != null) { ++ debug.println("Provider unavailable: " + nsae); ++ } ++ return null; ++ } + } + } + + public static byte[] encodeECParameterSpec(Provider p, + ECParameterSpec spec) { +- AlgorithmParameters parameters = getECParameters(p); ++ AlgorithmParameters parameters = getECParameters(p, true); + + try { + parameters.init(spec); +@@ -122,11 +137,16 @@ + public static ECParameterSpec getECParameterSpec(Provider p, + ECParameterSpec spec) { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(spec); + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + } +@@ -135,34 +155,49 @@ + byte[] params) + throws IOException { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + parameters.init(params); + + try { + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + } + + public static ECParameterSpec getECParameterSpec(Provider p, String name) { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(new ECGenParameterSpec(name)); + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + } + + public static ECParameterSpec getECParameterSpec(Provider p, int keySize) { + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(new ECKeySizeParameterSpec(keySize)); + return parameters.getParameterSpec(ECParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + +@@ -171,11 +206,16 @@ + public static String getCurveName(Provider p, ECParameterSpec spec) { + ECGenParameterSpec nameSpec; + AlgorithmParameters parameters = getECParameters(p); ++ if (parameters == null) ++ return null; + + try { + parameters.init(spec); + nameSpec = parameters.getParameterSpec(ECGenParameterSpec.class); + } catch (InvalidParameterSpecException ipse) { ++ if (debug != null) { ++ debug.println("Invalid parameter specification: " + ipse); ++ } + return null; + } + diff --git a/sources b/sources index ba9b7d4..0dd4b33 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -8a594be659a403b7cb623d83602cdd50 aarch32-port-jdk8u-jdk8u91-b14-aarch32-160510.tar.xz +0c31ca88b41abdb3d024d0ea074bc41d aarch32-port-jdk8u-jdk8u102-b14-aarch32-160812.tar.xz 94ca5a45c3cb3b85c4577d0891166007 systemtap-tapset.tar.gz