/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