changeset 1342:b7957dd8ce9a

Merged changesets from icedtea6 repo: http://icedtea.classpath.org/hg/icedtea6/rev/0848286d8e5c http://icedtea.classpath.org/hg/icedtea6/rev/a2763653f8cf http://icedtea.classpath.org/hg/icedtea6/rev/2a6a1bd55bb8 http://icedtea.classpath.org/hg/icedtea6/rev/1be2224bd96c http://icedtea.classpath.org/hg/icedtea6/rev/3b8dcbd3d44d
author Lillian Angel <langel@redhat.com>
date Wed, 25 Feb 2009 12:29:06 -0500
parents 674929aec134
children 62b038573a32
files AUTHORS ChangeLog INSTALL Makefile.am acinclude.m4 configure.ac patches/icedtea-version.patch plugin/icedtea/sun/applet/PluginAppletSecurityContext.java plugin/icedtea/sun/applet/PluginAppletViewer.java plugin/icedtea/sun/applet/PluginStreamHandler.java rt/net/sourceforge/jnlp/ExtensionDesc.java rt/net/sourceforge/jnlp/JNLPFile.java rt/net/sourceforge/jnlp/Launcher.java rt/net/sourceforge/jnlp/NetxPanel.java rt/net/sourceforge/jnlp/Parser.java rt/net/sourceforge/jnlp/PluginBridge.java rt/net/sourceforge/jnlp/cache/CacheUtil.java rt/net/sourceforge/jnlp/cache/Resource.java rt/net/sourceforge/jnlp/cache/ResourceTracker.java rt/net/sourceforge/jnlp/runtime/Boot.java rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java rt/net/sourceforge/jnlp/runtime/JNLPRuntime.java rt/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java rt/net/sourceforge/jnlp/tools/JarSigner.java visualvm.desktop
diffstat 25 files changed, 1195 insertions(+), 113 deletions(-) [+]
line wrap: on
line diff
--- a/AUTHORS	Wed Jan 28 10:48:37 2009 -0500
+++ b/AUTHORS	Wed Feb 25 12:29:06 2009 -0500
@@ -2,26 +2,39 @@
 Please keep this list in alphabetical order.
 
 Lillian Angel <langel@redhat.com>
+Alon Bar-Lev <alon.barlev@gmail.com>
 Gary Benson <gbenson@redhat.com>
 Tania Bento <tbento@redhat.com>
+Deepak Bhole <dbhole@redhat.com>
+Tom Callaway <tcallawa@redhat.com>
+Pablo del Campo <pablogdc@gmail.com>
 Thomas Fitzsimmons <fitzsim@redhat.com>
 Matthew Flaschen <matthew.flaschen@gatech.edu>
 Kyle Galloway <kgallowa@redhat.com>
+Dennis Gilmore <dgilmore@redhat.com>
 Andrew Haley <aph@redhat.com>
-Andrew John Hughes <gnu_andrew@member.fsf.org>
+Andrew John Hughes <gnu_andrew@member.fsf.org, ahughes@redhat.com>
+Tomas Hurka <tomas.hurka@sun.com>
+Ioana Ivan <iivan@redhat.com>
 Matthias Klose <doko@ubuntu.com>
 Francis Kung <fkung@redhat.com>
 DJ Lucas <dj@linuxfromscratch.org>
+Omair Majid <omajid@redhat.com>
 Casey Marshall <csm@gnu.org>
 Dan Munckton <lists@munckfish.net>
 Raif Naffah <admin@naffah-raif.name>
+Parag Nemade <pnemade@redhat.com>
+Xerxes Rånby <xerxes@zafena.se>
+Mark Reinhold <mr@sun.com>
 Bernhard Rosenkränzer <bero@arklinux.org>
 Marc Schoenefeld <mschoene@redhat.com>
 Keith Seitz <keiths@redhat.com>
 Joshua Sumali <jsumali@redhat.com>
 Christian Thalinger <twisti@complang.tuwien.ac.at>
 Dalibor Topic <robilad@kaffe.org>
+Arnaud Vandyck <avdyk@debian.org>
 Mark Wielaard <mark@klomp.org>
+Yi Zhan <yi.zhan@intel.com>
 
 This project also includes code from the following projects:
 
--- a/ChangeLog	Wed Jan 28 10:48:37 2009 -0500
+++ b/ChangeLog	Wed Feb 25 12:29:06 2009 -0500
@@ -1,3 +1,82 @@
+2009-02-23  Deepak Bhole <dbhole@redhat.com>
+
+	* IcedTeaPlugin.cc: Supply cookie info to Java side.
+	* plugin/icedtea/sun/applet/PluginAppletViewer.java: Apply patch from
+	Xerxes Rånby to prevent initialization timeout on slower systems. Also,
+	use cookie info when equests for jar are made.
+	* plugin/icedtea/sun/applet/PluginStreamHandler.java: Fix bug that was
+	causing unnecessary exception prints on exit.
+	* rt/net/sourceforge/jnlp/ExtensionDesc.java: Store/supply cookie info as
+	needed.
+	* rt/net/sourceforge/jnlp/JNLPFile.java: Same.
+	* rt/net/sourceforge/jnlp/Launcher.java: Same. 
+	* rt/net/sourceforge/jnlp/NetxPanel.java: Same.
+	* rt/net/sourceforge/jnlp/Parser.java: Same.
+	* rt/net/sourceforge/jnlp/PluginBridge.java: Same. Also, handle empty jar
+	specification (Bug: 294) in archive tags.
+	* rt/net/sourceforge/jnlp/cache/CacheUtil.java: Store/supply cookie info
+	as needed.
+	* rt/net/sourceforge/jnlp/cache/Resource.java: Same.
+	* rt/net/sourceforge/jnlp/cache/ResourceTracker.java: Supply cookie string
+	to server when requesting jars, if there is one set.
+	* rt/net/sourceforge/jnlp/runtime/Boot.java: Initialize JNLPFile with null
+	cookie string.
+	* rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Store/supply
+	cookie info as needed.
+	* rt/net/sourceforge/jnlp/tools/JarSigner.java: Use JarInputStream instead
+	of Jar to handle empty jars, and update signature checking accordingly.
+
+2009-02-23  Lillian Angel  <langel@redhat.com>
+
+	* AUTHORS: Added Mark Reinhold.
+
+2009-02-23  Mark Reinhold  <mr@sun.com>
+
+	* Makefile.am: Set PRODUCT_NAME to OpenJDK, unless doing a CACAO
+	build (set to IcedTea).
+	* patches/icedtea-version.patch: Introduced two new make variables:
+	JDK_DERIVATIVE_NAME to set "IcedTea6 <version>" and
+	DISTRO_PACKAGE_VERSION carries the argument given to the
+	--with-pkgversion configure option.
+
+2009-02-20  Lillian Angel  <langel@redhat.com>
+
+	* Makefile.am: Updated md5sum for NETBEANS_PROFILER_MD5SUM, and
+	therefore no longer need to remove deployed directory.
+
+2009-02-20  Andrew John Hughes  <ahughes@redhat.com>
+
+	* AUTHORS:
+	Add back my main e-mail address.
+	
+2009-02-19  Mark Wielaard  <mark@klomp.org>
+
+	* AUTHORS: Fix my email address.
+
+2009-02-18  Lillian Angel  <langel@redhat.com>
+
+	* AUTHORS: Updated.
+
+2009-02-18  Lillian Angel  <langel@redhat.com>
+	Tomas Hurka <tomas.hurka@sun.com>
+
+	* INSTALL: Updated requirements.
+	* Makefile.am: Added building support for VisualVM with NetBeans 6.5.
+	* acinclude.m4: Added check for NetBeans.
+	* configure.ac: Added --enable-visualvm option.
+	* visualvm.desktop: New file.	
+
+2009-02-10  Deepak Bhole <dbhole@redhat.com>
+
+	* plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Fix
+	exit permissions for applets.
+	* plugin/icedtea/sun/applet/PluginStreamHandler.java: Fix harmless, but
+	annoying OOB exception on browser exit.
+	* rt/net/sourceforge/jnlp/runtime/JNLPRuntime.java: Add function to
+	'always' disable exit.
+	* rt/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: Same, and
+	update support in checkPermission() for exit permissions.
+
 2009-01-28  Lillian Angel  <langel@redhat.com>
 
 	* NEWS: Updated date.
@@ -10,11 +89,85 @@
 
 	* NEWS: Updated for 1.4.
 
+2009-01-27  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileChannel.java:
+	Use org.classpath.icedtea.java.nio.channels.FileChannel.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/FileSystemProvider.java:
+	Likewise.
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/META-INF/services/java.nio.file.spi.FileSystemProvider,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/README.txt,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/JarEntryInfo.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/JarFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/JarFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipEntryInfo.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileBasicAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileBasicAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFilePath.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileStream.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipHeaderConstants.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipPathParser.java,
+	* overlays/nio2/openjdk/jdk/src/share/demo/nio/ZipFileSystem/com/sun/nio/zipfs/ZipUtils.java:
+	Import NIO2 demo and fix imports.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java:
+	Use org.classpath.icedtea.java.nio.channels.FileChannel.
+
+2009-01-27  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileChannel.java:
+	(positionSBC(long)): Renamed from position(long).
+	(truncateSBC(long)): Likewise.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/SeekableByteChannel.java:
+	Same as for FileChannel, prevents conflict with versions in java.nio.channel.FileChannel.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/SolarisAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/SolarisEventPort.java:
+	Add missing imports.
+	* patches/icedtea-nio2.patch:
+	(FileChannelImpl.positionSBC(long)): Added, simply calls position(long).
+	(FileChannelImpl.truncateSBC(long)): Likewise.
+
 2009-01-27  Andrew Haley  <aph@redhat.com>
 
 	* ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp:
 	Add memory barriers where needed for PPC.
 
