/hg/release/icedtea7-forest-2.4/jdk: 32 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Tue Apr 15 20:50:49 UTC 2014
changeset 612fdc57fca6 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=612fdc57fca6
author: vadim
date: Wed Nov 13 13:19:42 2013 +0400
8023046: Enhance splashscreen support
Reviewed-by: anthony, pchelko, mschoene
changeset ff5b0f171afc in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=ff5b0f171afc
author: pchelko
date: Fri Dec 20 13:37:06 2013 +0400
8025010: Enhance AWT contexts
Reviewed-by: art, serb, hawtin
changeset be14c5a032ab in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=be14c5a032ab
author: weijun
date: Mon Nov 25 15:00:36 2013 +0800
8026067: Enhance signed jar verification
Reviewed-by: ddehaven, ahgross, mullan
changeset d4165e359b3d in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=d4165e359b3d
author: serb
date: Mon Oct 28 20:51:33 2013 +0400
8026163: Enhance media provisioning
Reviewed-by: art, skoivu
changeset 4e9ca79d6358 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=4e9ca79d6358
author: lancea
date: Wed Oct 30 12:30:13 2013 -0400
8026200: Enhance RowSet Factory
Reviewed-by: alanb, skoivu
changeset be96e10d83a8 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=be96e10d83a8
author: robm
date: Wed Jan 15 17:56:27 2014 +0000
8026716: (aio) Enhance asynchronous channel handling
Reviewed-by: alanb, coffeys
changeset 8043b975fe36 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=8043b975fe36
author: malenkov
date: Thu Oct 24 13:10:36 2013 +0400
8026797: Enhance data transfers
Reviewed-by: art, skoivu
changeset e080b4646e2b in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=e080b4646e2b
author: wetmore
date: Thu Jan 16 15:07:56 2014 -0800
8027766: Enhance RSA processing
Summary: Refactored code
Reviewed-by: mullan, xuelei
changeset d4df6bc4ad40 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=d4df6bc4ad40
author: prr
date: Mon Dec 16 10:19:56 2013 -0800
8027775: Enhance ICU code.
Reviewed-by: srl, bae, mschoene
changeset b546b01bdcb3 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=b546b01bdcb3
author: bae
date: Wed Nov 27 12:08:21 2013 +0400
8027841: Enhance pixel manipulations
Reviewed-by: prr, vadim
changeset 2c4fb2498be6 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=2c4fb2498be6
author: lancea
date: Fri Nov 15 11:19:36 2013 -0500
8028385: Enhance RowSet Factory
Reviewed-by: alanb, skoivu
changeset 5a334a43301b in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=5a334a43301b
author: jbachorik
date: Mon Dec 23 14:29:27 2013 +0100
8029286: Enhance subject delegation
Reviewed-by: dfuchs, ahgross
changeset 6614096624fc in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=6614096624fc
author: kizune
date: Thu Dec 19 22:00:54 2013 +0400
8029699: Update Poller demo
Reviewed-by: dcubed
changeset f62cfed25355 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=f62cfed25355
author: serb
date: Fri Jan 10 21:20:55 2014 +0400
8029730: Improve audio device additions
Reviewed-by: prr, mschoene
changeset 39e574735ec8 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=39e574735ec8
author: jbachorik
date: Mon Dec 23 15:33:11 2013 +0100
8029735: Enhance service mgmt natives
Reviewed-by: sla, mschoene
changeset 17321bb1e7a8 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=17321bb1e7a8
author: dfuchs
date: Thu Jan 16 15:13:15 2014 +0100
8029740: Enhance handling of loggers
Reviewed-by: mchung, ahgross
changeset a7d42517d3f1 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=a7d42517d3f1
author: juh
date: Thu Jan 16 18:08:15 2014 -0500
8029745: Enhance algorithm checking
Reviewed-by: mullan
changeset f09a3112e130 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=f09a3112e130
author: prr
date: Tue Jan 21 08:47:30 2014 -0800
8031335: Better color profiling
8029750: Enhance LCMS color processing
Reviewed-by: bae, vadim, mschoene
changeset 295f650717e5 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=295f650717e5
author: pchelko
date: Tue Dec 17 13:59:04 2013 +0400
8029760: Enhance AWT image libraries
Reviewed-by: prr, vadim, mschoene
changeset 37ddcae4e994 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=37ddcae4e994
author: jrose
date: Fri Dec 13 18:03:41 2013 -0800
8029844: Enhance argument validation
Summary: make defensive copy of a varargs array
Reviewed-by: mchung, twisti, ahgross
changeset d8d0385cfde0 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=d8d0385cfde0
author: prr
date: Thu Dec 19 09:20:59 2013 -0800
8029854: Enhance JPEG decodings
Reviewed-by: bae, vadim, mschoene
changeset 9d031873813f in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=9d031873813f
author: vinnie
date: Tue Jan 21 10:55:05 2014 +0000
8030731: Improve name service robustness
Reviewed-by: weijun, michaelm, skoivu
changeset e07840c8307b in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=e07840c8307b
author: serb
date: Tue Jan 21 07:56:57 2014 +0400
8031352: Enhance PNG handling
Reviewed-by: prr, mschoene
changeset 19c17762d8f0 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=19c17762d8f0
author: dmeetry
date: Tue Jan 21 20:38:01 2014 +0400
8031394: (sl) Fix exception handling in ServiceLoader
Reviewed-by: alanb
changeset 4be4362e6c8b in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=4be4362e6c8b
author: robm
date: Mon Jan 27 13:42:59 2014 +0000
8031395: Enhance LDAP processing
Reviewed-by: weijun, coffeys
changeset b66a441ea56a in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=b66a441ea56a
author: prr
date: Fri Jan 24 10:34:31 2014 -0800
8032370: No "Truncated file" warning from IIOReadWarningListener on JPEGImageReader
Reviewed-by: bae, vadim
changeset eb725548e799 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=eb725548e799
author: twisti
date: Mon Feb 03 13:00:51 2014 -0800
8032686: Issues with method invoke
Reviewed-by: jrose, vlivanov, ahgross
changeset bde6db46ee26 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=bde6db46ee26
author: kizune
date: Fri Feb 07 20:21:23 2014 +0400
8033618: Correct logging output
Reviewed-by: ksrini, alanb, ahgross
changeset b10388f3a382 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=b10388f3a382
author: igerasim
date: Wed Mar 12 12:46:11 2014 +0400
8035834: InetAddress.getLocalHost() can hang after JDK-8030731 was fixed
Reviewed-by: vinnie
changeset 5b9b47ebf559 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=5b9b47ebf559
author: mbankal
date: Mon Mar 10 18:40:38 2014 +0000
8036794: Manage JavaScript instances
Reviewed-by: sundar, ahgross
changeset 25072b5b7e78 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=25072b5b7e78
author: pchelko
date: Wed Apr 09 15:27:54 2014 +0100
8031477: [macosx] Loading AWT native library fails
8002191: AWT-Shutdown thread does not start with the AppletSecurity on Linux
8031032: SQE test failures after JDK-8025010 was fixed
Reviewed-by: serb, ddehaven
changeset 9448fff93286 in /hg/release/icedtea7-forest-2.4/jdk
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=9448fff93286
author: andrew
date: Sat Apr 12 00:23:06 2014 +0100
PR1393: JPEG support in build is broken on non-system-libjpeg builds
diffstat:
make/sun/jpeg/FILES_c.gmk | 2 +-
src/macosx/classes/sun/font/CFontManager.java | 31 +-
src/macosx/classes/sun/lwawt/LWToolkit.java | 21 +-
src/macosx/classes/sun/lwawt/macosx/CClipboard.java | 2 +-
src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java | 9 +-
src/macosx/native/sun/awt/LWCToolkit.m | 4 +-
src/macosx/native/sun/awt/awt.m | 11 +-
src/macosx/native/sun/osxapp/ThreadUtilities.h | 4 +-
src/macosx/native/sun/osxapp/ThreadUtilities.m | 27 +-
src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java | 20 +-
src/share/classes/com/sun/jndi/dns/DnsClient.java | 101 ++-
src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java | 21 +-
src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java | 22 +-
src/share/classes/com/sun/media/sound/JDK13Services.java | 129 +--
src/share/classes/com/sun/media/sound/JSSecurityManager.java | 2 +-
src/share/classes/com/sun/rowset/CachedRowSetImpl.java | 23 +-
src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java | 13 +-
src/share/classes/java/awt/EventQueue.java | 4 +-
src/share/classes/java/awt/datatransfer/SystemFlavorMap.java | 63 +-
src/share/classes/java/lang/invoke/BoundMethodHandle.java | 83 +-
src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java | 3 +-
src/share/classes/java/lang/invoke/MethodHandles.java | 2 +
src/share/classes/java/util/ServiceLoader.java | 2 +-
src/share/classes/java/util/jar/JarVerifier.java | 20 +-
src/share/classes/java/util/logging/LogManager.java | 20 +-
src/share/classes/java/util/logging/Logger.java | 38 +-
src/share/classes/javax/script/ScriptEngineManager.java | 24 +-
src/share/classes/javax/sql/rowset/RowSetProvider.java | 26 +-
src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java | 13 +-
src/share/classes/javax/sql/rowset/spi/SyncFactory.java | 48 +-
src/share/classes/sun/awt/AWTAutoShutdown.java | 17 +-
src/share/classes/sun/awt/SunToolkit.java | 3 +-
src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java | 2 +-
src/share/classes/sun/awt/datatransfer/SunClipboard.java | 12 +-
src/share/classes/sun/font/CreatedFontTracker.java | 44 +-
src/share/classes/sun/font/SunFontManager.java | 34 +-
src/share/classes/sun/java2d/Disposer.java | 18 +-
src/share/classes/sun/java2d/opengl/OGLRenderQueue.java | 9 +-
src/share/classes/sun/misc/InnocuousThread.java | 121 ++++
src/share/classes/sun/misc/Service.java | 2 +-
src/share/classes/sun/misc/ThreadGroupUtils.java | 55 ++
src/share/classes/sun/nio/ch/Invoker.java | 12 +
src/share/classes/sun/nio/ch/ThreadPool.java | 35 +-
src/share/classes/sun/security/provider/SeedGenerator.java | 31 +-
src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java | 2 +-
src/share/classes/sun/security/rsa/RSAPadding.java | 131 +++-
src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java | 2 +-
src/share/classes/sun/security/tools/JarSigner.java | 20 +-
src/share/classes/sun/security/util/SignatureFileVerifier.java | 46 +
src/share/native/com/sun/java/util/jar/pack/unpack.cpp | 36 +-
src/share/native/sun/awt/giflib/dgif_lib.c | 4 +-
src/share/native/sun/awt/image/gif/gifdecoder.c | 1 +
src/share/native/sun/awt/image/jpeg/imageioJPEG.c | 4 +
src/share/native/sun/awt/image/jpeg/jpeg-6b/jdmarker.c | 6 +
src/share/native/sun/awt/image/jpeg/jpegdecoder.c | 3 +
src/share/native/sun/awt/libpng/pngrtran.c | 3 +
src/share/native/sun/awt/libpng/pngset.c | 11 +
src/share/native/sun/awt/medialib/awt_ImagingLib.c | 82 ++-
src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp | 1 +
src/share/native/sun/font/layout/ContextualSubstSubtables.cpp | 7 +-
src/share/native/sun/font/layout/LookupProcessor.cpp | 1 +
src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp | 1 +
src/share/native/sun/font/layout/OpenTypeUtilities.cpp | 2 +-
src/share/native/sun/font/layout/SegmentArrayProcessor.cpp | 1 +
src/share/native/sun/font/layout/StateTableProcessor.cpp | 1 +
src/share/native/sun/java2d/cmm/lcms/cmscam02.c | 4 +-
src/share/native/sun/java2d/cmm/lcms/cmscgats.c | 61 +-
src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c | 99 ++-
src/share/native/sun/java2d/cmm/lcms/cmserr.c | 2 -
src/share/native/sun/java2d/cmm/lcms/cmsgamma.c | 59 +-
src/share/native/sun/java2d/cmm/lcms/cmsgmt.c | 54 +-
src/share/native/sun/java2d/cmm/lcms/cmsintrp.c | 69 +-
src/share/native/sun/java2d/cmm/lcms/cmsio0.c | 167 ++++-
src/share/native/sun/java2d/cmm/lcms/cmsio1.c | 242 +++++----
src/share/native/sun/java2d/cmm/lcms/cmslut.c | 89 +-
src/share/native/sun/java2d/cmm/lcms/cmsmd5.c | 2 +-
src/share/native/sun/java2d/cmm/lcms/cmsnamed.c | 52 +-
src/share/native/sun/java2d/cmm/lcms/cmsopt.c | 107 ++-
src/share/native/sun/java2d/cmm/lcms/cmspack.c | 24 +-
src/share/native/sun/java2d/cmm/lcms/cmspcs.c | 4 +
src/share/native/sun/java2d/cmm/lcms/cmsplugin.c | 47 +-
src/share/native/sun/java2d/cmm/lcms/cmsps2.c | 5 +-
src/share/native/sun/java2d/cmm/lcms/cmssamp.c | 246 ++++----
src/share/native/sun/java2d/cmm/lcms/cmstypes.c | 264 +++++----
src/share/native/sun/java2d/cmm/lcms/cmsvirt.c | 191 ++++--
src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c | 66 +-
src/share/native/sun/java2d/cmm/lcms/cmsxform.c | 29 +-
src/share/native/sun/java2d/cmm/lcms/lcms2.h | 18 +-
src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h | 28 +-
src/share/native/sun/management/Flag.c | 4 +-
src/share/native/sun/management/GcInfoBuilder.c | 15 +-
src/solaris/classes/sun/awt/X11/XClipboard.java | 4 +-
src/solaris/classes/sun/awt/X11/XToolkit.java | 21 +-
src/solaris/classes/sun/awt/X11GraphicsDevice.java | 21 +-
src/solaris/demo/jni/Poller/Poller.c | 12 +-
src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.c | 2 +-
src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java | 12 +-
src/windows/classes/sun/awt/windows/WClipboard.java | 3 +-
src/windows/classes/sun/awt/windows/WToolkit.java | 37 +-
src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java | 37 +-
src/windows/native/sun/windows/awt_Toolkit.cpp | 11 +-
101 files changed, 2201 insertions(+), 1455 deletions(-)
diffs (truncated from 8231 to 500 lines):
diff -r a1fe933e5be6 -r 9448fff93286 make/sun/jpeg/FILES_c.gmk
--- a/make/sun/jpeg/FILES_c.gmk Wed Mar 26 16:01:18 2014 +0000
+++ b/make/sun/jpeg/FILES_c.gmk Sat Apr 12 00:23:06 2014 +0100
@@ -28,7 +28,7 @@
jpegdecoder.c
ifndef USE_SYSTEM_JPEG
-FILES_c = \
+FILES_c += \
jcomapi.c \
jdapimin.c \
jdapistd.c \
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/classes/sun/font/CFontManager.java
--- a/src/macosx/classes/sun/font/CFontManager.java Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/classes/sun/font/CFontManager.java Sat Apr 12 00:23:06 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, 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
@@ -27,6 +27,8 @@
import java.awt.*;
import java.io.File;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
@@ -38,6 +40,7 @@
import sun.awt.FontConfiguration;
import sun.awt.HeadlessToolkit;
+import sun.misc.ThreadGroupUtils;
import sun.lwawt.macosx.*;
public class CFontManager extends SunFontManager {
@@ -218,21 +221,17 @@
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<Object>() {
public Object run() {
- /* The thread must be a member of a thread group
- * which will not get GCed before VM exit.
- * Make its parent the top-level thread group.
- */
- ThreadGroup tg =
- Thread.currentThread().getThreadGroup();
- for (ThreadGroup tgn = tg;
- tgn != null;
- tg = tgn, tgn = tg.getParent());
- fileCloser = new Thread(tg, fileCloserRunnable);
- fileCloser.setContextClassLoader(null);
- Runtime.getRuntime().addShutdownHook(fileCloser);
- return null;
- }
- });
+ /* The thread must be a member of a thread group
+ * which will not get GCed before VM exit.
+ * Make its parent the top-level thread group.
+ */
+ ThreadGroup rootTG = ThreadGroupUtils.getRootThreadGroup();
+ fileCloser = new Thread(rootTG, fileCloserRunnable);
+ fileCloser.setContextClassLoader(null);
+ Runtime.getRuntime().addShutdownHook(fileCloser);
+ return null;
+ }
+ });
}
}
}
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/classes/sun/lwawt/LWToolkit.java
--- a/src/macosx/classes/sun/lwawt/LWToolkit.java Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/classes/sun/lwawt/LWToolkit.java Sat Apr 12 00:23:06 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, 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
@@ -38,6 +38,7 @@
import sun.awt.*;
import sun.lwawt.macosx.*;
import sun.print.*;
+import sun.misc.ThreadGroupUtils;
public abstract class LWToolkit extends SunToolkit implements Runnable {
@@ -66,22 +67,16 @@
protected final void init() {
AWTAutoShutdown.notifyToolkitThreadBusy();
- ThreadGroup mainTG = AccessController.doPrivileged(
+ ThreadGroup rootTG = AccessController.doPrivileged(
new PrivilegedAction<ThreadGroup>() {
public ThreadGroup run() {
- ThreadGroup currentTG = Thread.currentThread().getThreadGroup();
- ThreadGroup parentTG = currentTG.getParent();
- while (parentTG != null) {
- currentTG = parentTG;
- parentTG = currentTG.getParent();
- }
- return currentTG;
- }
- }
+ return ThreadGroupUtils.getRootThreadGroup();
+ }
+ }
);
Runtime.getRuntime().addShutdownHook(
- new Thread(mainTG, new Runnable() {
+ new Thread(rootTG, new Runnable() {
public void run() {
shutdown();
waitForRunState(STATE_CLEANUP);
@@ -89,7 +84,7 @@
})
);
- Thread toolkitThread = new Thread(mainTG, this, "AWT-LW");
+ Thread toolkitThread = new Thread(rootTG, this, "AWT-LW");
toolkitThread.setDaemon(true);
toolkitThread.setPriority(Thread.NORM_PRIORITY + 1);
toolkitThread.start();
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/classes/sun/lwawt/macosx/CClipboard.java
--- a/src/macosx/classes/sun/lwawt/macosx/CClipboard.java Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/classes/sun/lwawt/macosx/CClipboard.java Sat Apr 12 00:23:06 2014 +0100
@@ -53,7 +53,7 @@
}
protected void setContentsNative(Transferable contents) {
-
+ FlavorTable flavorMap = getDefaultFlavorTable();
// Don't use delayed Clipboard rendering for the Transferable's data.
// If we did that, we would call Transferable.getTransferData on
// the Toolkit thread, which is a security hole.
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java
--- a/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Sat Apr 12 00:23:06 2014 +0100
@@ -414,8 +414,15 @@
}
// Intended to be called from the LWCToolkit.m only.
- private static void installToolkitThreadNameInJava() {
+ private static void installToolkitThreadInJava() {
Thread.currentThread().setName(CThreading.APPKIT_THREAD_NAME);
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ @Override
+ public Void run() {
+ Thread.currentThread().setContextClassLoader(null);
+ return null;
+ }
+ });
}
@Override
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/native/sun/awt/LWCToolkit.m
--- a/src/macosx/native/sun/awt/LWCToolkit.m Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/native/sun/awt/LWCToolkit.m Sat Apr 12 00:23:06 2014 +0100
@@ -193,8 +193,8 @@
JNIEnv *env = [ThreadUtilities getJNIEnv];
static JNF_CLASS_CACHE(jc_LWCToolkit, "sun/lwawt/macosx/LWCToolkit");
- static JNF_STATIC_MEMBER_CACHE(jsm_installToolkitThreadNameInJava, jc_LWCToolkit, "installToolkitThreadNameInJava", "()V");
- JNFCallStaticVoidMethod(env, jsm_installToolkitThreadNameInJava);
+ static JNF_STATIC_MEMBER_CACHE(jsm_installToolkitThreadInJava, jc_LWCToolkit, "installToolkitThreadInJava", "()V");
+ JNFCallStaticVoidMethod(env, jsm_installToolkitThreadInJava);
});
gNumberOfButtons = sun_lwawt_macosx_LWCToolkit_BUTTONS;
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/native/sun/awt/awt.m
--- a/src/macosx/native/sun/awt/awt.m Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/native/sun/awt/awt.m Sat Apr 12 00:23:06 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, 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
@@ -432,6 +432,15 @@
forceEmbeddedMode = YES;
}
+ JNIEnv* env = [ThreadUtilities getJNIEnvUncached];
+ jclass jc_ThreadGroupUtils = (*env)->FindClass(env, "sun/misc/ThreadGroupUtils");
+ jmethodID sjm_getRootThreadGroup = (*env)->GetStaticMethodID(env, jc_ThreadGroupUtils, "getRootThreadGroup", "()Ljava/lang/ThreadGroup;");
+ jobject rootThreadGroup = (*env)->CallStaticObjectMethod(env, jc_ThreadGroupUtils, sjm_getRootThreadGroup);
+ [ThreadUtilities setAppkitThreadGroup:(*env)->NewGlobalRef(env, rootThreadGroup)];
+ // The current thread was attached in getJNIEnvUncached.
+ // Detach it back. It will be reattached later if needed with a proper TG
+ [ThreadUtilities detachCurrentThread];
+
BOOL headless = isHeadless(env);
// We need to let Foundation know that this is a multithreaded application, if it isn't already.
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/native/sun/osxapp/ThreadUtilities.h
--- a/src/macosx/native/sun/osxapp/ThreadUtilities.h Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/native/sun/osxapp/ThreadUtilities.h Sat Apr 12 00:23:06 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, 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
@@ -127,6 +127,8 @@
+ (JNIEnv*)getJNIEnv;
+ (JNIEnv*)getJNIEnvUncached;
++ (void)detachCurrentThread;
++ (void)setAppkitThreadGroup:(jobject)group;
//Wrappers for the corresponding JNFRunLoop methods with a check for main thread
+ (void)performOnMainThreadWaiting:(BOOL)wait block:(void (^)())block;
diff -r a1fe933e5be6 -r 9448fff93286 src/macosx/native/sun/osxapp/ThreadUtilities.m
--- a/src/macosx/native/sun/osxapp/ThreadUtilities.m Wed Mar 26 16:01:18 2014 +0000
+++ b/src/macosx/native/sun/osxapp/ThreadUtilities.m Sat Apr 12 00:23:06 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, 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
@@ -33,23 +33,44 @@
// The following must be named "jvm", as there are extern references to it in AWT
JavaVM *jvm = NULL;
static JNIEnv *appKitEnv = NULL;
+static jobject appkitThreadGroup = NULL;
+
+inline void attachCurrentThread(void** env) {
+ if ([NSThread isMainThread]) {
+ JavaVMAttachArgs args;
+ args.version = JNI_VERSION_1_4;
+ args.name = "AppKit Thread";
+ args.group = appkitThreadGroup;
+ (*jvm)->AttachCurrentThreadAsDaemon(jvm, env, &args);
+ } else {
+ (*jvm)->AttachCurrentThreadAsDaemon(jvm, env, NULL);
+ }
+}
@implementation ThreadUtilities
+ (JNIEnv*)getJNIEnv {
AWT_ASSERT_APPKIT_THREAD;
if (appKitEnv == NULL) {
- (*jvm)->AttachCurrentThreadAsDaemon(jvm, (void **)&appKitEnv, NULL);
+ attachCurrentThread((void **)&appKitEnv);
}
return appKitEnv;
}
+ (JNIEnv*)getJNIEnvUncached {
JNIEnv *env = NULL;
- (*jvm)->AttachCurrentThreadAsDaemon(jvm, (void **)&env, nil);
+ attachCurrentThread((void **)&env);
return env;
}
++ (void)detachCurrentThread {
+ (*jvm)->DetachCurrentThread(jvm);
+}
+
++ (void)setAppkitThreadGroup:(jobject)group {
+ appkitThreadGroup = group;
+}
+
+ (void)performOnMainThreadWaiting:(BOOL)wait block:(void (^)())block {
if ([NSThread isMainThread] && wait == YES) {
block();
diff -r a1fe933e5be6 -r 9448fff93286 src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java
--- a/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java Wed Mar 26 16:01:18 2014 +0000
+++ b/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java Sat Apr 12 00:23:06 2014 +0100
@@ -35,6 +35,8 @@
import javax.management.remote.SubjectDelegationPermission;
import com.sun.jmx.remote.util.CacheMap;
+import java.util.ArrayList;
+import java.util.Collection;
public class SubjectDelegator {
private static final int PRINCIPALS_CACHE_SIZE = 10;
@@ -53,11 +55,14 @@
boolean removeCallerContext)
throws SecurityException {
+ if (System.getSecurityManager() != null && authenticatedACC == null) {
+ throw new SecurityException("Illegal AccessControlContext: null");
+ }
if (principalsCache == null || accCache == null) {
principalsCache =
- new CacheMap<Subject, Principal[]>(PRINCIPALS_CACHE_SIZE);
+ new CacheMap<>(PRINCIPALS_CACHE_SIZE);
accCache =
- new CacheMap<Subject, AccessControlContext>(ACC_CACHE_SIZE);
+ new CacheMap<>(ACC_CACHE_SIZE);
}
// Retrieve the principals for the given
@@ -101,14 +106,15 @@
// principal in the delegated subject
//
final Principal[] dp = delegatedPrincipals;
+ final Collection<Permission> permissions = new ArrayList<>(dp.length);
+ for(Principal p : dp) {
+ final String pname = p.getClass().getName() + "." + p.getName();
+ permissions.add(new SubjectDelegationPermission(pname));
+ }
PrivilegedAction<Void> action =
new PrivilegedAction<Void>() {
public Void run() {
- for (int i = 0 ; i < dp.length ; i++) {
- final String pname =
- dp[i].getClass().getName() + "." + dp[i].getName();
- Permission sdp =
- new SubjectDelegationPermission(pname);
+ for (Permission sdp : permissions) {
AccessController.checkPermission(sdp);
}
return null;
diff -r a1fe933e5be6 -r 9448fff93286 src/share/classes/com/sun/jndi/dns/DnsClient.java
--- a/src/share/classes/com/sun/jndi/dns/DnsClient.java Wed Mar 26 16:01:18 2014 +0000
+++ b/src/share/classes/com/sun/jndi/dns/DnsClient.java Sat Apr 12 00:23:06 2014 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, 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
@@ -30,13 +30,14 @@
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.Socket;
+import java.security.SecureRandom;
import javax.naming.*;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
-import java.util.Set;
-import java.util.HashSet;
+
+import sun.security.jca.JCAUtil;
// Some of this code began life as part of sun.javaos.net.DnsClient
// originally by sritchie at eng 1/96. It was first hacked up for JNDI
@@ -77,6 +78,8 @@
};
private static final int DEFAULT_PORT = 53;
+ private static final int TRANSACTION_ID_BOUND = 0x10000;
+ private static final SecureRandom random = JCAUtil.getSecureRandom();
private InetAddress[] servers;
private int[] serverPorts;
private int timeout; // initial timeout on UDP queries in ms
@@ -85,7 +88,7 @@
private DatagramSocket udpSocket;
// Requests sent
- private Set<Integer> reqs;
+ private Map<Integer, ResourceRecord> reqs;
// Responses received
private Map<Integer, byte[]> resps;
@@ -134,7 +137,8 @@
throw ne;
}
}
- reqs = Collections.synchronizedSet(new HashSet<Integer>());
+ reqs = Collections.synchronizedMap(
+ new HashMap<Integer, ResourceRecord>());
resps = Collections.synchronizedMap(new HashMap<Integer, byte[]>());
}
@@ -153,10 +157,6 @@
}
}
-
- private int ident = 0; // used to set the msg ID field
- private Object identLock = new Object();
-
/*
* If recursion is true, recursion is requested on the query.
* If auth is true, only authoritative responses are accepted; other
@@ -167,15 +167,22 @@
throws NamingException {
int xid;
- synchronized (identLock) {
- ident = 0xFFFF & (ident + 1);
- xid = ident;
- }
+ Packet pkt;
+ ResourceRecord collision;
- // enqueue the outstanding request
- reqs.add(xid);
+ do {
+ // Generate a random transaction ID
+ xid = random.nextInt(TRANSACTION_ID_BOUND);
+ pkt = makeQueryPacket(fqdn, xid, qclass, qtype, recursion);
- Packet pkt = makeQueryPacket(fqdn, xid, qclass, qtype, recursion);
+ // enqueue the outstanding request
+ synchronized (reqs) {
+ if ((collision = reqs.put(xid, new ResourceRecord(pkt.getData(),
+ pkt.length(), Header.HEADER_SIZE, true, false))) != null) {
+ reqs.put(xid, collision); // revert
+ }
+ }
+ } while (collision != null);
Exception caughtException = null;
boolean[] doNotRetry = new boolean[servers.length];
@@ -305,11 +312,8 @@
ResourceRecords queryZone(DnsName zone, int qclass, boolean recursion)
throws NamingException {
- int xid;
- synchronized (identLock) {
- ident = 0xFFFF & (ident + 1);
- xid = ident;
- }
+ int xid = random.nextInt(TRANSACTION_ID_BOUND);
+
Packet pkt = makeQueryPacket(zone, xid, qclass,
ResourceRecord.QTYPE_AXFR, recursion);
Exception caughtException = null;
@@ -390,6 +394,7 @@
DatagramPacket opkt = new DatagramPacket(
pkt.getData(), pkt.length(), server, port);
DatagramPacket ipkt = new DatagramPacket(new byte[8000], 8000);
+ // Packets may only be sent to or received from this server address
udpSocket.connect(server, port);
int pktTimeout = (timeout * (1 << retry));
try {
@@ -524,7 +529,7 @@
"\tResponse Q:" + resps);
}
byte[] pkt;
- if ((pkt = (byte[]) resps.get(xid)) != null) {
+ if ((pkt = resps.get(xid)) != null) {
checkResponseCode(new Header(pkt, pkt.length));
synchronized (queuesLock) {
resps.remove(xid);
@@ -543,6 +548,9 @@
* Checks the header of an incoming DNS response.
* Returns true if it matches the given xid and throws a naming
* exception, if appropriate, based on the response code.
+ *
+ * Also checks that the domain name, type and class in the response
+ * match those in the original query.
*/
private boolean isMatchResponse(byte[] pkt, int xid)
throws NamingException {
@@ -552,7 +560,7 @@
throw new CommunicationException("DNS error: expecting response");
}
- if (!reqs.contains(xid)) { // already received, ignore the response
+ if (!reqs.containsKey(xid)) { // already received, ignore the response
return false;
}
@@ -561,14 +569,47 @@
if (debug) {
dprint("XID MATCH:" + xid);
}
+ checkResponseCode(hdr);
+ if (!hdr.query && hdr.numQuestions == 1) {
- checkResponseCode(hdr);
- // remove the response for the xid if received by some other thread.
- synchronized (queuesLock) {
- resps.remove(xid);
- reqs.remove(xid);
+ ResourceRecord rr = new ResourceRecord(pkt, pkt.length,
+ Header.HEADER_SIZE, true, false);
+
+ // Retrieve the original query
+ ResourceRecord query = reqs.get(xid);
+ int qtype = query.getType();
+ int qclass = query.getRrclass();
+ DnsName qname = query.getName();
+
+ // Check that the type/class/name in the query section of the
+ // response match those in the original query
+ if ((qtype == ResourceRecord.QTYPE_STAR ||
+ qtype == rr.getType()) &&
+ (qclass == ResourceRecord.QCLASS_STAR ||
+ qclass == rr.getRrclass()) &&
+ qname.equals(rr.getName())) {
+
More information about the distro-pkg-dev
mailing list