Mercurial > hg > release > icedtea6-1.13
changeset 3199:d9bd9c11a6bc
Add backports and bug fixes scheduled for 1.13.7.
S6584008, PR2195, RH1173326: jvmtiStringPrimitiveCallback should not be invoked when string value is null
S7199862, PR2198: Make sure that a connection is still alive when retrieved from KeepAliveCache in certain cases
S8074312, PR2255: Enable hotspot builds on Linux 4.x
PR2197: jhat man page has broken URL
PR2201: Support giflib 5.1.0
PR2211: DGifCloseFile call should check the return value, not the error code, for failure
PR2226: giflib 5.1 conditional excludes 6.0, 7.0, etc.
2015-04-03 Andrew John Hughes <gnu.andrew@redhat.com>
* Makefile.am:
(ICEDTEA_PATCHES): Add new patches.
* NEWS: Updated.
* patches/openjdk/6584008-pr2195-jvmtistringprimitivecallback_null_string.patch,
* patches/openjdk/7199862-pr2198-ensure_cache_connection_still_alive.patch,
* patches/openjdk/8074312-pr2255-support_linux_4.patch,
* patches/pr2197-jhat_man_page_url.patch,
* patches/pr2201-support_giflib_5.1.patch,
* patches/pr2211-check_dgifclosefile_return.patch,
* patches/pr2226-support_future_giflib_6_and_up.patch:
Add new backports and bug fixes.
author | Andrew John Hughes <gnu.andrew@redhat.com> |
---|---|
date | Thu, 09 Apr 2015 17:12:59 +0100 |
parents | c2b52092a6a7 |
children | 93b80a863f3d |
files | ChangeLog Makefile.am NEWS patches/openjdk/6584008-pr2195-jvmtistringprimitivecallback_null_string.patch patches/openjdk/7199862-pr2198-ensure_cache_connection_still_alive.patch patches/openjdk/8074312-pr2255-support_linux_4.patch patches/pr2197-jhat_man_page_url.patch patches/pr2201-support_giflib_5.1.patch patches/pr2211-check_dgifclosefile_return.patch patches/pr2226-support_future_giflib_6_and_up.patch |
diffstat | 10 files changed, 369 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Jan 27 02:18:51 2015 +0000 +++ b/ChangeLog Thu Apr 09 17:12:59 2015 +0100 @@ -1,3 +1,17 @@ +2015-04-03 Andrew John Hughes <gnu.andrew@redhat.com> + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patches. + * NEWS: Updated. + * patches/openjdk/6584008-pr2195-jvmtistringprimitivecallback_null_string.patch, + * patches/openjdk/7199862-pr2198-ensure_cache_connection_still_alive.patch, + * patches/openjdk/8074312-pr2255-support_linux_4.patch, + * patches/pr2197-jhat_man_page_url.patch, + * patches/pr2201-support_giflib_5.1.patch, + * patches/pr2211-check_dgifclosefile_return.patch, + * patches/pr2226-support_future_giflib_6_and_up.patch: + Add new backports and bug fixes. + 2015-01-27 Andrew John Hughes <gnu.andrew@redhat.com> * NEWS: Add 1.13.7 section.
--- a/Makefile.am Tue Jan 27 02:18:51 2015 +0000 +++ b/Makefile.am Thu Apr 09 17:12:59 2015 +0100 @@ -607,7 +607,14 @@ patches/openjdk/7031830-pr2183-bad_record_mac_failure.patch \ patches/openjdk/oj52-pr2185-no_serbia_montenegro.patch \ patches/openjdk/oj53-pr2181-strict_aliasing_on_ppc32.patch \ - patches/openjdk/oj54-pr2182-6911104_reintroduces_test_fragment.patch + patches/openjdk/oj54-pr2182-6911104_reintroduces_test_fragment.patch \ + patches/openjdk/6584008-pr2195-jvmtistringprimitivecallback_null_string.patch \ + patches/openjdk/7199862-pr2198-ensure_cache_connection_still_alive.patch \ + patches/openjdk/8074312-pr2255-support_linux_4.patch \ + patches/pr2197-jhat_man_page_url.patch \ + patches/pr2201-support_giflib_5.1.patch \ + patches/pr2211-check_dgifclosefile_return.patch \ + patches/pr2226-support_future_giflib_6_and_up.patch if WITH_RHINO ICEDTEA_PATCHES += \
--- a/NEWS Tue Jan 27 02:18:51 2015 +0000 +++ b/NEWS Thu Apr 09 17:12:59 2015 +0100 @@ -14,6 +14,16 @@ New in release 1.13.7 (2015-04-XX): + * Backports + - S6584008, PR2195, RH1173326: jvmtiStringPrimitiveCallback should not be invoked when string value is null + - S7199862, PR2198: Make sure that a connection is still alive when retrieved from KeepAliveCache in certain cases + - S8074312, PR2255: Enable hotspot builds on Linux 4.x + * Bug fixes + - PR2197: jhat man page has broken URL + - PR2201: Support giflib 5.1.0 + - PR2211: DGifCloseFile call should check the return value, not the error code, for failure + - PR2226: giflib 5.1 conditional excludes 6.0, 7.0, etc. + New in release 1.13.6 (2015-01-23): * Security fixes
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6584008-pr2195-jvmtistringprimitivecallback_null_string.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,30 @@ +# HG changeset patch +# User aph +# Date 1421396122 -3600 +# Fri Jan 16 09:15:22 2015 +0100 +# Node ID 9686a796c829bf0d5a4303947474a97e0fd5826c +# Parent 1830156c6b7ee6ccc6ee21113fb537df507d2974 +6584008: jvmtiStringPrimitiveCallback should not be invoked when string value is null +Reviewed-by: sla, sspitsyn + +diff -r 1830156c6b7e -r 9686a796c829 src/share/vm/prims/jvmtiTagMap.cpp +--- openjdk/hotspot/src/share/vm/prims/jvmtiTagMap.cpp Wed Feb 04 04:31:38 2015 -0500 ++++ openjdk/hotspot/src/share/vm/prims/jvmtiTagMap.cpp Fri Jan 16 09:15:22 2015 +0100 +@@ -1045,10 +1045,16 @@ + { + assert(str->klass() == SystemDictionary::String_klass(), "not a string"); + ++ typeArrayOop s_value = java_lang_String::value(str); ++ ++ // JDK-6584008: the value field may be null if a String instance is ++ // partially constructed. ++ if (s_value == NULL) { ++ return 0; ++ } + // get the string value and length + // (string value may be offset from the base) + int s_len = java_lang_String::length(str); +- typeArrayOop s_value = java_lang_String::value(str); + int s_offset = java_lang_String::offset(str); + jchar* value; + if (s_len > 0) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7199862-pr2198-ensure_cache_connection_still_alive.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,165 @@ +diff -r c4ed64237075 src/share/classes/sun/net/www/http/HttpClient.java +--- openjdk/jdk/src/share/classes/sun/net/www/http/HttpClient.java Wed Apr 01 00:13:50 2015 +0100 ++++ openjdk/jdk/src/share/classes/sun/net/www/http/HttpClient.java Thu Apr 02 18:21:08 2015 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1994, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1994, 2012, 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 +@@ -251,16 +251,17 @@ + */ + public static HttpClient New(URL url) + throws IOException { +- return HttpClient.New(url, Proxy.NO_PROXY, -1, true); ++ return HttpClient.New(url, Proxy.NO_PROXY, -1, true, null); + } + + public static HttpClient New(URL url, boolean useCache) + throws IOException { +- return HttpClient.New(url, Proxy.NO_PROXY, -1, useCache); ++ return HttpClient.New(url, Proxy.NO_PROXY, -1, useCache, null); + } + +- public static HttpClient New(URL url, Proxy p, int to, boolean useCache) +- throws IOException { ++ public static HttpClient New(URL url, Proxy p, int to, boolean useCache, ++ HttpURLConnection httpuc) throws IOException ++ { + if (p == null) { + p = Proxy.NO_PROXY; + } +@@ -268,6 +269,12 @@ + /* see if one's already around */ + if (useCache) { + ret = (HttpClient) kac.get(url, null); ++ if (ret != null && httpuc != null && ++ httpuc.streaming() && ++ httpuc.getRequestMethod() == "POST") { ++ if (!ret.available()) ++ ret = null; ++ } + if (ret != null) { + if ((ret.proxy != null && ret.proxy.equals(p)) || + (ret.proxy == null && p == null)) { +@@ -306,20 +313,25 @@ + return ret; + } + +- public static HttpClient New(URL url, Proxy p, int to) throws IOException { +- return New(url, p, to, true); ++ public static HttpClient New(URL url, Proxy p, int to, ++ HttpURLConnection httpuc) throws IOException ++ { ++ return New(url, p, to, true, httpuc); + } + + public static HttpClient New(URL url, String proxyHost, int proxyPort, + boolean useCache) + throws IOException { +- return New(url, newHttpProxy(proxyHost, proxyPort, "http"), -1, useCache); ++ return New(url, newHttpProxy(proxyHost, proxyPort, "http"), ++ -1, useCache, null); + } + + public static HttpClient New(URL url, String proxyHost, int proxyPort, +- boolean useCache, int to) ++ boolean useCache, int to, ++ HttpURLConnection httpuc) + throws IOException { +- return New(url, newHttpProxy(proxyHost, proxyPort, "http"), to, useCache); ++ return New(url, newHttpProxy(proxyHost, proxyPort, "http"), ++ to, useCache, httpuc); + } + + /* return it to the cache as still usable, if: +@@ -348,6 +360,33 @@ + } + } + ++ protected synchronized boolean available() throws IOException { ++ boolean available = true; ++ int old = serverSocket.getSoTimeout(); ++ serverSocket.setSoTimeout(1); ++ BufferedInputStream tmpbuf = ++ new BufferedInputStream(serverSocket.getInputStream()); ++ ++ try { ++ int r = tmpbuf.read(); ++ if (r == -1) { ++ if (HttpCapture.isLoggable("FINEST")) { ++ HttpCapture.finest("HttpClient.available(): " + ++ "read returned -1: not available"); ++ } ++ available = false; ++ } ++ } catch (SocketTimeoutException e) { ++ if (HttpCapture.isLoggable("FINEST")) { ++ HttpCapture.finest("HttpClient.available(): " + ++ "SocketTimeout: its available"); ++ } ++ } finally { ++ serverSocket.setSoTimeout(old); ++ } ++ return available; ++ } ++ + protected synchronized void putInKeepAliveCache() { + if (inCache) { + assert false : "Duplicate put to keep alive cache"; +diff -r c4ed64237075 src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java +--- openjdk/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Wed Apr 01 00:13:50 2015 +0100 ++++ openjdk/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Thu Apr 02 18:21:08 2015 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1995, 2012, 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 +@@ -619,7 +619,7 @@ + */ + protected void setNewClient (URL url, boolean useCache) + throws IOException { +- http = HttpClient.New(url, null, -1, useCache, connectTimeout); ++ http = HttpClient.New(url, null, -1, useCache, connectTimeout, this); + http.setReadTimeout(readTimeout); + } + +@@ -660,7 +660,8 @@ + String proxyHost, int proxyPort, + boolean useCache) + throws IOException { +- http = HttpClient.New (url, proxyHost, proxyPort, useCache, connectTimeout); ++ http = HttpClient.New (url, proxyHost, proxyPort, useCache, ++ connectTimeout, this); + http.setReadTimeout(readTimeout); + } + +@@ -951,14 +952,14 @@ + // subclass HttpsClient will overwrite & return an instance of HttpsClient + protected HttpClient getNewHttpClient(URL url, Proxy p, int connectTimeout) + throws IOException { +- return HttpClient.New(url, p, connectTimeout); ++ return HttpClient.New(url, p, connectTimeout, this); + } + + // subclass HttpsClient will overwrite & return an instance of HttpsClient + protected HttpClient getNewHttpClient(URL url, Proxy p, + int connectTimeout, boolean useCache) + throws IOException { +- return HttpClient.New(url, p, connectTimeout, useCache); ++ return HttpClient.New(url, p, connectTimeout, useCache, this); + } + + private void expect100Continue() throws IOException { +@@ -1095,7 +1096,7 @@ + } + } + +- private boolean streaming () { ++ public boolean streaming () { + return (fixedContentLength != -1) || (chunkLength != -1); + } +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/8074312-pr2255-support_linux_4.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,19 @@ +diff -Nru openjdk.orig/hotspot/make/linux/Makefile openjdk/hotspot/make/linux/Makefile +--- openjdk.orig/hotspot/make/linux/Makefile 2015-01-20 02:17:59.000000000 +0000 ++++ openjdk/hotspot/make/linux/Makefile 2015-04-01 15:56:23.145797203 +0100 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 1999, 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 +@@ -231,7 +231,7 @@ + # Solaris 2.5.1, 2.6). + # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. + +-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% ++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% + OS_VERSION := $(shell uname -r) + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr2197-jhat_man_page_url.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,52 @@ +# HG changeset patch +# User andrew +# Date 1423073807 0 +# Wed Feb 04 18:16:47 2015 +0000 +# Node ID a7b145722afff8d0677f991b43b35d1e6ec9d23a +# Parent 6e761a451703610814e2099ba709dc22725e10d0 +PR2196, RH1164762: jhat man page has broken URL +Summary: Fix link to HPROF web page to point to version for Oracle JDK 7 +Contributed-by: jvanek@redhat.com + +diff -r 6e761a451703 -r a7b145722aff src/linux/doc/man/jhat.1 +--- openjdk/jdk/src/linux/doc/man/jhat.1 Wed Feb 04 16:52:13 2015 +0000 ++++ openjdk/jdk/src/linux/doc/man/jhat.1 Wed Feb 04 18:16:47 2015 +0000 +@@ -77,7 +77,7 @@ + .na + \f2hprof\fP @ + .fi +-http://java.sun.com/developer/technicalArticles/Programming/HPROF.html. ++https://docs.oracle.com/javase/7/docs/technotes/samples/hprof.html. + .RE + + .LP +@@ -134,7 +134,7 @@ + .na + \f2hprof \- Heap and CPU profiling tool\fP @ + .fi +-http://java.sun.com/developer/technicalArticles/Programming/HPROF.html ++https://docs.oracle.com/javase/7/docs/technotes/samples/hprof.html. + .RE + + .LP +diff -r 6e761a451703 -r a7b145722aff src/solaris/doc/sun/man/man1/jhat.1 +--- openjdk/jdk/src/solaris/doc/sun/man/man1/jhat.1 Wed Feb 04 16:52:13 2015 +0000 ++++ openjdk/jdk/src/solaris/doc/sun/man/man1/jhat.1 Wed Feb 04 18:16:47 2015 +0000 +@@ -77,7 +77,7 @@ + .na + \f2hprof\fP @ + .fi +-http://java.sun.com/developer/technicalArticles/Programming/HPROF.html. ++https://docs.oracle.com/javase/7/docs/technotes/samples/hprof.html. + .RE + + .LP +@@ -134,7 +134,7 @@ + .na + \f2hprof \- Heap and CPU profiling tool\fP @ + .fi +-http://java.sun.com/developer/technicalArticles/Programming/HPROF.html ++https://docs.oracle.com/javase/7/docs/technotes/samples/hprof.html. + .RE + + .LP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr2201-support_giflib_5.1.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,27 @@ +# HG changeset patch +# User andrew +# Date 1423074043 0 +# Wed Feb 04 18:20:43 2015 +0000 +# Node ID 1d647255f65b9561d9821b30b2eb6fd18fad6bad +# Parent a7b145722afff8d0677f991b43b35d1e6ec9d23a +PR2200: Support giflib 5.1.0 +Contributed-by: fridrich.strba@suse.com + +diff -r a7b145722aff -r 1d647255f65b src/share/native/sun/awt/splashscreen/splashscreen_gif.c +--- openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Wed Feb 04 18:16:47 2015 +0000 ++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Wed Feb 04 18:20:43 2015 +0000 +@@ -310,7 +310,14 @@ + free(pBitmapBits); + free(pOldBitmapBits); + ++#if GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 ++ int error = 0; ++ DGifCloseFile(gif, &error); ++ if (error) ++ return 0; ++#else + DGifCloseFile(gif); ++#endif + + return 1; + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr2211-check_dgifclosefile_return.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,23 @@ +# HG changeset patch +# User andrew +# Date 1423101914 0 +# Thu Feb 05 02:05:14 2015 +0000 +# Node ID 3b9f3d7c767ec8d2e8d65c7b819aa135cf9af21e +# Parent 1d647255f65b9561d9821b30b2eb6fd18fad6bad +PR2210: DGifCloseFile call should check the return value, not the error code, for failure +Summary: Avoid passing in an integer reference at all and just use the return value. + +diff -r 1d647255f65b -r 3b9f3d7c767e src/share/native/sun/awt/splashscreen/splashscreen_gif.c +--- openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Wed Feb 04 18:20:43 2015 +0000 ++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Thu Feb 05 02:05:14 2015 +0000 +@@ -311,9 +311,7 @@ + free(pOldBitmapBits); + + #if GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 +- int error = 0; +- DGifCloseFile(gif, &error); +- if (error) ++ if (DGifCloseFile(gif, NULL) == GIF_ERROR) + return 0; + #else + DGifCloseFile(gif);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr2226-support_future_giflib_6_and_up.patch Thu Apr 09 17:12:59 2015 +0100 @@ -0,0 +1,21 @@ +# HG changeset patch +# User andrew +# Date 1423585468 0 +# Tue Feb 10 16:24:28 2015 +0000 +# Node ID 8e740701950bbfd435a8bbe1a39694bf8096d96e +# Parent f8795ed79ba60e5ae655b74ebc27228597419b71 +PR2225: giflib 5.1 conditional excludes 6.0, 7.0, etc. +Summary: Future-proof the giflib 5.1 support + +diff -r f8795ed79ba6 -r 8e740701950b src/share/native/sun/awt/splashscreen/splashscreen_gif.c +--- openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Thu Feb 05 16:11:10 2015 +0000 ++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c Tue Feb 10 16:24:28 2015 +0000 +@@ -310,7 +310,7 @@ + free(pBitmapBits); + free(pOldBitmapBits); + +-#if GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1 ++#if GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1) + if (DGifCloseFile(gif, NULL) == GIF_ERROR) + return 0; + #else