+2009-01-26  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousFileLockImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxNamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixChannelFactory.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixCopyFile.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixException.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributeViews.java:
+	Fix imports and use of varargs.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileModeAttribute.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixPath.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixSecureDirectoryStream.java:
+	Fix imports and use of varargs.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java:
+	Fix imports.
+	* patches/icedtea-nio2.patch:
+	(FileChannelImpl): Fix imports.
+	(Net.c): Patch to new version with new functions.
+	(nio_util.h): Add RESTARTABLE macro.
+
 2009-01-26  Lillian Angel  <langel@redhat.com>
 
 	* configure.ac: Updated to pre-1.5 version.
@@ -290,6 +443,82 @@
 	* ports/hotspot/src/cpu/zero/vm/frame_zero.hpp (fp): Remove PRODUCT
 	conditional, make the not-PRODUCT bit the default.
 
+2009-01-19  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/JavaNetGetIndexAccess.java:
+	(getByIndex(int)): New method.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java:
+	Fixed imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/MembershipKeyImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/MembershipRegistry.java:
+	New files.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/SimpleAsynchronousFileChannelImpl.java:
+	Fix imports, refer to AsynchronousFileLockImpl instead of FileLockImpl.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java:
+	Fix imports and vararg usage.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractFileStoreSpaceAttributeView.java:
+	Fix vararg usage.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractWatchService.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java:
+	Fix imports and vararg usage.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/EPollPort.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/Port.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java:
+	Fix imports.
+	* patches/icedtea-nio2.patch:
+	Add new classes.
+	(Unsafe.copyMemory(long,long,long)): Backported.
+	(Unsafe.copyMemory(Object,long,Object,long,long)): Backported.
+	(Unsafe.ARRAY_BYTE_BASE_OFFSET): Likewise.
+	(DatagramChannelImpl.bind(SocketAddress)): Likewise.
+	(DatagramChannelImpl.getLocalAddress()): Likewise.
+	(DatagramChannelImpl.getOption(SocketOption)): Likewise.
+	(DatagramChannelImpl.innerJoin(InetAddress,NetworkInterface,InetAddress)): Likewise.
+	(DatagramChannelImpl.join(InetAddress,NetworkInterface)): Likewise.
+	(DatagramChannelImpl.join(InetAddress,NetworkInterface,InetAddress)): Likewise.
+	(DatagramChannelImpl.block(MembershipKeyImpl,InetAddress)): Likewise.
+	(DatagramChannelImpl.unblock(MembershipKeyImpl,InetAddress)): Likewise.
+	(DatagramChannelImpl.drop(MembershipKeyImpl)): Likewise.
+	(Net.getInterface4(FileDescriptor)): Likewise.
+	(Net.getInterface6(FileDescriptor)): Likewise.
+	(Net.inet4FromInt(int)): Likewise.
+	(Net.inet6AsByteArray(InetAddress)): Likewise.
+	(Net.join6(FileDescriptor,byte[],int,byte[])): Likewise.
+	(Net.drop6(FileDescriptor,byte[],int,byte[])): Likewise.
+	(Net.joinOrDrop6(boolean,FileDescriptor,byte[],int,byte[])): Likewise.
+	(Net.block6(FileDescriptor,byte[],int,byte[])): Likewise.
+	(Net.unblock6(FileDescriptor,byte[],int,byte[])): Likewise.
+	(Net.blockOrUnblock6(boolean,FileDescriptor,byte[],int,byte[])): Likewise.
+	(Net.join4(FileDescriptor,int,int,int)): Likewise.
+	(Net.drop4(FileDescriptor,int,int,int)): Likewise.
+	(Net.joinOrDrop4(boolean,FileDescriptor,int,int,int)): Likewise.
+	(Net.block4(FileDescriptor,int,int,int)): Likewise.
+	(Net.unblock4(FileDescriptor,int,int,int)): Likewise.
+	(Net.blockOrUnblock4(boolean,FileDescriptor,int,int,int)): Likewise.
+	(Net.connect(FileDescriptor,InetAddress,int)): Likewise.
+	(Net.connect(ProtocolFamily,FileDescriptor,InetAddress,int)): Likewise.
+	(Net.connect0(boolean,FileDescriptor,InetAddress,int)): Likewise.
+	(FileDispatcher.NO_LOCK)): Likewise.
+	(FileDispatcher.LOCKED)): Likewise.
+	(FileDispatcher.RET_EX_LOCK)): Likewise.
+	(FileDispatcher.INTERRUPTED)): Likewise.
+	(FileDispatcher.size(FileDescriptor)): Likewise.
+	(FileDispatcher.truncate(FileDescriptor, long)): Likewise.
+	(FileDispatcher.force(FileDescriptor, boolean)): Likewise.
+	(FileDispatcher.lock(FileDescriptor, boolean, long, long, boolean)): Likewise.
+	(FileDispatcher.release(FileDescriptor, long, long)): Likewise.
+	(FileDispatcher.force0(FileDescriptor,boolean)): Likewise.
+	(FileDispatcher.truncate0(FileDescriptor, long)): Likewise.
+	(FileDispatcher.size0(FileDescriptor)): Likewise.
+	(FileDispatcher.lock0(FileDescriptor, boolean, long, long, boolean)): Likewise.
+	(FileDispatcher.release0(FileDescriptor, long, long)): Likewise.
+	
 2009-01-19  Deepak Bhole  <dbhole@redhat.com>
 
 	* IcedTeaPlugin.cc: Add "Java" in the plugin description string. 
@@ -324,6 +553,35 @@
 	* rt/net/sourceforge/jnlp/tools/JarSigner.java: Implement the new
 	CertVerifier verifier interface.
 
+2009-01-19  Andrew John Hughes  <ahughes@redhat.com>
+
+	* generated/sun/nio/ch/SocketOptionRegistry.java:
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/DatagramChannel.java:
+	Added (1.7 extensions).
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/exceptions: Fix package.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/spi/SelectorProvider.java:
+	Added (1.7 extensions).
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/JavaNetGetIndexAccess.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/SharedSecrets.java:
+	Added to provide access to package-private NetworkInterface.getIndex().
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/CompletedFuture.java:
+	Fixed imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/ExtendedSocketOption.java: Added.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/Invoker.java: Fixed imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/OptionKey.java: Added.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/PendingFuture.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/SimpleAsynchronousDatagramChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/ThreadPool.java: Fixed imports.
+	* overlays/nio2/openjdk/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java: Added.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/SolarisAsynchronousChannelProvider.java:
+	Fixed imports.
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/DefaultSelectorProvider.java: Added.
+	* patches/icedtea-nio2.patch: Add hook for SharedSecrets to NetworkInterface, extend
+	sun.nio.ch.{Net,DatagramChannelImpl,SelectorProviderImpl} to handle 1.7 extensions.
+
 2009-01-17  Mark Wielaard  <mark@klomp.org>
 
 	* patches/icedtea-version.patch (samejvmsafe): Removed the following
@@ -346,6 +604,24 @@
 	* ports/hotspot/src/cpu/zero/vm/globals_zero.hpp
 	(StackShadowPages): Increase for 64-bit builds.
 
+2009-01-14  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileChannel.java:
+	Extend java.nio.channels.FileChannel to minimise code.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/util/concurrent/ScheduledThreadPoolExecutor.java:
+	Adapted to use the SharedSecrets backdoor.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/JavaUtilConcurrentThreadPoolExecutorAccess.java:
+	Add remaining methods needed for our ScheduledThreadPoolExecutor.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java:
+	Create a ScheduledThreadPoolExecutor directly so ours is used.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java:
+	Refer to AsynchronousFileLockImpl not FileLockImpl.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousFileLockImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/FileLockTable.java:
+	Fix imports.
+	* patches/icedtea-nio2.patch:
+	Update implementation of secrets interface.
+
 2009-01-13  Omair Majid  <omajid@redhat.com>
 
 	* rt/net/sourceforge/jnlp/cache/ResourceTracker.java
@@ -354,10 +630,432 @@
 	(getVersionedResourceURL): New function. Constructs a URL with a
 	version-id as the query.
 
+2009-01-13  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/JavaIODeleteOnExitAccess.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/SharedSecrets.java:
+	Add missing SharedSecrets files.
+
+2009-01-13  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/net/StandardProtocolFamily.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/net/StandardSocketOption.java:
+	Added missing files.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousSocketChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileLock.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/MulticastChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileTreeWalker.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileVisitor.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Files.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Path.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Paths.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/SecureDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/SimpleFileVisitor.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AclFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/Attributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileStoreSpaceAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/PosixFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/PosixFilePermissions.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/AbstractPath.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/FileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/FileTypeDetector.java:
+	Fixed imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/util/concurrent/ScheduledThreadPoolExecutor.java:
+	Added.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/misc/JavaUtilConcurrentThreadPoolExecutorAccess.java:
+	Added to allow access to private members of java.util.concurrent.ThreadPoolExecutor.
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AbstractFuture.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/DefaultFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystem.java:
+	Fix imports.
+	* patches/icedtea-nio2.patch:
+	Patch ThreadPoolExecutor to allow access to private variables, add missing files to
+	nio/FILES_java.gmk
+
+2009-01-12  Andrew John Hughes  <ahughes@redhat.com>
+
+	* overlays/nio2/openjdk/jdk/src/share/classes/com/sun/nio/file/ExtendedCopyOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/com/sun/nio/file/ExtendedOpenOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/com/sun/nio/file/ExtendedWatchEventModifier.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/net/ProtocolFamily.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/net/SocketOption.java:
+	Add missing files.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousDatagramChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/MembershipKey.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/MulticastChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/NetworkChannel.java:
+	Add missing files.
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileSystems.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/AbstractPath.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/SimpleAsynchronousDatagramChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractFileStoreSpaceAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractNamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/EPollPort.java:
+	Add missing file.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java:
+	Fix imports.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/Port.java:
+	Add missing file.
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributeViews.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixPath.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixSecureDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java:
+	Fix imports.
+	* patches/icedtea-nio2.patch:
+	Add missing files to java/nio/FILES_java.gmk
+
 2009-01-13  Gary Benson  <gbenson@redhat.com>
 
 	* contrib/jck/compile-native-code.sh: Build with -m32 or -m64.
 
+2009-01-12  Andrew John Hughes  <ahughes@redhat.com>
+
+	Initial import of NIO2 code.
+	* patches/ecj/icedtea-pr261.patch: Moved to general patches.
+	* Makefile.am: Add NIO2 patch.
+	* configure.ac: Add --enable-nio2 option (on by default).
+	* overlays/nio2/openjdk/jdk/make/mkdemo/nio/Makefile,
+	* overlays/nio2/openjdk/jdk/make/mkdemo/nio/ZipFileSystem/Makefile,
+	* overlays/nio2/openjdk/jdk/make/mksample/nio/aio/Makefile,
+	* overlays/nio2/openjdk/jdk/make/mksample/nio/file/Makefile,
+	* overlays/nio2/openjdk/jdk/src/share/classes/com/sun/nio/file/ExtendedCopyOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/com/sun/nio/file/ExtendedOpenOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/com/sun/nio/file/ExtendedWatchEventModifier.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/io/File.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/io/FilePermission.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/io/Inputs.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/io/Outputs.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousByteChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousDatagramChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/AsynchronousSocketChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/Channels.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/CompletionHandler.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/FileLock.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/SeekableByteChannel.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/exceptions,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/package-info.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/channels/spi/package.html,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/AccessDeniedException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/AccessMode.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/AtomicMoveNotSupportedException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/ClosedDirectoryStreamException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/ClosedFileSystemException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/ClosedWatchServiceException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/CopyOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/DirectoryNotEmptyException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/DirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/DirectoryStreamFilters.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileAction.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileAlreadyExistsException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileRef.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileStore.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileSystemAlreadyExistsException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileSystemException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileSystemNotFoundException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileSystems.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileTreeWalker.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileVisitOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileVisitResult.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/FileVisitor.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Files.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/InvalidPathException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/LinkOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/LinkPermission.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/NoSuchFileException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/NotDirectoryException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/NotLinkException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/OpenOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Path.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/PathMatcher.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Paths.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/ProviderMismatchException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/ProviderNotFoundException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/ReadOnlyFileSystemException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/SecureDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/SimpleFileVisitor.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/StandardCopyOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/StandardOpenOption.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/StandardWatchEventKind.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/WatchEvent.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/WatchKey.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/WatchService.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/Watchable.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AclEntry.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AclEntryFlag.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AclEntryPermission.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AclEntryType.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AclFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/AttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/Attributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/BasicFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/BasicFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/DosFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/DosFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileAttribute.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileOwnerAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileStoreAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileStoreSpaceAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/FileStoreSpaceAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/GroupPrincipal.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/NamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/PosixFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/PosixFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/PosixFilePermission.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/PosixFilePermissions.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/UserPrincipal.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/UserPrincipalLookupService.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/UserPrincipalNotFoundException.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/attribute/package-info.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/package-info.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/AbstractPath.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/FileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/FileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/nio/file/spi/package-info.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/org/classpath/icedtea/java/util/Scanner.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AbstractFuture.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousFileLockImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/Cancellable.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/CompletedFuture.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/FileLockTable.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/Groupable.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/Invoker.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/PendingFuture.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/SimpleAsynchronousDatagramChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/SimpleAsynchronousFileChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/ch/ThreadPool.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractFileStoreSpaceAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractNamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/AbstractWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/Cancellable.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/Globs.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/MimeType.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/NativeBuffer.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/NativeBuffers.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/share/classes/sun/nio/fs/Reflect.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/aio/EchoServer.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/AclEdit.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/Chmod.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/Copy.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/DiskUsage.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/FileType.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/WatchDir.java,
+	* overlays/nio2/openjdk/jdk/src/share/sample/nio/file/Xdd.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/SolarisAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/SolarisEventPort.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/DefaultFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxNamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxNativeDispatcher.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisNamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisNativeDispatcher.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/SolarisWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixChannelFactory.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixCopyFile.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixException.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributeViews.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileKey.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileModeAttribute.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileStoreAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixMountEntry.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixPath.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixSecureDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixUriUtils.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/ch/EPollPort.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/ch/SolarisEventPort.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/LinuxWatchService.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/SolarisWatchService.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/UnixCopyFile.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/genSolarisConstants.c,
+	* overlays/nio2/openjdk/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/Iocp.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/PendingIoCache.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousChannelProvider.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/DefaultFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/DefaultFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/RegistryFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsAclFileAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsChannelFactory.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsConstants.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsDirectoryStream.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsException.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsFileAttributeViews.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsFileAttributes.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsFileCopy.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsFileStore.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsLinkSupport.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsNamedAttributeView.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsPath.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsPathParser.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsPathType.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsSecurity.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsUriSupport.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsUserPrincipals.java,
+	* overlays/nio2/openjdk/jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java,
+	* overlays/nio2/openjdk/jdk/src/windows/native/sun/nio/ch/Iocp.c,
+	* overlays/nio2/openjdk/jdk/src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c,
+	* overlays/nio2/openjdk/jdk/src/windows/native/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.c,
+	* overlays/nio2/openjdk/jdk/src/windows/native/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.c,
+	* overlays/nio2/openjdk/jdk/src/windows/native/sun/nio/fs/RegistryFileTypeDetector.c,
+	* overlays/nio2/openjdk/jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c,
+	* overlays/nio2/openjdk/jdk/test/demo/nio/ZipFileSystem/Sanity.java,
+	* overlays/nio2/openjdk/jdk/test/demo/nio/ZipFileSystem/sanity.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/io/Inputs/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/AsExecutor.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/Attack.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/GroupOfOne.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/Identity.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/PrivilegedThreadFactory.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/Restart.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/Unbounded.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousChannelGroup/run_any_task.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousDatagramChannel/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel/CustomThreadPool.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel/Lock.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousFileChannel/MyThreadFactory.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel/WithSecurityManager.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel/java.policy.allow,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousServerSocketChannel/java.policy.deny,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousSocketChannel/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/AsynchronousSocketChannel/Leaky.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/Channels/Basic2.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider/CheckProvider.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider/META-INF/services/java.nio.channels.spi.AsynchronousChannelProvider,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider/Provider1.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider/Provider2.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/channels/spi/AsynchronousChannelProvider/custom_provider.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/DirectoryStream/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/DirectoryStream/Filters.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/DirectoryStream/SecureDS.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/FileStore/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/FileSystem/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/ContentType.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/CreateFileTree.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/ForceLoad.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/META-INF/services/java.nio.file.spi.FileTypeDetector,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/Misc.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/PrintFileTree.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/SimpleFileTypeDetector.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/SkipSiblings.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/TerminateWalk.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/content_type.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Files/walk_file_tree.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/CopyAndMove.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/DeleteOnClose.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/InterruptCopy.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/Links.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/Misc.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/PathOps.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/SBC.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/TemporaryFiles.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/UriImportExport.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/delete_on_close.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/Path/temporary_files.sh,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/PathMatcher/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/TestUtil.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/FileTreeModifier.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/WithSecurityManager.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/denyAll.policy,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/grantDirAndOneLevel.policy,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/grantDirAndTree.policy,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/WatchService/grantDirOnly.policy,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/AclFileAttributeView/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/Attributes/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/BasicFileAttributeView/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/DosFileAttributeView/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/FileStoreAttributeView/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/NamedAttributeView/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/attribute/PosixFileAttributeView/Basic.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/spi/SetDefaultProvider.java,
+	* overlays/nio2/openjdk/jdk/test/org/classpath/icedtea/java/nio/file/spi/TestProvider.java: Added.
+	* patches/icedtea-nio2.patch: New patch.
+	* patches/icedtea-pr261.patch: Moved from ecj-specific patches.
+
 2009-01-13  Matthias Klose  <doko@ubuntu.com>
 
 	* patches/hotspot/14.0b08/icedtea-hotspot-dispatch.patch: Remove,
@@ -498,13 +1196,13 @@
 	(stamps/extract.stamp): Use AWK here rather than cut.
 	* hotspot.map: Add md5sum for 14.0b08.
 
-2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-17  Andrew John Hughes  <ahughes@redhat.com>
 
 	* acinclude.m4:
 	(FIND_RHINO_JAR): Check for js.jar
 	in Gentoo install location too.
 	
-2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-17  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	No need to check again that SYSTEM_GCJ_DIR exists.
@@ -517,7 +1215,7 @@
 	More --with-x-home options to macros in acinclude.m4.
 	Remove redundant erroneous use of GCC_OLD.
 
-2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-17  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Remove use of LIBGCJ_JAR, replacing with
@@ -531,7 +1229,7 @@
 	* javac.in:
 	Use SYSTEM_GCJ_DIR/jre/lib/rt.jar not LIBGCJ_JAR.
 
-2008-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-17  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Remove the HotSpot directory while extracting
@@ -603,7 +1301,7 @@
 	* rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Provide new 
 	cacheable param to JARDesc constructor.
 
-2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-09  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Support use of HGREV.
@@ -612,14 +1310,14 @@
 	* configure.ac:
 	Call AC_CHECK_WITH_HG_REVISION.
 
-2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-09  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Properly support --with-openjdk-src-dir.
 	* acinclude.m4:
 	Correct the define for OPENJDK_SRC_DIR.
 
-2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-09  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Support downloading from the Mercurial repository.
@@ -628,7 +1326,7 @@
 	* configure.ac:
 	Check for --enable-hg.
 
-2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-09  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Make XRender patch wildcard work where
@@ -636,7 +1334,7 @@
 	* configure.ac:
 	Capitalise 'XRender' in configure option.
 
-2008-12-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-09  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Don't use find to locate the hotspot directory,
@@ -705,7 +1403,7 @@
 	lost chunks from icedtea-sparc.patch, fix build failure with gcc-4.3.
 	* Makefile.am (ICEDTEA_PATCHES): Apply new patch.
 
-2008-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-04  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Prefix the call to uname -m with
@@ -713,7 +1411,7 @@
 	* acinclude.m4:
 	Apply linux32 on s390 as well.
 
-2008-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-04  Andrew John Hughes  <ahughes@redhat.com>
 
 	* Makefile.am:
 	Prefix make invocations with
@@ -829,7 +1527,7 @@
 	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/StreamSampleSpecification.java:
 	Make class package-private.
 
-2008-12-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-03  Andrew John Hughes  <ahughes@redhat.com>
 
 	Create hierarchical patch space.
 	* patches/icedtea-4486841.patch,
@@ -1011,7 +1709,7 @@
 	patches/icedtea-6755943.patch,
 	patches/icedtea-6766136.patch: New files.
 	
-2008-12-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-02  Andrew John Hughes  <ahughes@redhat.com>
 
 	* patches/icedtea-bytecodeInterpreter.patch,
 	* patches/icedtea-hotspot7-build-fixes.patch:
@@ -1030,7 +1728,7 @@
 	* ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp:
 	Updated using IcedTea7 versions for 14.0b08.
 
-2008-12-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-12-01  Andrew John Hughes  <ahughes@redhat.com>
 
 	* patches/icedtea-hotspot-params-cast-size_t.patch,
 	* patches/icedtea-hotspot-use-idx_t.patch,
--- a/INSTALL	Wed Jan 28 10:48:37 2009 -0500
+++ b/INSTALL	Wed Feb 25 12:29:06 2009 -0500
@@ -35,6 +35,9 @@
 pulseaudio-libs-devel >= 0.9.11
 pulseaudio >= 0.9.11
 
+For building VisualVM, you will need
+netbeans = 6.5
+
 For building the zero-assembler port (see below), you will need libffi.
 
 See ./configure --help if you need to override the defaults.
--- a/Makefile.am	Wed Jan 28 10:48:37 2009 -0500
+++ b/Makefile.am	Wed Feb 25 12:29:06 2009 -0500
@@ -5,6 +5,9 @@
 CACAO_VERSION = 0.99.3
 CACAO_MD5SUM = 80de3ad344c1a20c086ec5f1390bd1b8
 
+NETBEANS_PROFILER_MD5SUM = 786ab31817cbd902a7211cd6a6161750
+VISUALVM_MD5SUM = 1174486e82a65840b44c47166d79f212
+
 if ENABLE_GCJWEBPLUGIN
 GCJWEBPLUGIN_CLEAN = clean-gcjwebplugin
 GCJWEBPLUGIN_TARGET = gcjwebplugin.so
@@ -48,7 +51,7 @@
 
 all-local: icedtea-against-icedtea
 
-distclean-local: clean-copy clean-jtreg clean-jtreg-reports clean-pulse-java
+distclean-local: clean-copy clean-jtreg clean-jtreg-reports clean-pulse-java 
 	rm -rf stamps
 	rm -f rt-source-files.txt \
 	  hotspot-tools-source-files.txt \
@@ -60,6 +63,8 @@
 	rm -rf openjdk
 	rm -rf hotspot-tools
 	rm -rf rt/netscape
+	rm -rf visualvm
+	rm -rf netbeans
 if ENABLE_PLUGIN
 	rm -f IcedTeaPlugin.o IcedTeaPlugin.so
 else
@@ -78,7 +83,7 @@
 	clean-bootstrap-directory-symlink clean-bootstrap-directory-ecj \
 	clean-bootstrap-directory-symlink-ecj icedtea icedtea-debug \
 	clean-icedtea icedtea-against-icedtea clean-icedtea-ecj clean-plugs \
-	clean-tools-jar clean-shared-objects \
+	clean-tools-jar clean-shared-objects clean-visualvm clean-nbplatform \
 	clean-copy clean-hotspot-tools clean-rt $(GCJWEBPLUGIN_CLEAN) \
 	$(ICEDTEAPLUGIN_CLEAN) hotspot hotspot-helper clean-extra \
 	clean-jtreg clean-jtreg-reports 
@@ -87,7 +92,7 @@
 	patches/* \
 	gcjwebplugin.cc tools-copy contrib ports \
 	extra overlays \
-	javaws.png javaws.desktop \
+	javaws.png javaws.desktop visualvm.desktop \
 	jconsole.desktop policytool.desktop \
 	test/jtreg \
 	IcedTeaPlugin.cc \
@@ -304,6 +309,14 @@
   CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz
 endif
 
+# VisualVM sources. Alternatives cannot be used here.
+NETBEANS_PROFILER_URL = http://icedtea.classpath.org/visualvm/
+NETBEANS_PROFILER_SRC_ZIP = netbeans-profiler-visualvm_release65_mod.tar.gz
+
+VISUALVM_URL = https://visualvm.dev.java.net/files/documents/7163/127067/
+VISUALVM_SRC_ZIP = visualvm-11-src.tar.gz
+
+
 stamps/hgforest.stamp:
 if OPENJDK_SRC_DIR_FOUND
 else
@@ -381,6 +394,29 @@
 endif
 endif
 endif
+if WITH_VISUALVM
+	if ! echo "$(NETBEANS_PROFILER_MD5SUM)  $(NETBEANS_PROFILER_SRC_ZIP)" \
+	 | $(MD5SUM) --check ; \
+	then \
+	 if [ $(NETBEANS_PROFILER_SRC_ZIP) ] ; \
+	 then \
+	  mv $(NETBEANS_PROFILER_SRC_ZIP) $(NETBEANS_PROFILER_SRC_ZIP).old ; \
+	 fi ; \
+	 $(WGET) $(NETBEANS_PROFILER_URL)$(NETBEANS_PROFILER_SRC_ZIP) \
+	  -O $(NETBEANS_PROFILER_SRC_ZIP) ; \
+	 fi
+
+	if ! echo "$(VISUALVM_MD5SUM)  $(VISUALVM_SRC_ZIP)" \
+         | $(MD5SUM) --check ; \
+        then \
+         if [ $(VISUALVM_SRC_ZIP) ] ; \
+         then \
+          mv $(VISUALVM_SRC_ZIP) $(VISUALVM_SRC_ZIP).old ; \
+         fi ; \
+         $(WGET) $(VISUALVM_URL)$(VISUALVM_SRC_ZIP) \
+          -O $(VISUALVM_SRC_ZIP) ; \
+         fi
+endif
 	mkdir -p stamps
 	touch stamps/download.stamp
 
@@ -393,6 +429,10 @@
 if WITH_CACAO
 	rm -f $(CACAO_SRC_ZIP)
 endif
+if WITH_VISUALVM
+	rm -f $(VISUALVM_SRC_ZIP)
+	rm -f $(NETBEANS_PROFILER_SRC_ZIP)
+endif
 
 # Link ports sources into tree
 stamps/ports.stamp: stamps/extract.stamp
@@ -649,6 +689,18 @@
 	fi
 endif
 endif
+if WITH_VISUALVM
+	if ! test -d netbeans ; \
+	then \
+	  mkdir netbeans ; \
+	  $(TAR) xf $(NETBEANS_PROFILER_SRC_ZIP) -C netbeans ; \
+	fi
+
+	if ! test -d visualvm ; \
+	then \
+	  $(TAR) xf $(VISUALVM_SRC_ZIP) ; \
+	fi
+endif
 	if [ ! -e $(abs_top_builddir)/generated ]; then \
 	  cp -a $(abs_top_srcdir)/generated $(abs_top_builddir); \
 	  find $(abs_top_builddir)/generated -type f -exec chmod 640 '{}' ';' \
@@ -695,10 +747,20 @@
 	  revision="-r`(cd $(abs_top_srcdir); $(HG) tip --template '{node|short}')`" ; \
 	fi ; \
 	icedtea_version="$(PACKAGE_VERSION)$${revision}" ; \
+	if ! test "x$(WITH_CACAO)" = "xno"; then \
+	  echo "JDK_DERIVATIVE_NAME=$${icedtea_version}" \
+	    >>openjdk/jdk/make/common/shared/Defs.gmk ; \
+	  echo "PRODUCT_NAME=IcedTea6" \
+	    >>openjdk/jdk/make/common/shared/Defs.gmk ; \
+	else \
+	  echo "JDK_DERIVATIVE_NAME=IcedTea6 $${icedtea_version}" \
+	    >>openjdk/jdk/make/common/shared/Defs.gmk ; \
+	fi
+
 	if [ -n "$(PKGVERSION)" ]; then \
-	  icedtea_version="$${icedtea_version} ($(PKGVERSION))" ; \
-	fi; \
-	sed -i "s#IcedTea6#IcedTea6 $${icedtea_version}#" openjdk/jdk/make/common/shared/Defs.gmk
+	  echo "DISTRO_PACKAGE_VERSION=$(PKGVERSION)" \
+	    >>openjdk/jdk/make/common/shared/Defs.gmk ; \
+	fi
 
 if ENABLE_PLUGIN
 	cp -a $(abs_top_srcdir)/plugin/icedtea/sun/applet/*java openjdk/jdk/src/share/classes/sun/applet/
@@ -1016,7 +1078,7 @@
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(GCJWEBPLUGIN_TARGET) $(ICEDTEAPLUGIN_TARGET) \
-	extra-lib/about.jar stamps/cacao.stamp \
+	extra-lib/about.jar stamps/cacao.stamp stamps/visualvm.stamp \
 	stamps/pulse-java.stamp
 	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
@@ -1045,6 +1107,26 @@
 	cp -pPRf pulse-java.jar \
 	  $(BUILD_OUTPUT_DIR)/j2re-image/lib/ext
 endif
+if WITH_VISUALVM
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	sed "s/APPNAME=\`basename.*\`/APPNAME=visualvm/" \
+	  visualvm/launcher/visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	chmod a+x $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	cp visualvm/launcher/visualvm.conf \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	echo visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	echo profiler3 >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	cp -r visualvm/build/cluster/* \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/platform9 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm	
+endif
 	cp $(abs_top_srcdir)/rt/net/sourceforge/jnlp/resources/about.jnlp \
 	  extra-lib/about.jar \
 	  $(BUILD_OUTPUT_DIR)/j2re-image/lib ; \
@@ -1059,7 +1141,7 @@
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(GCJWEBPLUGIN_TARGET) $(ICEDTEAPLUGIN_TARGET) \
-	extra-lib/about.jar stamps/cacao.stamp \
+	extra-lib/about.jar stamps/cacao.stamp stamps/visualvm.stamp \
 	stamps/pulse-java.stamp
 	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
@@ -1088,6 +1170,26 @@
 	cp -pPRf pulse-java.jar \
 	  $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/ext
 endif
+if WITH_VISUALVM 
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	sed "s/APPNAME=\`basename.*\`/APPNAME=visualvm/" \
+	  visualvm/launcher/visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	chmod a+x $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	cp visualvm/launcher/visualvm.conf \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	echo visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	echo profiler3 >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	cp -r visualvm/build/cluster/* \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/platform9 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm
+endif
 	cp $(abs_top_srcdir)/rt/net/sourceforge/jnlp/resources/default.jnlp \
 	  extra-lib/about.jar \
 	  $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib ; \
@@ -1655,6 +1757,58 @@
 
 check-local: jtregcheck
 
+# VisualVM
+
+stamps/visualvm.stamp: $(BOOTSTRAP_DIRECTORY_STAMP) stamps/download.stamp \
+	stamps/extract.stamp stamps/nbplatform.stamp
+if WITH_VISUALVM
+	cd visualvm ; \
+	ln -s $(abs_top_srcdir)/netbeans/nbbuild/netbeans_visualvm netbeans ; \
+	JAVA_HOME=$(ICEDTEA_HOME) $(ANT) build
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-visualvm:
+	rm -rf visualvm
+	rm -f stamps/visualvm.stamp
+
+stamps/nbplatform.stamp: $(BOOTSTRAP_DIRECTORY_STAMP) stamps/extract.stamp \
+	stamps/download.stamp
+if WITH_VISUALVM
+	mkdir netbeans ; \
+	cd netbeans ; \
+        rm nbbuild/external/binaries-list ; \
+        mkdir -p lib.profiler/release/lib/deployed/jdk15/linux ; \
+        mkdir -p lib.profiler/release/lib/deployed/jdk16/linux ; \
+	mkdir -p ./nbbuild/netbeans_visualvm/ ; \
+	ln -s $(SYSTEM_NETBEANS_DIR)/platform9/ ./nbbuild/netbeans_visualvm/platform9 ; \
+	ln -s $(SYSTEM_NETBEANS_DIR)/apisupport1/ ./nbbuild/netbeans_visualvm/apisupport1 ; \
+	ln -s $(SYSTEM_NETBEANS_DIR)/harness/ ./nbbuild/netbeans_visualvm/harness ; \
+	cd lib.profiler/native/build ; \
+	if ! (uname -a | grep x86_64) ; then \
+	  buildscript=./buildnative-linux-15.sh ; \
+	else \
+	  buildscript=./buildnative-linux64-15.sh ; \
+	fi ; \
+	JAVA_HOME_15=$(ICEDTEA_HOME) JAVA_HOME_16=$(ICEDTEA_HOME) \
+	  $$buildscript ; \
+	cd ../../.. ; \
+        JAVA_HOME=$(ICEDTEA_HOME) $(ANT) -Dpermit.jdk6.builds=true \
+            -f nbbuild/build.xml bootstrap ; \
+	for dir in lib.profiler lib.profiler.ui lib.profiler.common profiler ; do \
+	  JAVA_HOME=$(ICEDTEA_HOME) $(ANT) -Dpermit.jdk6.builds=true -Dbuildnumber=081204 \
+            -Dnetbeans.dest.dir=../nbbuild/netbeans_visualvm \
+	    -f $$dir/build.xml ; \
+	done 
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-nbplatform:
+	rm -rf netbeans
+	rm -f stamps/nbplatform.stamp
+
 # fsg-tarball
 
 # Creates archive of openjdk that is compliant with Free Software guidelines.
@@ -1674,6 +1828,10 @@
 
 cacao: stamps/cacao.stamp
 
+visualvm: stamps/visualvm.stamp
+
+nbplatform: stamps/nbplatform.stamp
+
 copy-source-files: stamps/copy-source-files.stamp
 
 download: stamps/download.stamp
--- a/acinclude.m4	Wed Jan 28 10:48:37 2009 -0500
+++ b/acinclude.m4	Wed Feb 25 12:29:06 2009 -0500
@@ -557,6 +557,31 @@
   AC_SUBST(XERCES2_JAR)
 ])
 
+AC_DEFUN([FIND_NETBEANS],
+[
+  AC_ARG_WITH([netbeans],
+              [AS_HELP_STRING(--with-netbeans,specify location of netbeans)],
+  [
+    if test -f "${withval}"; then
+      AC_MSG_CHECKING(netbeans)
+      NETBEANS="${withval}"
+      AC_MSG_RESULT(${withval})
+    else
+      AC_PATH_PROG(NETBEANS, "${withval}")
+    fi
+  ],
+  [
+    NETBEANS=
+  ])
+  if test -z "${NETBEANS}"; then
+    AC_PATH_PROG(NETBEANS, "netbeans")
+  fi
+  if test -z "${NETBEANS}"; then
+    AC_MSG_ERROR("NetBeans was not found.")
+  fi
+  AC_SUBST(NETBEANS)
+])
+
 AC_DEFUN([FIND_RHINO_JAR],
 [
   AC_MSG_CHECKING(whether to include Javascript support via Rhino)
--- a/configure.ac	Wed Jan 28 10:48:37 2009 -0500
+++ b/configure.ac	Wed Feb 25 12:29:06 2009 -0500
@@ -55,6 +55,24 @@
 AM_CONDITIONAL(WITH_ICEDTEA, test "${with_icedtea}" = true)
 AC_MSG_RESULT(${with_icedtea})
 
+AC_MSG_CHECKING([for a NetBeans installation])
+AC_ARG_WITH([netbeans-home],
+           [AS_HELP_STRING([--with-netbeans-home],
+                            [NetBeans home directory (default is /usr/share/netbeans)])],
+            [
+              if test "x${withval}" = x
+              then
+                SYSTEM_NETBEANS_DIR=/usr/share/netbeans
+              else
+                SYSTEM_NETBEANS_DIR=${withval}
+              fi
+            ],
+            [
+              SYSTEM_NETBEANS_DIR=/usr/share/netbeans
+            ])
+AC_MSG_RESULT([${SYSTEM_NETBEANS_DIR}])
+AC_SUBST(SYSTEM_NETBEANS_DIR)
+
 AC_MSG_CHECKING([whether to build using an existing installation of OpenJDK])
 AC_ARG_WITH([openjdk],
         [AS_HELP_STRING([--with-openjdk],
@@ -91,6 +109,14 @@
 AC_SUBST(SYSTEM_ANT_DIR)
 AC_MSG_RESULT(${SYSTEM_ANT_DIR})
 
+AC_MSG_CHECKING(whether to build VisualVM)
+AC_ARG_ENABLE([visualvm],
+              [AS_HELP_STRING([--enable-visualvm],
+                                         [Enable compilation of visualvm.])],
+              [enable_visualvm="${enableval}"], [enable_visualvm="no"])
+AM_CONDITIONAL(WITH_VISUALVM, test "x${enable_visualvm}" = "xyes")
+AC_MSG_RESULT(${enable_visualvm})
+
 AC_MSG_CHECKING([whether to build the LiveConnect plugin])
 AC_ARG_ENABLE([liveconnect],
               [AS_HELP_STRING([--disable-liveconnect],
@@ -231,6 +257,11 @@
 ENABLE_HG
 AC_CHECK_WITH_HG_REVISION
 
+if test "x${enable_visualvm}" = "xyes"
+then
+  FIND_NETBEANS
+fi
+
 if test "x${enable_pulse_java}" = "xyes"
 then
   FIND_PULSEAUDIO
--- a/patches/icedtea-version.patch	Wed Jan 28 10:48:37 2009 -0500
+++ b/patches/icedtea-version.patch	Wed Feb 25 12:29:06 2009 -0500
@@ -1,17 +1,3 @@
-diff -Nru openjdk.orig/jdk/make/common/shared/Defs.gmk openjdk/jdk/make/common/shared/Defs.gmk
---- openjdk.orig/jdk/make/common/shared/Defs.gmk	2008-10-15 15:36:07.000000000 +0100
-+++ openjdk/jdk/make/common/shared/Defs.gmk	2008-10-15 15:36:53.000000000 +0100
-@@ -194,8 +194,8 @@
- 
- # Default names
- ifdef OPENJDK
--  LAUNCHER_NAME = openjdk
--  PRODUCT_NAME = OpenJDK
-+  LAUNCHER_NAME = java
-+  PRODUCT_NAME = IcedTea6
-   PRODUCT_SUFFIX = Runtime Environment
-   JDK_RC_PLATFORM_NAME = Platform
-   COMPANY_NAME = N/A
 --- openjdk/langtools/make/Makefile.orig
 +++ openjdk/langtools/make/Makefile
 @@ -82,7 +82,11 @@
@@ -26,3 +12,60 @@
  endif
  
  ifdef BUILD_NUMBER
+--- ../openjdk6/jdk/make/common/shared/Defs.gmk	2008-08-28 04:10:47.000000000 -0400
++++ openjdk/jdk/make/common/shared/Defs.gmk	2009-02-08 08:30:21.000000000 -0500
+@@ -194,7 +194,7 @@
+ 
+ # Default names
+ ifdef OPENJDK
+-  LAUNCHER_NAME = openjdk
++  LAUNCHER_NAME = java
+   PRODUCT_NAME = OpenJDK
+   PRODUCT_SUFFIX = Runtime Environment
+   JDK_RC_PLATFORM_NAME = Platform
+--- openjdk/jdk/src/share/classes/sun/misc/Version-template.java.~1~	2008-11-25 01:04:53.000000000 -0800
++++ openjdk/jdk/src/share/classes/sun/misc/Version-template.java	2009-02-20 09:03:25.000000000 -0800
+@@ -41,6 +41,12 @@
+     private static final String java_runtime_version =
+         "@@java_runtime_version@@";
+ 
++    private static final String jdk_derivative_name =
++        "@@jdk_derivative_name@@";
++
++    private static final String distro_package_version =
++        "@@distro_package_version@@";
++
+     static {
+         init();
+     }
+@@ -82,8 +88,17 @@
+         ps.println(launcher_name + " version \"" + java_version + "\"");
+ 
+         /* Second line: runtime version (ie, libraries). */
+-        ps.println(java_runtime_name + " (build " +
+-                           java_runtime_version + ")");
++	StringBuilder sb = new StringBuilder();
++	sb.append(java_runtime_name);
++	if (jdk_derivative_name.length() > 0) {
++	    sb.append(" (").append(jdk_derivative_name).append(")");
++	}
++	if (distro_package_version.length() > 0) {
++	    sb.append(" (").append(distro_package_version).append(")");
++	} else {
++	    sb.append(" (build ").append(java_runtime_version).append(")");
++	}
++	ps.println(sb.toString());
+ 
+         /* Third line: JVM information. */
+         String java_vm_name    = System.getProperty("java.vm.name");
+--- openjdk/jdk/make/java/version/Makefile.~1~	2008-11-25 01:01:15.000000000 -0800
++++ openjdk/jdk/make/java/version/Makefile	2009-02-20 09:03:56.000000000 -0800
+@@ -39,6 +39,8 @@
+ 	$(SED) -e 's/@@launcher_name@@/$(LAUNCHER_NAME)/g' \
+ 	    -e 's/@@java_version@@/$(RELEASE)/g' \
+ 	    -e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
++	    -e 's/@@jdk_derivative_name@@/$(JDK_DERIVATIVE_NAME)/g' \
++	    -e 's/@@distro_package_version@@/$(DISTRO_PACKAGE_VERSION)/g' \
+ 	    -e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
+ 	$< > $@.temp
+ 	@$(MV) $@.temp $@
--- a/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java	Wed Feb 25 12:29:06 2009 -0500
@@ -54,7 +54,6 @@
 import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
 
@@ -251,7 +250,8 @@
 		if (System.getSecurityManager() == null) {
 			JNLPRuntime.initialize();
 		}
-
+		
+		JNLPRuntime.disableExit();
 		this.classLoaders.put(liveconnectLoader, "file://");
 	}
 
--- a/plugin/icedtea/sun/applet/PluginAppletViewer.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/plugin/icedtea/sun/applet/PluginAppletViewer.java	Wed Feb 25 12:29:06 2009 -0500
@@ -174,6 +174,8 @@
      
      private static PluginCallRequestFactory requestFactory;
      
+     private static HashMap<Integer, String> siteCookies = new HashMap<Integer,String>();
+
      private double proposedHeightFactor;
      private double proposedWidthFactor;
 
@@ -186,7 +188,7 @@
      /**
       * Create the applet viewer
       */
-     public PluginAppletViewer(int identifier, long handle, int x, int y, final URL doc,
+     public PluginAppletViewer(final int identifier, long handle, int x, int y, final URL doc,
                                final Hashtable atts, PrintStream statusMsgStream,
                                PluginAppletViewerFactory factory) {
          super(handle, true);
@@ -213,7 +215,7 @@
          AccessController.doPrivileged(new PrivilegedAction() {
              public Object run() {
             	 	try {
-            	 		panel = new NetxPanel(doc, atts, false);
+            	 		panel = new NetxPanel(doc, siteCookies.get(identifier), atts, false);
             	 		AppletViewerPanel.debug("Using NetX panel");
             	 		PluginDebug.debug(atts.toString());
             	 	} catch (Exception ex) {
@@ -302,15 +304,12 @@
     showStatus(amh.getMessage("status.start"));
  	initEventQueue();
  	
-    // Wait for a maximum of 10 seconds for the panel to initialize
+ 	// Wait for the panel to initialize
     // (happens in a separate thread)
  	Applet a;
-    int maxSleepTime = 10000;
-    int sleepTime = 0;
-    while ((a = panel.getApplet()) == null && sleepTime < maxSleepTime) {
+    while ((a = panel.getApplet()) == null && panel.getAppletHandlerThread().isAlive()) {
    	 try {
    		 Thread.sleep(100);
-   		 sleepTime += 100;
    		 PluginDebug.debug("Waiting for applet to initialize... ");
    	 } catch (InterruptedException ie) {
    		 ie.printStackTrace();
@@ -344,7 +343,7 @@
  	} catch (IOException ioe) {
  		ioe.printStackTrace();
  	}
-
+ 	
      }
 
  	public static void setStreamhandler(PluginStreamHandler sh) {
@@ -420,6 +419,16 @@
             			 PluginDebug.debug ("REQUEST TAG NOT SET: " + request.tag + ". BYPASSING");
             		 }
             	 }
+             } else if (message.startsWith("cookie")) {
+                 
+                 int cookieStrIndex = message.indexOf(" ");
+                 String cookieStr = null;
+
+                 if (cookieStrIndex > 0)
+                     cookieStr = message.substring(cookieStrIndex);
+
+                 // Always set the cookie -- even if it is null
+                 siteCookies.put(identifier, cookieStr);
              } else {
                  PluginDebug.debug ("HANDLING MESSAGE " + message + " instance " + identifier + " " + Thread.currentThread());
                  applets.get(identifier).handleMessage(reference, message);
@@ -480,20 +489,23 @@
              // object should belong to?
              Object o;
 
-             // Wait for a maximum of 10 seconds for the panel to initialize
+             // Wait for the panel to initialize
              // (happens in a separate thread)
-             int maxSleepTime = 10000;
-             int sleepTime = 0;
-             while ((o = panel.getApplet()) == null && sleepTime < maxSleepTime) {
+             while ((o = panel.getApplet()) == null && panel.getAppletHandlerThread().isAlive()) {
             	 try {
             		 Thread.sleep(100);
-            		 sleepTime += 100;
             		 PluginDebug.debug("Waiting for applet to initialize...");
             	 } catch (InterruptedException ie) {
             		 ie.printStackTrace();
             	 }
              }
 
+             // Still null?
+             if (panel.getApplet() == null) {
+                 this.streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError " + "Initialization failed");
+                 return;
+             }
+
              PluginDebug.debug ("Looking for object " + o + " panel is " + panel);
              AppletSecurityContextManager.getSecurityContext(0).store(o);
              PluginDebug.debug ("WRITING 1: " + "context 0 reference " + reference + " GetJavaObject "
@@ -1455,6 +1467,11 @@
  
      public static void parse(int identifier, long handle, Reader in, URL url)
          throws IOException {
+         
+         // wait until cookie is set (even if cookie is null, it needs to be 
+         // "set" to that first
+         while (!siteCookies.containsKey(identifier));
+
     	 final int fIdentifier = identifier;
     	 final long fHandle = handle;
     	 final Reader fIn = in;
--- a/plugin/icedtea/sun/applet/PluginStreamHandler.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/plugin/icedtea/sun/applet/PluginStreamHandler.java	Wed Feb 25 12:29:06 2009 -0500
@@ -221,7 +221,10 @@
     	String rest = "";
 
     	String[] msgComponents = message.split(" ");
-    	
+    
+		if (msgComponents.length < 2)
+			return;
+	
     	// type and identifier are guaranteed to be there
     	String type = msgComponents[0];
     	final int identifier = Integer.parseInt(msgComponents[1]);
@@ -359,24 +362,26 @@
     	try {
     		message = pluginInputReader.readLine();
     		PluginDebug.debug("  PIPE: appletviewer read: " + message);
-    	} catch (IOException e) {
 
-    		if (message == null || message.equals("shutdown")) {
-    			synchronized(shuttingDown) {
-    				shuttingDown = true;
-    			}
-    			try {
-    				// Close input/output channels to plugin.
-    				pluginInputReader.close();
-    				pluginOutputWriter.close();
-    			} catch (IOException exception) {
-    				// Deliberately ignore IOException caused by broken
-    				// pipe since plugin may have already detached.
-    			}
-    			AppletSecurityContextManager.dumpStore(0);
-    			PluginDebug.debug("APPLETVIEWER: exiting appletviewer");
-    			System.exit(0);
-    		}
+            if (message == null || message.equals("shutdown")) {
+                synchronized(shuttingDown) {
+                    shuttingDown = true;
+                }
+                try {
+                    // Close input/output channels to plugin.
+                    pluginInputReader.close();
+                    pluginOutputWriter.close();
+                } catch (IOException exception) {
+                    // Deliberately ignore IOException caused by broken
+                    // pipe since plugin may have already detached.
+                }
+                AppletSecurityContextManager.dumpStore(0);
+                PluginDebug.debug("APPLETVIEWER: exiting appletviewer");
+                System.exit(0);
+            }
+
+    	} catch (IOException e) {
+    	       e.printStackTrace();
     	}
 
     	return message;
--- a/rt/net/sourceforge/jnlp/ExtensionDesc.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/ExtensionDesc.java	Wed Feb 25 12:29:06 2009 -0500
@@ -40,6 +40,9 @@
 
     /** the location of the extension JNLP file */
     private URL location;
+    
+    /** the cookie string sent with resource requests */
+    private String cookieStr;
 
     /** the JNLPFile the extension refers to */
     private JNLPFile file;
@@ -58,10 +61,11 @@
      * @param version the required version of the extention JNLPFile
      * @param location the location of the extention JNLP file
      */
-    public ExtensionDesc(String name, Version version, URL location) {
+    public ExtensionDesc(String name, Version version, URL location, String cookieStr) {
         this.name = name;
         this.version = version;
         this.location = location;
+        this.cookieStr = cookieStr;
     }
 
     /**
@@ -121,7 +125,7 @@
      */
     public void resolve() throws ParseException, IOException {
         if (file == null) {
-            file = new JNLPFile(location);
+            file = new JNLPFile(location, cookieStr);
 
             if (JNLPRuntime.isDebug())
                 System.out.println("Resolve: "+file.getInformation().getTitle());
@@ -140,6 +144,13 @@
     public JNLPFile getJNLPFile() {
         return file;
     }
+    
+    /**
+     * Returns the cookie associated with this instance
+     */
+    public String getCookieStr() {
+        return cookieStr;
+    }
 
 }
 
--- a/rt/net/sourceforge/jnlp/JNLPFile.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/JNLPFile.java	Wed Feb 25 12:29:06 2009 -0500
@@ -62,6 +62,9 @@
 
     /** the URL used to resolve relative URLs in the file */
     protected URL codeBase;
+    
+    /** cookie string to send alongwith resource requests */
+    protected String cookieStr;
 
     /** file version */
     protected Version fileVersion;
@@ -117,8 +120,8 @@
      * @throws IOException if an IO exception occurred
      * @throws ParseException if the JNLP file was invalid
      */
-    public JNLPFile(URL location) throws IOException, ParseException {
-        this(location, false); // not strict
+    public JNLPFile(URL location, String cookieStr) throws IOException, ParseException {
+        this(location, cookieStr, false); // not strict
     }
 
     /**
@@ -130,8 +133,8 @@
      * @throws IOException if an IO exception occurred
      * @throws ParseException if the JNLP file was invalid
      */
-    public JNLPFile(URL location, boolean strict) throws IOException, ParseException {
-        this(location, strict, JNLPRuntime.getDefaultUpdatePolicy());
+    public JNLPFile(URL location, String cookieStr, boolean strict) throws IOException, ParseException {
+        this(location, cookieStr, strict, JNLPRuntime.getDefaultUpdatePolicy());
     }
 
     /**
@@ -144,11 +147,12 @@
      * @throws IOException if an IO exception occurred
      * @throws ParseException if the JNLP file was invalid
      */
-    public JNLPFile(URL location, boolean strict, UpdatePolicy policy) throws IOException, ParseException {
-        Node root = Parser.getRootNode(openURL(location, policy));
+    public JNLPFile(URL location, String cookieStr, boolean strict, UpdatePolicy policy) throws IOException, ParseException {
+        Node root = Parser.getRootNode(openURL(location, cookieStr, policy));
         parse(root, strict, location);
 
         this.fileLocation = location;
+        this.cookieStr = cookieStr;
     }
 
     /**
@@ -179,13 +183,13 @@
      * Open the jnlp file URL from the cache if there, otherwise
      * download to the cache.  Called from constructor.
      */
-    private static InputStream openURL(URL location, UpdatePolicy policy) throws IOException {
+    private static InputStream openURL(URL location, String cookieStr, UpdatePolicy policy) throws IOException {
         if (location == null || policy == null)
             throw new IllegalArgumentException(R("NullParameter"));
 
         try {
             ResourceTracker tracker = new ResourceTracker(false); // no prefetch
-            tracker.addResource(location, null/*version*/, policy);
+            tracker.addResource(location, cookieStr, null/*version*/, policy);
 
             return tracker.getInputStream(location);
         }
@@ -247,6 +251,13 @@
     }
 
     /**
+     * Returns the cookie string that will be send when resources for this file are requested 
+     */
+    public String getCookieStr() {
+        return cookieStr;
+    }
+    
+    /**
      * Returns the information section of the JNLP file as viewed
      * through the default locale.
      */
--- a/rt/net/sourceforge/jnlp/Launcher.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/Launcher.java	Wed Feb 25 12:29:06 2009 -0500
@@ -299,10 +299,10 @@
             JNLPFile file = null;
 
             try {
-                file = new JNLPFile(location, true, updatePolicy); // strict
+                file = new JNLPFile(location, null, true, updatePolicy); // strict
             }
             catch (ParseException ex) {
-                file = new JNLPFile(location, false, updatePolicy);
+                file = new JNLPFile(location, null, false, updatePolicy);
 
                 // only here if strict failed but lax did not fail 
                 LaunchException lex = 
--- a/rt/net/sourceforge/jnlp/NetxPanel.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/NetxPanel.java	Wed Feb 25 12:29:06 2009 -0500
@@ -41,6 +41,7 @@
     private PluginBridge bridge = null;
     private boolean exitOnFailure = true;
     private AppletInstance appInst = null;
+    private String cookieStr;
 
     public NetxPanel(URL documentURL, Hashtable atts)
     {
@@ -48,10 +49,11 @@
     }
     
     // overloaded constructor, called when initialized via plugin 
-    public NetxPanel(URL documentURL, Hashtable atts, boolean exitOnFailure)
+    public NetxPanel(URL documentURL, String cookieStr, Hashtable atts, boolean exitOnFailure)
     {
         this(documentURL, atts);
         this.exitOnFailure = exitOnFailure;
+        this.cookieStr = cookieStr;
     }
 
     //Overriding to use Netx classloader. You might need to relax visibility
@@ -59,7 +61,8 @@
     protected void runLoader() {
 
     	try {
-    		bridge = new PluginBridge(baseURL, 
+    		bridge = new PluginBridge(baseURL,
+    				cookieStr,
     				getDocumentBase(),
     				getJarFiles(), 
     				getCode(),
--- a/rt/net/sourceforge/jnlp/Parser.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/Parser.java	Wed Feb 25 12:29:06 2009 -0500
@@ -323,7 +323,7 @@
         Version version = getVersion(node, "version", null);
         URL location = getRequiredURL(node, "href", base);
 
-        ExtensionDesc ext = new ExtensionDesc(name, version, location);
+        ExtensionDesc ext = new ExtensionDesc(name, version, location, null);
 
         Node dload[] = getChildNodes(node, "ext-download");
         for (int i=0; i < dload.length; i++) {
--- a/rt/net/sourceforge/jnlp/PluginBridge.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/PluginBridge.java	Wed Feb 25 12:29:06 2009 -0500
@@ -43,7 +43,7 @@
     String[] cache_ex_jars = new String[0];
     Hashtable atts;
 
-    public PluginBridge(URL codebase, URL documentBase, String jar, String main,
+    public PluginBridge(URL codebase, String cookieStr, URL documentBase, String jar, String main,
                         int width, int height, Hashtable atts)
     throws Exception
     {
@@ -103,6 +103,8 @@
                                         codebase.getHost());
         else
             security = null;
+        
+        this.cookieStr = cookieStr;
     }
 
     public String getTitle()
@@ -139,8 +141,9 @@
                     if (launchType.equals(JARDesc.class))
                     {
                         for (int i = 0; i < jars.length; i++)
-                            result.add(new JARDesc(new URL(codeBase, jars[i]),
-                                                   null, null, false, true, false, true));
+                            if (jars[i].length() > 0)
+                                result.add(new JARDesc(new URL(codeBase, jars[i]),
+                                        null, null, false, true, false, true));
                         
                         boolean cacheable = true;
 
@@ -155,6 +158,9 @@
                             String jar = jar_and_ver[0];
                             Version version = null;
                             
+                            if (jar.length() == 0)
+                                continue;
+                            
                             if (jar_and_ver.length > 1) {
                                 version = new Version(jar_and_ver[1]);
                             }
@@ -164,6 +170,10 @@
                         }
                         
                         for (int i = 0; i < cache_ex_jars.length; i++) {
+
+                            if (cache_ex_jars[i].length() == 0)
+                                continue;
+                            
                             String[] jar_info = cache_ex_jars[i].split(";");
                             
                             String jar = jar_info[0].trim();
--- a/rt/net/sourceforge/jnlp/cache/CacheUtil.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/cache/CacheUtil.java	Wed Feb 25 12:29:06 2009 -0500
@@ -75,9 +75,9 @@
      * @param version the version, or null
      * @return either the location in the cache or the original location
      */
-    public static URL getCachedResource(URL location, Version version, UpdatePolicy policy) {
+    public static URL getCachedResource(URL location, String cookieStr, Version version, UpdatePolicy policy) {
         ResourceTracker rt = new ResourceTracker();
-        rt.addResource(location, version, policy);
+        rt.addResource(location, cookieStr, version, policy);
         try {
             File f = rt.getCacheFile(location);
             return f.toURL();
@@ -139,6 +139,7 @@
      * @throws IllegalArgumentException if the source is not cacheable
      */
     public static boolean isCurrent(URL source, Version version, URLConnection connection) {
+
         if (!isCacheable(source, version))
             throw new IllegalArgumentException(R("CNotCacheable", source));
 
--- a/rt/net/sourceforge/jnlp/cache/Resource.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/cache/Resource.java	Wed Feb 25 12:29:06 2009 -0500
@@ -67,6 +67,9 @@
 
     /** the remote location of the resource */
     URL location;
+    
+    /** cookie string to send with the resource request */
+    String cookieStr;
 
     /** the local file downloaded to */
     File localFile;
@@ -95,19 +98,20 @@
     /**
      * Create a resource.
      */
-    private Resource(URL location, UpdatePolicy updatePolicy, Version requestVersion) {
+    private Resource(URL location, String cookieStr, UpdatePolicy updatePolicy, Version requestVersion) {
         this.location = location;
         this.requestVersion = requestVersion;
         this.updatePolicy = updatePolicy;
+        this.cookieStr = cookieStr;
     }
 
     /**
      * Return a shared Resource object representing the given
      * location and version.
      */
-    public static Resource getResource(URL location, UpdatePolicy updatePolicy, Version requestVersion) {
+    public static Resource getResource(URL location, String cookieStr, UpdatePolicy updatePolicy, Version requestVersion) {
         synchronized (resources) {
-            Resource resource = new Resource(location, updatePolicy, requestVersion);
+            Resource resource = new Resource(location, cookieStr, updatePolicy, requestVersion);
 
             int index = resources.indexOf(resource);
             if (index >= 0) { // return existing object
@@ -129,6 +133,13 @@
     public URL getLocation() {
         return location;
     }
+    
+    /**
+     * Returns the cookie string associated with this resource
+     */
+    public String getCookieStr() {
+        return cookieStr;
+    }
 
     /**
      * Returns the tracker that first created or monitored the
--- a/rt/net/sourceforge/jnlp/cache/ResourceTracker.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/cache/ResourceTracker.java	Wed Feb 25 12:29:06 2009 -0500
@@ -148,11 +148,11 @@
      * @param version the resource version
      * @param updatePolicy whether to check for updates if already in cache
      */
-    public void addResource(URL location, Version version, UpdatePolicy updatePolicy) {
+    public void addResource(URL location, String cookieStr, Version version, UpdatePolicy updatePolicy) {
         if (location == null)
             throw new IllegalArgumentException("location==null");
 
-        Resource resource = Resource.getResource(location, updatePolicy, version);
+        Resource resource = Resource.getResource(location, cookieStr, updatePolicy, version);
         boolean downloaded = false;
 
         synchronized (resources) {
@@ -606,6 +606,10 @@
         try {
             // create out second in case in does not exist
             URLConnection con = getVersionedResourceURL(resource).openConnection();
+            
+            if (resource.getCookieStr() != null && resource.getCookieStr().length() > 0)
+                con.setRequestProperty("Cookie", resource.getCookieStr());
+
             InputStream in = new BufferedInputStream(con.getInputStream());
             OutputStream out = CacheUtil.getOutputStream(resource.location, resource.downloadVersion);
             byte buf[] = new byte[1024];
@@ -653,6 +657,10 @@
 
             // connect
             URLConnection connection = getVersionedResourceURL(resource).openConnection(); // this won't change so should be okay unsynchronized
+            
+            if (resource.getCookieStr() != null && resource.getCookieStr().length() > 0)
+                connection.setRequestProperty("Cookie", resource.getCookieStr());
+
             int size = connection.getContentLength();
             boolean current = CacheUtil.isCurrent(resource.location, resource.requestVersion, connection) && resource.getUpdatePolicy() != UpdatePolicy.FORCE;
 
--- a/rt/net/sourceforge/jnlp/runtime/Boot.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/runtime/Boot.java	Wed Feb 25 12:29:06 2009 -0500
@@ -243,7 +243,7 @@
         
         boolean strict = (null != getOption("-strict"));
 
-        JNLPFile file = new JNLPFile(url, strict);
+        JNLPFile file = new JNLPFile(url, null, strict);
 
         // add in extra params from command line
         addProperties(file);
--- a/rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java	Wed Feb 25 12:29:06 2009 -0500
@@ -233,11 +233,11 @@
      * @param location the file's location
      * @param policy the update policy to use when downloading resources
      */
-    public static JNLPClassLoader getInstance(URL location, UpdatePolicy policy) throws IOException, ParseException, LaunchException {
+    public static JNLPClassLoader getInstance(URL location, String cookieStr, UpdatePolicy policy) throws IOException, ParseException, LaunchException {
         JNLPClassLoader loader = (JNLPClassLoader) urlToLoader.get(location);
 
         if (loader == null)
-            loader = getInstance(new JNLPFile(location, false, policy), policy);
+            loader = getInstance(new JNLPFile(location, cookieStr, false, policy), policy);
 
         return loader;
     }
@@ -255,7 +255,7 @@
 		//if (ext != null) {
         	for (int i=0; i < ext.length; i++) {
             	try {
-               		JNLPClassLoader loader = getInstance(ext[i].getLocation(), updatePolicy);
+               		JNLPClassLoader loader = getInstance(ext[i].getLocation(), ext[i].getCookieStr(), updatePolicy);
                 	loaderList.add(loader);
             	}
             	catch (Exception ex) {
@@ -312,7 +312,8 @@
             if (jars[i].isEager())
                 initialJars.add(jars[i]); // regardless of part
 
-            tracker.addResource(jars[i].getLocation(), 
+            tracker.addResource(jars[i].getLocation(),
+                                file.getCookieStr(),
                                 jars[i].getVersion(), 
                                 jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE
                                );
@@ -730,6 +731,7 @@
                             available.add(desc);
 
                             tracker.addResource(desc.getLocation(), 
+                                    file.getCookieStr(),
                                     desc.getVersion(), 
                                     JNLPRuntime.getDefaultUpdatePolicy()
                             );
--- a/rt/net/sourceforge/jnlp/runtime/JNLPRuntime.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/runtime/JNLPRuntime.java	Wed Feb 25 12:29:06 2009 -0500
@@ -285,6 +285,15 @@
         checkExitClass();
         security.setExitClass(exitClass);
     }
+    
+    /**
+     * Disables applets from calling exit.
+     * 
+     * Once disabled, exit cannot be re-enabled for the duration of the JVM instance
+     */
+    public static void disableExit() {
+    	security.disableExit();
+    }
 
     /**
      * Return the current Application, or null if none can be
--- a/rt/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java	Wed Feb 25 12:29:06 2009 -0500
@@ -23,6 +23,7 @@
 import java.awt.event.WindowEvent;
 import java.lang.ref.WeakReference;
 import java.net.SocketPermission;
+import java.security.AccessControlException;
 import java.security.AccessController;
 import java.security.Permission;
 import java.security.PrivilegedAction;
@@ -102,6 +103,9 @@
 
     /** listener installs the app's classloader on the event dispatch thread */
     private ContextUpdater contextListener = new ContextUpdater();
+    
+    /** Sets whether or not exit is allowed (in the context of the plugin, this is always false) */
+    private boolean exitAllowed = true;
 
     private class ContextUpdater extends WindowAdapter implements PrivilegedAction {
         private ApplicationInstance app = null;
@@ -275,7 +279,7 @@
 			try {
 				super.checkPermission(perm);
 			} catch (SecurityException se) {
-				
+
 				//This section is a special case for dealing with SocketPermissions.
 				if (JNLPRuntime.isDebug())
 					System.err.println("Requesting permission: " + perm.toString());
@@ -436,9 +440,17 @@
      * behave normally, and the exit class can always exit the JVM.
      */
     public void checkExit(int status) {
-        super.checkExit(status);
 
+    	// applets are not allowed to exit, but the plugin main class (primordial loader) is
         Class stack[] = getClassContext();
+        if (!exitAllowed) {
+        	for (int i=0; i < stack.length; i++)
+        		if (stack[i].getClassLoader() != null)
+        			throw new AccessControlException("Applets may not call System.exit()");
+        }
+
+    	super.checkExit(status);
+        
         boolean realCall = (stack[1] == Runtime.class);
 
         if (isExitClass(stack)) // either exitClass called or no exitClass set
@@ -468,6 +480,10 @@
         throw closeAppEx;
     }
 
+    protected void disableExit() {
+    	exitAllowed = false;
+    }
+    
 }
 
 
--- a/rt/net/sourceforge/jnlp/tools/JarSigner.java	Wed Jan 28 10:48:37 2009 -0500
+++ b/rt/net/sourceforge/jnlp/tools/JarSigner.java	Wed Feb 25 12:29:06 2009 -0500
@@ -239,22 +239,20 @@
     public boolean verifyJar(String jarName) throws Exception {
         boolean anySigned = false;
         boolean hasUnsignedEntry = false;
-        JarFile jf = null;
+        JarInputStream jis = null;
 
         try {
-            jf = new JarFile(jarName, true);
+            jis = new JarInputStream(new FileInputStream(jarName), true);
             Vector<JarEntry> entriesVec = new Vector<JarEntry>();
             byte[] buffer = new byte[8192];
 
-            Enumeration<JarEntry> entries = jf.entries();
-            while (entries.hasMoreElements()) {
-                JarEntry je = entries.nextElement();
+            JarEntry je;
+            while ((je = jis.getNextJarEntry()) != null) {
                 entriesVec.addElement(je);
                 InputStream is = null;
                 try {
-                    is = jf.getInputStream(je);
                     int n;
-                    while ((n = is.read(buffer, 0, buffer.length)) != -1) {
+                    while ((n = jis.read(buffer, 0, buffer.length)) != -1) {
                         // we just read. this will throw a SecurityException
                         // if  a signature/digest check fails.
                     }
@@ -265,7 +263,7 @@
                 }
             }
 
-            Manifest man = jf.getManifest();
+            Manifest man = jis.getManifest();
 
             if (man != null) {
                 if (verbose) System.out.println();
@@ -274,7 +272,7 @@
                 long now = System.currentTimeMillis();
 
                 while (e.hasMoreElements()) {
-                    JarEntry je = e.nextElement();
+                    je = e.nextElement();
                     String name = je.getName();
                     CodeSigner[] signers = je.getCodeSigners();
                     boolean isSigned = (signers != null);
@@ -349,8 +347,8 @@
             e.printStackTrace();
             throw e;
         } finally { // close the resource
-            if (jf != null) {
-                jf.close();
+            if (jis != null) {
+                jis.close();
             }
         }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/visualvm.desktop	Wed Feb 25 12:29:06 2009 -0500
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=OpenJDK VisualVM
+Comment=Integrates commandline JDK tools and profiling capabilites.
+Exec=/usr/bin/jvisualvm
+Icon=java
+Terminal=false
+Type=Application
+Categories=Development;Java;
+Version=1.0