diff options
author | jfrijters <jfrijters> | 2011-07-01 12:56:51 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2011-07-01 12:56:51 +0400 |
commit | dcb3e8451e9a8beea33812a89edd92988e955cb1 (patch) | |
tree | 656945537bb8f5b2b1335eda06abfe7fcc9b26cf | |
parent | ad26a54629735de7e5a76e34a786da963188f5d8 (diff) |
Updated java.io package to OpenJDK 7.
-rw-r--r-- | openjdk/allsources.lst | 264 | ||||
-rw-r--r-- | openjdk/java/io/DeleteOnExitHook.java | 79 | ||||
-rw-r--r-- | openjdk/java/io/FilePermission.java | 839 | ||||
-rw-r--r-- | openjdk/java/lang/Shutdown.java | 10 | ||||
-rw-r--r-- | openjdk/map.xml | 9 | ||||
-rw-r--r-- | openjdk/response.txt | 48 | ||||
-rw-r--r-- | openjdk/sun/misc/SharedSecrets.java | 22 | ||||
-rw-r--r-- | openjdk/sun/misc/Unsafe.java | 8 |
8 files changed, 224 insertions, 1055 deletions
diff --git a/openjdk/allsources.lst b/openjdk/allsources.lst index 01c3cd12..406fb5f1 100644 --- a/openjdk/allsources.lst +++ b/openjdk/allsources.lst @@ -53,11 +53,9 @@ java/awt/Image.java java/awt/image/BufferedImage.java java/awt/image/ColorConvertOp.java java/awt/image/IndexColorModel.java -java/io/DeleteOnExitHook.java java/io/FileDescriptor.java java/io/FileInputStream.java java/io/FileOutputStream.java -java/io/FilePermission.java java/io/InteropObjectInputStream.java java/io/InteropObjectOutputStream.java java/io/ObjectStreamClass.java @@ -199,6 +197,8 @@ sun/nio/ch/ServerSocketChannelImpl.java sun/nio/ch/SocketChannelImpl.java sun/nio/ch/Util.java sun/nio/cs/StandardCharsets.java +sun/nio/fs/DefaultFileSystemProvider.java +sun/nio/fs/DefaultFileTypeDetector.java sun/print/PrintPeer.java sun/print/UnixPrintServiceLookup.java sun/print/Win32PrintJob.java @@ -7673,6 +7673,10 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/com/sun/net/ssl/TrustManagerFactorySpi.java @OPENJDK6@/jdk/src/share/classes/com/sun/net/ssl/X509KeyManager.java @OPENJDK6@/jdk/src/share/classes/com/sun/net/ssl/X509TrustManager.java +@OPENJDK7@/jdk/src/share/classes/com/sun/nio/file/ExtendedCopyOption.java +@OPENJDK7@/jdk/src/share/classes/com/sun/nio/file/ExtendedOpenOption.java +@OPENJDK7@/jdk/src/share/classes/com/sun/nio/file/ExtendedWatchEventModifier.java +@OPENJDK7@/jdk/src/share/classes/com/sun/nio/file/SensitivityWatchEventModifier.java @OPENJDK6@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/Algorithm.java @OPENJDK6@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/IntegrityHmac.java @OPENJDK6@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/SignatureBaseRSA.java @@ -8427,81 +8431,83 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/java/beans/Visibility.java @OPENJDK6@/jdk/src/share/classes/java/beans/XMLDecoder.java @OPENJDK6@/jdk/src/share/classes/java/beans/XMLEncoder.java -@OPENJDK6@/jdk/src/share/classes/java/io/Bits.java -@OPENJDK6@/jdk/src/share/classes/java/io/BufferedInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/BufferedOutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/BufferedReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/BufferedWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/ByteArrayInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/ByteArrayOutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/CharArrayReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/CharArrayWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/CharConversionException.java +@OPENJDK7@/jdk/src/share/classes/java/io/Bits.java +@OPENJDK7@/jdk/src/share/classes/java/io/BufferedInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/BufferedOutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/BufferedReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/BufferedWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/ByteArrayInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/ByteArrayOutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/CharArrayReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/CharArrayWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/CharConversionException.java @OPENJDK7@/jdk/src/share/classes/java/io/Closeable.java -@OPENJDK6@/jdk/src/share/classes/java/io/Console.java -@OPENJDK6@/jdk/src/share/classes/java/io/DataInput.java -@OPENJDK6@/jdk/src/share/classes/java/io/DataInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/DataOutput.java -@OPENJDK6@/jdk/src/share/classes/java/io/DataOutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/EOFException.java -@OPENJDK6@/jdk/src/share/classes/java/io/ExpiringCache.java -@OPENJDK6@/jdk/src/share/classes/java/io/Externalizable.java -@OPENJDK6@/jdk/src/share/classes/java/io/File.java -@OPENJDK6@/jdk/src/share/classes/java/io/FileFilter.java -@OPENJDK6@/jdk/src/share/classes/java/io/FilenameFilter.java -@OPENJDK6@/jdk/src/share/classes/java/io/FileNotFoundException.java -@OPENJDK6@/jdk/src/share/classes/java/io/FileReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/FileSystem.java -@OPENJDK6@/jdk/src/share/classes/java/io/FileWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/FilterInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/FilterOutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/FilterReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/FilterWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/Flushable.java -@OPENJDK6@/jdk/src/share/classes/java/io/InputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/InputStreamReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/InterruptedIOException.java -@OPENJDK6@/jdk/src/share/classes/java/io/InvalidClassException.java -@OPENJDK6@/jdk/src/share/classes/java/io/InvalidObjectException.java -@OPENJDK6@/jdk/src/share/classes/java/io/IOError.java -@OPENJDK6@/jdk/src/share/classes/java/io/IOException.java -@OPENJDK6@/jdk/src/share/classes/java/io/LineNumberInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/LineNumberReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/NotActiveException.java -@OPENJDK6@/jdk/src/share/classes/java/io/NotSerializableException.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectInput.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectInputValidation.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectOutput.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectOutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectStreamConstants.java -@OPENJDK6@/jdk/src/share/classes/java/io/ObjectStreamException.java -@OPENJDK6@/jdk/src/share/classes/java/io/OptionalDataException.java -@OPENJDK6@/jdk/src/share/classes/java/io/OutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/OutputStreamWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/PipedInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/PipedOutputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/PipedReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/PipedWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/PrintStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/PrintWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/PushbackInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/PushbackReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/Reader.java -@OPENJDK6@/jdk/src/share/classes/java/io/SequenceInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/SerialCallbackContext.java -@OPENJDK6@/jdk/src/share/classes/java/io/Serializable.java -@OPENJDK6@/jdk/src/share/classes/java/io/SerializablePermission.java -@OPENJDK6@/jdk/src/share/classes/java/io/StreamCorruptedException.java -@OPENJDK6@/jdk/src/share/classes/java/io/StreamTokenizer.java -@OPENJDK6@/jdk/src/share/classes/java/io/StringBufferInputStream.java -@OPENJDK6@/jdk/src/share/classes/java/io/StringReader.java -@OPENJDK6@/jdk/src/share/classes/java/io/StringWriter.java -@OPENJDK6@/jdk/src/share/classes/java/io/SyncFailedException.java -@OPENJDK6@/jdk/src/share/classes/java/io/UnsupportedEncodingException.java -@OPENJDK6@/jdk/src/share/classes/java/io/UTFDataFormatException.java -@OPENJDK6@/jdk/src/share/classes/java/io/WriteAbortedException.java -@OPENJDK6@/jdk/src/share/classes/java/io/Writer.java +@OPENJDK7@/jdk/src/share/classes/java/io/Console.java +@OPENJDK7@/jdk/src/share/classes/java/io/DataInput.java +@OPENJDK7@/jdk/src/share/classes/java/io/DataInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/DataOutput.java +@OPENJDK7@/jdk/src/share/classes/java/io/DataOutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/DeleteOnExitHook.java +@OPENJDK7@/jdk/src/share/classes/java/io/EOFException.java +@OPENJDK7@/jdk/src/share/classes/java/io/ExpiringCache.java +@OPENJDK7@/jdk/src/share/classes/java/io/Externalizable.java +@OPENJDK7@/jdk/src/share/classes/java/io/File.java +@OPENJDK7@/jdk/src/share/classes/java/io/FileFilter.java +@OPENJDK7@/jdk/src/share/classes/java/io/FilenameFilter.java +@OPENJDK7@/jdk/src/share/classes/java/io/FileNotFoundException.java +@OPENJDK7@/jdk/src/share/classes/java/io/FilePermission.java +@OPENJDK7@/jdk/src/share/classes/java/io/FileReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/FileSystem.java +@OPENJDK7@/jdk/src/share/classes/java/io/FileWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/FilterInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/FilterOutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/FilterReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/FilterWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/Flushable.java +@OPENJDK7@/jdk/src/share/classes/java/io/InputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/InputStreamReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/InterruptedIOException.java +@OPENJDK7@/jdk/src/share/classes/java/io/InvalidClassException.java +@OPENJDK7@/jdk/src/share/classes/java/io/InvalidObjectException.java +@OPENJDK7@/jdk/src/share/classes/java/io/IOError.java +@OPENJDK7@/jdk/src/share/classes/java/io/IOException.java +@OPENJDK7@/jdk/src/share/classes/java/io/LineNumberInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/LineNumberReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/NotActiveException.java +@OPENJDK7@/jdk/src/share/classes/java/io/NotSerializableException.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectInput.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectInputValidation.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectOutput.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectOutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectStreamConstants.java +@OPENJDK7@/jdk/src/share/classes/java/io/ObjectStreamException.java +@OPENJDK7@/jdk/src/share/classes/java/io/OptionalDataException.java +@OPENJDK7@/jdk/src/share/classes/java/io/OutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/OutputStreamWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/PipedInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/PipedOutputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/PipedReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/PipedWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/PrintStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/PrintWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/PushbackInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/PushbackReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/Reader.java +@OPENJDK7@/jdk/src/share/classes/java/io/SequenceInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/SerialCallbackContext.java +@OPENJDK7@/jdk/src/share/classes/java/io/Serializable.java +@OPENJDK7@/jdk/src/share/classes/java/io/SerializablePermission.java +@OPENJDK7@/jdk/src/share/classes/java/io/StreamCorruptedException.java +@OPENJDK7@/jdk/src/share/classes/java/io/StreamTokenizer.java +@OPENJDK7@/jdk/src/share/classes/java/io/StringBufferInputStream.java +@OPENJDK7@/jdk/src/share/classes/java/io/StringReader.java +@OPENJDK7@/jdk/src/share/classes/java/io/StringWriter.java +@OPENJDK7@/jdk/src/share/classes/java/io/SyncFailedException.java +@OPENJDK7@/jdk/src/share/classes/java/io/UnsupportedEncodingException.java +@OPENJDK7@/jdk/src/share/classes/java/io/UTFDataFormatException.java +@OPENJDK7@/jdk/src/share/classes/java/io/WriteAbortedException.java +@OPENJDK7@/jdk/src/share/classes/java/io/Writer.java @OPENJDK7@/jdk/src/share/classes/java/lang/AbstractMethodError.java @OPENJDK7@/jdk/src/share/classes/java/lang/AbstractStringBuilder.java @OPENJDK7@/jdk/src/share/classes/java/lang/annotation/Annotation.java @@ -8735,9 +8741,12 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/java/net/URLStreamHandlerFactory.java @OPENJDK6@/jdk/src/share/classes/java/nio/Buffer.java @OPENJDK6@/jdk/src/share/classes/java/nio/ByteOrder.java +@OPENJDK7@/jdk/src/share/classes/java/nio/channels/AsynchronousChannel.java +@OPENJDK7@/jdk/src/share/classes/java/nio/channels/AsynchronousFileChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/ByteChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/Channel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/Channels.java +@OPENJDK7@/jdk/src/share/classes/java/nio/channels/CompletionHandler.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/DatagramChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/FileChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/FileLock.java @@ -8746,6 +8755,7 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/Pipe.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/ReadableByteChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/ScatteringByteChannel.java +@OPENJDK7@/jdk/src/share/classes/java/nio/channels/SeekableByteChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/SelectableChannel.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/SelectionKey.java @OPENJDK6@/jdk/src/share/classes/java/nio/channels/Selector.java @@ -8764,6 +8774,82 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/java/nio/charset/MalformedInputException.java @OPENJDK6@/jdk/src/share/classes/java/nio/charset/spi/CharsetProvider.java @OPENJDK6@/jdk/src/share/classes/java/nio/charset/UnmappableCharacterException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/AccessDeniedException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/AccessMode.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/AtomicMoveNotSupportedException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/ClosedDirectoryStreamException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/ClosedFileSystemException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/ClosedWatchServiceException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/CopyMoveHelper.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/CopyOption.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/DirectoryIteratorException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/DirectoryNotEmptyException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/DirectoryStream.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileAlreadyExistsException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/Files.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileStore.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileSystem.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileSystemAlreadyExistsException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileSystemException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileSystemLoopException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileSystemNotFoundException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileSystems.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileTreeWalker.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileVisitOption.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileVisitor.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/FileVisitResult.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/InvalidPathException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/LinkOption.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/LinkPermission.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/NoSuchFileException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/NotDirectoryException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/NotLinkException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/OpenOption.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/package-info.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/Path.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/PathMatcher.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/Paths.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/ProviderMismatchException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/ProviderNotFoundException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/ReadOnlyFileSystemException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/SecureDirectoryStream.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/SimpleFileVisitor.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/StandardCopyOption.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/StandardOpenOption.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/StandardWatchEventKinds.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/TempFileHelper.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/Watchable.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/WatchEvent.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/WatchKey.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/WatchService.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/AclEntry.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/AclEntryFlag.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/AclEntryPermission.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/AclEntryType.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/AclFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/AttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/BasicFileAttributes.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/BasicFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/DosFileAttributes.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/DosFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/FileAttribute.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/FileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/FileOwnerAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/FileStoreAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/FileTime.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/GroupPrincipal.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/package-info.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/PosixFileAttributes.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/PosixFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/PosixFilePermission.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/PosixFilePermissions.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/UserDefinedFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/UserPrincipal.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/UserPrincipalLookupService.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/UserPrincipalNotFoundException.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/spi/FileSystemProvider.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/spi/FileTypeDetector.java +@OPENJDK7@/jdk/src/share/classes/java/nio/file/spi/package-info.java @OPENJDK6@/jdk/src/share/classes/java/nio/MappedByteBuffer.java @OPENJDK6@/jdk/src/share/classes/java/nio/StringCharBuffer.java @OPENJDK6@/jdk/src/share/classes/java/rmi/AccessException.java @@ -9156,7 +9242,7 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java @OPENJDK6@/jdk/src/share/classes/java/util/concurrent/TimeoutException.java @OPENJDK6@/jdk/src/share/classes/java/util/concurrent/TimeUnit.java -@OPENJDK6@/jdk/src/share/classes/java/util/ConcurrentModificationException.java +@OPENJDK7@/jdk/src/share/classes/java/util/ConcurrentModificationException.java @OPENJDK6@/jdk/src/share/classes/java/util/Currency.java @OPENJDK6@/jdk/src/share/classes/java/util/Date.java @OPENJDK6@/jdk/src/share/classes/java/util/Deque.java @@ -11360,9 +11446,8 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/sun/misc/IOUtils.java @OPENJDK6@/jdk/src/share/classes/sun/misc/JarFilter.java @OPENJDK6@/jdk/src/share/classes/sun/misc/JarIndex.java -@OPENJDK6@/jdk/src/share/classes/sun/misc/JavaIOAccess.java -@OPENJDK6@/jdk/src/share/classes/sun/misc/JavaIODeleteOnExitAccess.java -@OPENJDK6@/jdk/src/share/classes/sun/misc/JavaIOFileDescriptorAccess.java +@OPENJDK7@/jdk/src/share/classes/sun/misc/JavaIOAccess.java +@OPENJDK7@/jdk/src/share/classes/sun/misc/JavaIOFileDescriptorAccess.java @OPENJDK7@/jdk/src/share/classes/sun/misc/JavaLangAccess.java @OPENJDK6@/jdk/src/share/classes/sun/misc/JavaNetAccess.java @OPENJDK6@/jdk/src/share/classes/sun/misc/JavaSecurityAccess.java @@ -11748,6 +11833,25 @@ sun/security/jgss/wrapper/SunNativeProvider.java @OPENJDK6@/jdk/src/share/classes/sun/nio/cs/UTF_32LE.java @OPENJDK6@/jdk/src/share/classes/sun/nio/cs/UTF_32LE_BOM.java @OPENJDK6@/jdk/src/share/classes/sun/nio/cs/UTF_8.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractFileSystemProvider.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractFileTypeDetector.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractPath.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractPoller.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/AbstractWatchService.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/BasicFileAttributesHolder.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/Cancellable.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/DynamicFileAttributeView.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/Globs.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/NativeBuffer.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/NativeBuffers.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/PollingWatchService.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/Reflect.java +@OPENJDK7@/jdk/src/share/classes/sun/nio/fs/Util.java @OPENJDK6@/jdk/src/share/classes/sun/print/AttributeUpdater.java @OPENJDK6@/jdk/src/share/classes/sun/print/BackgroundLookupListener.java @OPENJDK6@/jdk/src/share/classes/sun/print/BackgroundServiceLookup.java diff --git a/openjdk/java/io/DeleteOnExitHook.java b/openjdk/java/io/DeleteOnExitHook.java deleted file mode 100644 index a9ddaac9..00000000 --- a/openjdk/java/io/DeleteOnExitHook.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package java.io; - -import java.util.*; -import java.io.File; - -/** - * This class holds a set of filenames to be deleted on VM exit through a shutdown hook. - * A set is used both to prevent double-insertion of the same file as well as offer - * quick removal. - */ - -class DeleteOnExitHook { - private static DeleteOnExitHook instance = null; - - private static LinkedHashSet<String> files = new LinkedHashSet<String>(); - - static { - // [IKVM] make sure that we are registered with the shutdown process - Shutdown.init(); - } - - static DeleteOnExitHook hook() { - if (instance == null) - instance = new DeleteOnExitHook(); - - return instance; - } - - private DeleteOnExitHook() {} - - static synchronized void add(String file) { - if(files == null) - throw new IllegalStateException("Shutdown in progress"); - - files.add(file); - } - - void run() { - LinkedHashSet<String> theFiles; - - synchronized (DeleteOnExitHook.class) { - theFiles = files; - files = null; - } - - ArrayList<String> toBeDeleted = new ArrayList<String>(theFiles); - - // reverse the list to maintain previous jdk deletion order. - // Last in first deleted. - Collections.reverse(toBeDeleted); - for (String filename : toBeDeleted) { - (new File(filename)).delete(); - } - } -} diff --git a/openjdk/java/io/FilePermission.java b/openjdk/java/io/FilePermission.java deleted file mode 100644 index fac9686d..00000000 --- a/openjdk/java/io/FilePermission.java +++ /dev/null @@ -1,839 +0,0 @@ -/* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.io; - -import java.security.*; -import java.util.Enumeration; -import java.util.List; -import java.util.ArrayList; -import java.util.StringTokenizer; -import java.util.Vector; -import java.util.Collections; -import java.io.ObjectStreamField; -import java.io.ObjectOutputStream; -import java.io.ObjectInputStream; -import java.io.IOException; -import sun.security.util.SecurityConstants; - -/** - * This class represents access to a file or directory. A FilePermission consists - * of a pathname and a set of actions valid for that pathname. - * <P> - * Pathname is the pathname of the file or directory granted the specified - * actions. A pathname that ends in "/*" (where "/" is - * the file separator character, <code>File.separatorChar</code>) indicates - * all the files and directories contained in that directory. A pathname - * that ends with "/-" indicates (recursively) all files - * and subdirectories contained in that directory. A pathname consisting of - * the special token "<<ALL FILES>>" matches <b>any</b> file. - * <P> - * Note: A pathname consisting of a single "*" indicates all the files - * in the current directory, while a pathname consisting of a single "-" - * indicates all the files in the current directory and - * (recursively) all files and subdirectories contained in the current - * directory. - * <P> - * The actions to be granted are passed to the constructor in a string containing - * a list of one or more comma-separated keywords. The possible keywords are - * "read", "write", "execute", and "delete". Their meaning is defined as follows: - * <P> - * <DL> - * <DT> read <DD> read permission - * <DT> write <DD> write permission - * <DT> execute - * <DD> execute permission. Allows <code>Runtime.exec</code> to - * be called. Corresponds to <code>SecurityManager.checkExec</code>. - * <DT> delete - * <DD> delete permission. Allows <code>File.delete</code> to - * be called. Corresponds to <code>SecurityManager.checkDelete</code>. - * </DL> - * <P> - * The actions string is converted to lowercase before processing. - * <P> - * Be careful when granting FilePermissions. Think about the implications - * of granting read and especially write access to various files and - * directories. The "<<ALL FILES>>" permission with write action is - * especially dangerous. This grants permission to write to the entire - * file system. One thing this effectively allows is replacement of the - * system binary, including the JVM runtime environment. - * - * <p>Please note: Code can always read a file from the same - * directory it's in (or a subdirectory of that directory); it does not - * need explicit permission to do so. - * - * @see java.security.Permission - * @see java.security.Permissions - * @see java.security.PermissionCollection - * - * - * @author Marianne Mueller - * @author Roland Schemers - * @since 1.2 - * - * @serial exclude - */ - -public final class FilePermission extends Permission implements Serializable { - - /** - * Execute action. - */ - private final static int EXECUTE = 0x1; - /** - * Write action. - */ - private final static int WRITE = 0x2; - /** - * Read action. - */ - private final static int READ = 0x4; - /** - * Delete action. - */ - private final static int DELETE = 0x8; - - /** - * All actions (read,write,execute,delete) - */ - private final static int ALL = READ|WRITE|EXECUTE|DELETE; - /** - * No actions. - */ - private final static int NONE = 0x0; - - // the actions mask - private transient int mask; - - // does path indicate a directory? (wildcard or recursive) - private transient boolean directory; - - // is it a recursive directory specification? - private transient boolean recursive; - - /** - * the actions string. - * - * @serial - */ - private String actions; // Left null as long as possible, then - // created and re-used in the getAction function. - - // canonicalized dir path. In the case of - // directories, it is the name "/blah/*" or "/blah/-" without - // the last character (the "*" or "-"). - - private transient String cpath; - - // static Strings used by init(int mask) - private static final char RECURSIVE_CHAR = '-'; - private static final char WILD_CHAR = '*'; - -/* - public String toString() - { - StringBuffer sb = new StringBuffer(); - sb.append("***\n"); - sb.append("cpath = "+cpath+"\n"); - sb.append("mask = "+mask+"\n"); - sb.append("actions = "+getActions()+"\n"); - sb.append("directory = "+directory+"\n"); - sb.append("recursive = "+recursive+"\n"); - sb.append("***\n"); - return sb.toString(); - } -*/ - - private static final long serialVersionUID = 7930732926638008763L; - - /** - * initialize a FilePermission object. Common to all constructors. - * Also called during de-serialization. - * - * @param mask the actions mask to use. - * - */ - private void init(int mask) - { - - if ((mask & ALL) != mask) - throw new IllegalArgumentException("invalid actions mask"); - - if (mask == NONE) - throw new IllegalArgumentException("invalid actions mask"); - - if ((cpath = getName()) == null) - throw new NullPointerException("name can't be null"); - - this.mask = mask; - - if (cpath.equals("<<ALL FILES>>")) { - directory = true; - recursive = true; - cpath = ""; - return; - } - - // store only the canonical cpath if possible - cpath = AccessController.doPrivileged(new PrivilegedAction<String>() { - public String run() { - try { - return canonPath(cpath); - } catch (IOException ioe) { - return cpath; - } - } - }); - - int len = cpath.length(); - char last = ((len > 0) ? cpath.charAt(len - 1) : 0); - - if (last == RECURSIVE_CHAR && - cpath.charAt(len - 2) == File.separatorChar) { - directory = true; - recursive = true; - cpath = cpath.substring(0, --len); - } else if (last == WILD_CHAR && - cpath.charAt(len - 2) == File.separatorChar) { - directory = true; - //recursive = false; - cpath = cpath.substring(0, --len); - } else { - // overkill since they are initialized to false, but - // commented out here to remind us... - //directory = false; - //recursive = false; - } - - // XXX: at this point the path should be absolute. die if it isn't? - } - - // IKVM copied from sun.security.provider.PolicyFile to remove unnecessary dependency - private static String canonPath(String path) throws IOException { - - if (path.endsWith("*")) { - - path = path.substring(0, path.length()-1) + "-"; - - path = new File(path).getCanonicalPath(); - - return path.substring(0, path.length()-1) + "*"; - - } else { - - return new File(path).getCanonicalPath(); - - } - - } - - - /** - * Creates a new FilePermission object with the specified actions. - * <i>path</i> is the pathname of a file or directory, and <i>actions</i> - * contains a comma-separated list of the desired actions granted on the - * file or directory. Possible actions are - * "read", "write", "execute", and "delete". - * - * <p>A pathname that ends in "/*" (where "/" is - * the file separator character, <code>File.separatorChar</code>) - * indicates all the files and directories contained in that directory. - * A pathname that ends with "/-" indicates (recursively) all files and - * subdirectories contained in that directory. The special pathname - * "<<ALL FILES>>" matches any file. - * - * <p>A pathname consisting of a single "*" indicates all the files - * in the current directory, while a pathname consisting of a single "-" - * indicates all the files in the current directory and - * (recursively) all files and subdirectories contained in the current - * directory. - * - * <p>A pathname containing an empty string represents an empty path. - * - * @param path the pathname of the file/directory. - * @param actions the action string. - * - * @throws IllegalArgumentException - * If actions is <code>null</code>, empty or contains an action - * other than the specified possible actions. - */ - - public FilePermission(String path, String actions) - { - super(path); - init(getMask(actions)); - } - - /** - * Creates a new FilePermission object using an action mask. - * More efficient than the FilePermission(String, String) constructor. - * Can be used from within - * code that needs to create a FilePermission object to pass into the - * <code>implies</code> method. - * - * @param path the pathname of the file/directory. - * @param mask the action mask to use. - */ - - // package private for use by the FilePermissionCollection add method - FilePermission(String path, int mask) - { - super(path); - init(mask); - } - - /** - * Checks if this FilePermission object "implies" the specified permission. - * <P> - * More specifically, this method returns true if:<p> - * <ul> - * <li> <i>p</i> is an instanceof FilePermission,<p> - * <li> <i>p</i>'s actions are a proper subset of this - * object's actions, and <p> - * <li> <i>p</i>'s pathname is implied by this object's - * pathname. For example, "/tmp/*" implies "/tmp/foo", since - * "/tmp/*" encompasses all files in the "/tmp" directory, - * including the one named "foo". - * </ul> - * - * @param p the permission to check against. - * - * @return <code>true</code> if the specified permission is not - * <code>null</code> and is implied by this object, - * <code>false</code> otherwise. - */ - public boolean implies(Permission p) { - if (!(p instanceof FilePermission)) - return false; - - FilePermission that = (FilePermission) p; - - // we get the effective mask. i.e., the "and" of this and that. - // They must be equal to that.mask for implies to return true. - - return ((this.mask & that.mask) == that.mask) && impliesIgnoreMask(that); - } - - /** - * Checks if the Permission's actions are a proper subset of the - * this object's actions. Returns the effective mask iff the - * this FilePermission's path also implies that FilePermission's path. - * - * @param that the FilePermission to check against. - * @param exact return immediately if the masks are not equal - * @return the effective mask - */ - boolean impliesIgnoreMask(FilePermission that) { - if (this.directory) { - if (this.recursive) { - // make sure that.path is longer then path so - // something like /foo/- does not imply /foo - if (that.directory) { - return (that.cpath.length() >= this.cpath.length()) && - that.cpath.startsWith(this.cpath); - } else { - return ((that.cpath.length() > this.cpath.length()) && - that.cpath.startsWith(this.cpath)); - } - } else { - if (that.directory) { - // if the permission passed in is a directory - // specification, make sure that a non-recursive - // permission (i.e., this object) can't imply a recursive - // permission. - if (that.recursive) - return false; - else - return (this.cpath.equals(that.cpath)); - } else { - int last = that.cpath.lastIndexOf(File.separatorChar); - if (last == -1) - return false; - else { - // this.cpath.equals(that.cpath.substring(0, last+1)); - // Use regionMatches to avoid creating new string - return (this.cpath.length() == (last + 1)) && - this.cpath.regionMatches(0, that.cpath, 0, last+1); - } - } - } - } else if (that.directory) { - // if this is NOT recursive/wildcarded, - // do not let it imply a recursive/wildcarded permission - return false; - } else { - return (this.cpath.equals(that.cpath)); - } - } - - /** - * Checks two FilePermission objects for equality. Checks that <i>obj</i> is - * a FilePermission, and has the same pathname and actions as this object. - * <P> - * @param obj the object we are testing for equality with this object. - * @return <code>true</code> if obj is a FilePermission, and has the same - * pathname and actions as this FilePermission object, - * <code>false</code> otherwise. - */ - public boolean equals(Object obj) { - if (obj == this) - return true; - - if (! (obj instanceof FilePermission)) - return false; - - FilePermission that = (FilePermission) obj; - - return (this.mask == that.mask) && - this.cpath.equals(that.cpath) && - (this.directory == that.directory) && - (this.recursive == that.recursive); - } - - /** - * Returns the hash code value for this object. - * - * @return a hash code value for this object. - */ - - public int hashCode() { - return this.cpath.hashCode(); - } - - /** - * Converts an actions String to an actions mask. - * - * @param action the action string. - * @return the actions mask. - */ - private static int getMask(String actions) { - - int mask = NONE; - - // Null action valid? - if (actions == null) { - return mask; - } - // Check against use of constants (used heavily within the JDK) - if (actions == SecurityConstants.FILE_READ_ACTION) { - return READ; - } else if (actions == SecurityConstants.FILE_WRITE_ACTION) { - return WRITE; - } else if (actions == SecurityConstants.FILE_EXECUTE_ACTION) { - return EXECUTE; - } else if (actions == SecurityConstants.FILE_DELETE_ACTION) { - return DELETE; - } - - char[] a = actions.toCharArray(); - - int i = a.length - 1; - if (i < 0) - return mask; - - while (i != -1) { - char c; - - // skip whitespace - while ((i!=-1) && ((c = a[i]) == ' ' || - c == '\r' || - c == '\n' || - c == '\f' || - c == '\t')) - i--; - - // check for the known strings - int matchlen; - - if (i >= 3 && (a[i-3] == 'r' || a[i-3] == 'R') && - (a[i-2] == 'e' || a[i-2] == 'E') && - (a[i-1] == 'a' || a[i-1] == 'A') && - (a[i] == 'd' || a[i] == 'D')) - { - matchlen = 4; - mask |= READ; - - } else if (i >= 4 && (a[i-4] == 'w' || a[i-4] == 'W') && - (a[i-3] == 'r' || a[i-3] == 'R') && - (a[i-2] == 'i' || a[i-2] == 'I') && - (a[i-1] == 't' || a[i-1] == 'T') && - (a[i] == 'e' || a[i] == 'E')) - { - matchlen = 5; - mask |= WRITE; - - } else if (i >= 6 && (a[i-6] == 'e' || a[i-6] == 'E') && - (a[i-5] == 'x' || a[i-5] == 'X') && - (a[i-4] == 'e' || a[i-4] == 'E') && - (a[i-3] == 'c' || a[i-3] == 'C') && - (a[i-2] == 'u' || a[i-2] == 'U') && - (a[i-1] == 't' || a[i-1] == 'T') && - (a[i] == 'e' || a[i] == 'E')) - { - matchlen = 7; - mask |= EXECUTE; - - } else if (i >= 5 && (a[i-5] == 'd' || a[i-5] == 'D') && - (a[i-4] == 'e' || a[i-4] == 'E') && - (a[i-3] == 'l' || a[i-3] == 'L') && - (a[i-2] == 'e' || a[i-2] == 'E') && - (a[i-1] == 't' || a[i-1] == 'T') && - (a[i] == 'e' || a[i] == 'E')) - { - matchlen = 6; - mask |= DELETE; - - } else { - // parse error - throw new IllegalArgumentException( - "invalid permission: " + actions); - } - - // make sure we didn't just match the tail of a word - // like "ackbarfaccept". Also, skip to the comma. - boolean seencomma = false; - while (i >= matchlen && !seencomma) { - switch(a[i-matchlen]) { - case ',': - seencomma = true; - /*FALLTHROUGH*/ - case ' ': case '\r': case '\n': - case '\f': case '\t': - break; - default: - throw new IllegalArgumentException( - "invalid permission: " + actions); - } - i--; - } - - // point i at the location of the comma minus one (or -1). - i -= matchlen; - } - - return mask; - } - - /** - * Return the current action mask. Used by the FilePermissionCollection. - * - * @return the actions mask. - */ - - int getMask() { - return mask; - } - - /** - * Return the canonical string representation of the actions. - * Always returns present actions in the following order: - * read, write, execute, delete. - * - * @return the canonical string representation of the actions. - */ - private static String getActions(int mask) - { - StringBuilder sb = new StringBuilder(); - boolean comma = false; - - if ((mask & READ) == READ) { - comma = true; - sb.append("read"); - } - - if ((mask & WRITE) == WRITE) { - if (comma) sb.append(','); - else comma = true; - sb.append("write"); - } - - if ((mask & EXECUTE) == EXECUTE) { - if (comma) sb.append(','); - else comma = true; - sb.append("execute"); - } - - if ((mask & DELETE) == DELETE) { - if (comma) sb.append(','); - else comma = true; - sb.append("delete"); - } - - return sb.toString(); - } - - /** - * Returns the "canonical string representation" of the actions. - * That is, this method always returns present actions in the following order: - * read, write, execute, delete. For example, if this FilePermission object - * allows both write and read actions, a call to <code>getActions</code> - * will return the string "read,write". - * - * @return the canonical string representation of the actions. - */ - public String getActions() - { - if (actions == null) - actions = getActions(this.mask); - - return actions; - } - - - /** - * Returns a new PermissionCollection object for storing FilePermission - * objects. - * <p> - * FilePermission objects must be stored in a manner that allows them - * to be inserted into the collection in any order, but that also enables the - * PermissionCollection <code>implies</code> - * method to be implemented in an efficient (and consistent) manner. - * - * <p>For example, if you have two FilePermissions: - * <OL> - * <LI> <code>"/tmp/-", "read"</code> - * <LI> <code>"/tmp/scratch/foo", "write"</code> - * </OL> - * - * <p>and you are calling the <code>implies</code> method with the FilePermission: - * - * <pre> - * "/tmp/scratch/foo", "read,write", - * </pre> - * - * then the <code>implies</code> function must - * take into account both the "/tmp/-" and "/tmp/scratch/foo" - * permissions, so the effective permission is "read,write", - * and <code>implies</code> returns true. The "implies" semantics for - * FilePermissions are handled properly by the PermissionCollection object - * returned by this <code>newPermissionCollection</code> method. - * - * @return a new PermissionCollection object suitable for storing - * FilePermissions. - */ - - public PermissionCollection newPermissionCollection() { - return new FilePermissionCollection(); - } - - /** - * WriteObject is called to save the state of the FilePermission - * to a stream. The actions are serialized, and the superclass - * takes care of the name. - */ - private void writeObject(ObjectOutputStream s) - throws IOException - { - // Write out the actions. The superclass takes care of the name - // call getActions to make sure actions field is initialized - if (actions == null) - getActions(); - s.defaultWriteObject(); - } - - /** - * readObject is called to restore the state of the FilePermission from - * a stream. - */ - private void readObject(ObjectInputStream s) - throws IOException, ClassNotFoundException - { - // Read in the actions, then restore everything else by calling init. - s.defaultReadObject(); - init(getMask(actions)); - } -} - -/** - * A FilePermissionCollection stores a set of FilePermission permissions. - * FilePermission objects - * must be stored in a manner that allows them to be inserted in any - * order, but enable the implies function to evaluate the implies - * method. - * For example, if you have two FilePermissions: - * <OL> - * <LI> "/tmp/-", "read" - * <LI> "/tmp/scratch/foo", "write" - * </OL> - * And you are calling the implies function with the FilePermission: - * "/tmp/scratch/foo", "read,write", then the implies function must - * take into account both the /tmp/- and /tmp/scratch/foo - * permissions, so the effective permission is "read,write". - * - * @see java.security.Permission - * @see java.security.Permissions - * @see java.security.PermissionCollection - * - * - * @author Marianne Mueller - * @author Roland Schemers - * - * @serial include - * - */ - -final class FilePermissionCollection extends PermissionCollection -implements Serializable { - - // Not serialized; see serialization section at end of class - private transient List perms; - - /** - * Create an empty FilePermissions object. - * - */ - - public FilePermissionCollection() { - perms = new ArrayList(); - } - - /** - * Adds a permission to the FilePermissions. The key for the hash is - * permission.path. - * - * @param permission the Permission object to add. - * - * @exception IllegalArgumentException - if the permission is not a - * FilePermission - * - * @exception SecurityException - if this FilePermissionCollection object - * has been marked readonly - */ - - public void add(Permission permission) - { - if (! (permission instanceof FilePermission)) - throw new IllegalArgumentException("invalid permission: "+ - permission); - if (isReadOnly()) - throw new SecurityException( - "attempt to add a Permission to a readonly PermissionCollection"); - - synchronized (this) { - perms.add(permission); - } - } - - /** - * Check and see if this set of permissions implies the permissions - * expressed in "permission". - * - * @param p the Permission object to compare - * - * @return true if "permission" is a proper subset of a permission in - * the set, false if not. - */ - - public boolean implies(Permission permission) - { - if (! (permission instanceof FilePermission)) - return false; - - FilePermission fp = (FilePermission) permission; - - int desired = fp.getMask(); - int effective = 0; - int needed = desired; - - synchronized (this) { - int len = perms.size(); - for (int i = 0; i < len; i++) { - FilePermission x = (FilePermission) perms.get(i); - if (((needed & x.getMask()) != 0) && x.impliesIgnoreMask(fp)) { - effective |= x.getMask(); - if ((effective & desired) == desired) - return true; - needed = (desired ^ effective); - } - } - } - return false; - } - - /** - * Returns an enumeration of all the FilePermission objects in the - * container. - * - * @return an enumeration of all the FilePermission objects. - */ - - public Enumeration elements() { - // Convert Iterator into Enumeration - synchronized (this) { - return Collections.enumeration(perms); - } - } - - private static final long serialVersionUID = 2202956749081564585L; - - // Need to maintain serialization interoperability with earlier releases, - // which had the serializable field: - // private Vector permissions; - - /** - * @serialField permissions java.util.Vector - * A list of FilePermission objects. - */ - private static final ObjectStreamField[] serialPersistentFields = { - new ObjectStreamField("permissions", Vector.class), - }; - - /** - * @serialData "permissions" field (a Vector containing the FilePermissions). - */ - /* - * Writes the contents of the perms field out as a Vector for - * serialization compatibility with earlier releases. - */ - private void writeObject(ObjectOutputStream out) throws IOException { - // Don't call out.defaultWriteObject() - - // Write out Vector - Vector permissions = new Vector(perms.size()); - synchronized (this) { - permissions.addAll(perms); - } - - ObjectOutputStream.PutField pfields = out.putFields(); - pfields.put("permissions", permissions); - out.writeFields(); - } - - /* - * Reads in a Vector of FilePermissions and saves them in the perms field. - */ - private void readObject(ObjectInputStream in) throws IOException, - ClassNotFoundException { - // Don't call defaultReadObject() - - // Read in serialized fields - ObjectInputStream.GetField gfields = in.readFields(); - - // Get the one we want - Vector permissions = (Vector)gfields.get("permissions", null); - perms = new ArrayList(permissions.size()); - perms.addAll(permissions); - } -} diff --git a/openjdk/java/lang/Shutdown.java b/openjdk/java/lang/Shutdown.java index c95d80ec..3e216c68 100644 --- a/openjdk/java/lang/Shutdown.java +++ b/openjdk/java/lang/Shutdown.java @@ -36,8 +36,8 @@ import cli.System.EventHandler; * @author Mark Reinhold * @since 1.3 */ -@ikvm.lang.Internal -public final class Shutdown { + +class Shutdown { /* Shutdown state */ private static final int RUNNING = 0; @@ -73,10 +73,6 @@ public final class Shutdown { } } - public static void init() { - // exists only to trigger class initializer - } - static { try { // AppDomain.ProcessExit has a LinkDemand, so we have to have a separate method @@ -85,8 +81,6 @@ public final class Shutdown { } catch (cli.System.Security.SecurityException _) { } - hooks[0] = sun.misc.SharedSecrets.getJavaIOAccess().consoleRestoreHook(); - hooks[2] = sun.misc.SharedSecrets.getJavaIODeleteOnExitAccess(); } private static void registerShutdownHook() diff --git a/openjdk/map.xml b/openjdk/map.xml index c1adbc6d..a2286137 100644 --- a/openjdk/map.xml +++ b/openjdk/map.xml @@ -1901,15 +1901,6 @@ </code> </replace-method-call> </method> - <method name="getJavaIODeleteOnExitAccess" sig="()Lsun.misc.JavaIODeleteOnExitAccess;"> - <replace-method-call class="sun.misc.Unsafe" name="ensureClassInitialized" sig="(Ljava.lang.Class;)V"> - <code> - <pop /> - <pop /> - <runclassinit class="java.io.File" /> - </code> - </replace-method-call> - </method> </class> <class name="java.util.concurrent.atomic.AtomicReference"> <method name="compareAndSet" sig="(Ljava.lang.Object;Ljava.lang.Object;)Z"> diff --git a/openjdk/response.txt b/openjdk/response.txt index f3565f99..9e185372 100644 --- a/openjdk/response.txt +++ b/openjdk/response.txt @@ -49,6 +49,7 @@ assembly.class sun/net/www/protocol/jar/*.class sun/nio/ch/*.class sun/nio/cs/*.class + sun/nio/fs/*.class sun/reflect/*.class ../classpath/gnu/java/net/protocol/ikvmres/*.class ../classpath/ikvm/extensions/*.class @@ -67,13 +68,13 @@ assembly.class @OPENJDK6@/build/linux-amd64/gensrc/sun/nio/ch/*.class @OPENJDK6@/build/linux-amd64/gensrc/sun/util/*.class @OPENJDK6@/build/linux-amd64/impsrc/com/sun/xml/internal/ws/developer/ServerSideException.class + @OPENJDK7@/jdk/src/share/classes/com/sun/nio/file/*.class @OPENJDK6@/jdk/src/share/classes/java/beans/ChangeListenerMap.class @OPENJDK6@/jdk/src/share/classes/java/beans/IndexedPropertyChangeEvent.class @OPENJDK6@/jdk/src/share/classes/java/beans/PropertyChangeEvent.class @OPENJDK6@/jdk/src/share/classes/java/beans/PropertyChangeListener.class @OPENJDK6@/jdk/src/share/classes/java/beans/PropertyChangeListenerProxy.class @OPENJDK6@/jdk/src/share/classes/java/beans/PropertyChangeSupport*.class - @OPENJDK6@/jdk/src/share/classes/java/io/*.class @OPENJDK7@/jdk/src/share/classes/java/io/*.class @OPENJDK7@/jdk/src/share/classes/java/lang/*.class @OPENJDK7@/jdk/src/share/classes/java/lang/annotation/*.class @@ -83,9 +84,13 @@ assembly.class @OPENJDK6@/jdk/src/share/classes/java/net/*.class @OPENJDK6@/jdk/src/share/classes/java/nio/*.class @OPENJDK6@/jdk/src/share/classes/java/nio/channels/*.class + @OPENJDK7@/jdk/src/share/classes/java/nio/channels/*.class @OPENJDK6@/jdk/src/share/classes/java/nio/channels/spi/*.class @OPENJDK6@/jdk/src/share/classes/java/nio/charset/*.class @OPENJDK6@/jdk/src/share/classes/java/nio/charset/spi/*.class + @OPENJDK7@/jdk/src/share/classes/java/nio/file/*.class + @OPENJDK7@/jdk/src/share/classes/java/nio/file/attribute/*.class + @OPENJDK7@/jdk/src/share/classes/java/nio/file/spi/*.class @OPENJDK6@/jdk/src/share/classes/java/security/*.class @OPENJDK6@/jdk/src/share/classes/java/security/cert/*.class @OPENJDK6@/jdk/src/share/classes/java/sql/Timestamp.class @@ -118,6 +123,7 @@ assembly.class @OPENJDK6@/jdk/src/share/classes/sun/nio/ch/*.class @OPENJDK6@/jdk/src/share/classes/sun/nio/cs/*.class @OPENJDK7@/jdk/src/share/classes/sun/nio/cs/*.class + @OPENJDK7@/jdk/src/share/classes/sun/nio/fs/*.class @OPENJDK6@/jdk/src/share/classes/sun/reflect/*.class @OPENJDK7@/jdk/src/share/classes/sun/reflect/*.class @OPENJDK6@/jdk/src/share/classes/sun/reflect/annotation/*.class @@ -154,7 +160,7 @@ assembly.class } { -out:IKVM.OpenJDK.Corba.dll - -baseaddress:0x569C0000 + -baseaddress:0x569F0000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/corba/* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/jndi/cosnaming/jndiprovider.properties @OPENJDK6@/build/linux-amd64/impsrc/com/sun/corba/se/impl/activation/*.class @@ -272,7 +278,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.API.dll - -baseaddress:0x57020000 + -baseaddress:0x57050000 @OPENJDK6@/build/linux-amd64/impsrc/javax/xml/*.class @OPENJDK6@/build/linux-amd64/impsrc/javax/xml/datatype/*.class @OPENJDK6@/build/linux-amd64/impsrc/javax/xml/namespace/*.class @@ -304,7 +310,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.XPath.dll - -baseaddress:0x570E0000 + -baseaddress:0x57110000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xalan/internal/res/* @OPENJDK6@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/extensions/*.class @OPENJDK6@/build/linux-amd64/impsrc/com/sun/org/apache/xalan/internal/res/*.class @@ -329,7 +335,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.Parse.dll - -baseaddress:0x57410000 + -baseaddress:0x57440000 -resource:com/sun/org/apache/xml/internal/serialize/HTMLEntities.res=@OPENJDK6@/build/linux-amd64/impsrc/com/sun/org/apache/xml/internal/serialize/HTMLEntities.res -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xerces/* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xml/internal/serializer/* @@ -388,7 +394,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.Transform.dll - -baseaddress:0x57AA0000 + -baseaddress:0x57AD0000 @OPENJDK6@/build/linux-amd64/impsrc/com/sun/java_cup/internal/runtime/*.class @OPENJDK6@/build/linux-amd64/impsrc/com/sun/org/apache/bcel/internal/*.class @OPENJDK6@/build/linux-amd64/impsrc/com/sun/org/apache/bcel/internal/classfile/*.class @@ -412,7 +418,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.Bind.dll - -baseaddress:0x57EC0000 + -baseaddress:0x57EF0000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/javax/xml/bind/* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/bind/* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/fastinfoset/* @@ -471,7 +477,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.WebServices.dll - -baseaddress:0x58220000 + -baseaddress:0x58250000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/messaging/* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/xml/internal/ws/* @OPENJDK6@/build/linux-amd64/impsrc/com/sun/xml/internal/messaging/saaj/*.class @@ -564,7 +570,7 @@ assembly.class } { -out:IKVM.OpenJDK.XML.Crypto.dll - -baseaddress:0x586A0000 + -baseaddress:0x586D0000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/org/apache/xml/internal/security/* @OPENJDK6@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/*.class @OPENJDK6@/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/*.class @@ -600,7 +606,7 @@ assembly.class } { -out:IKVM.OpenJDK.SwingAWT.dll - -baseaddress:0x587F0000 + -baseaddress:0x58820000 -remap:swingawt.xml -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/services/sun.java2d.* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/java/swing/* @@ -695,13 +701,13 @@ assembly.class } { -out:IKVM.OpenJDK.Charsets.dll - -baseaddress:0x59930000 + -baseaddress:0x59960000 @OPENJDK6@/jdk/src/share/classes/sun/io/*.class @OPENJDK6@/jdk/src/share/classes/sun/nio/cs/ext/*.class } { -out:IKVM.OpenJDK.Util.dll - -baseaddress:0x5A770000 + -baseaddress:0x5A7A0000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/java/util/jar/pack/intrinsic.properties java/util/zip/*.class @OPENJDK6@/build/linux-amd64/gensrc/sun/util/logging/resources/*.class @@ -719,7 +725,7 @@ assembly.class } { -out:IKVM.OpenJDK.Text.dll - -baseaddress:0x5AB90000 + -baseaddress:0x5ABC0000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/sun/text/* java/text/*.class @OPENJDK6@/jdk/src/share/classes/java/text/*.class @@ -730,7 +736,7 @@ assembly.class } { -out:IKVM.OpenJDK.Security.dll - -baseaddress:0x5AD70000 + -baseaddress:0x5ADA0000 sun/security/jgss/wrapper/*.class @OPENJDK6@/jdk/src/share/classes/com/sun/crypto/provider/*.class @OPENJDK6@/jdk/src/share/classes/com/sun/net/ssl/*.class @@ -795,7 +801,7 @@ assembly.class } { -out:IKVM.OpenJDK.Management.dll - -baseaddress:0x5B490000 + -baseaddress:0x5B4C0000 com/sun/management/*.class ConnectorBootstrap$DefaultValues.class ConnectorBootstrap.class @@ -839,7 +845,7 @@ assembly.class } { -out:IKVM.OpenJDK.Misc.dll - -baseaddress:0x5B880000 + -baseaddress:0x5B8B0000 @OPENJDK6@/build/linux-amd64/impsrc/javax/activity/*.class @OPENJDK6@/build/linux-amd64/impsrc/javax/annotation/*.class @OPENJDK6@/build/linux-amd64/impsrc/javax/annotation/processing/*.class @@ -929,7 +935,7 @@ assembly.class } { -out:IKVM.OpenJDK.Naming.dll - -baseaddress:0x5B940000 + -baseaddress:0x5B970000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/jndi/ldap/jndiprovider.properties sun/net/dns/*.class @OPENJDK6@/jdk/src/share/classes/com/sun/jndi/dns/*.class @@ -954,7 +960,7 @@ assembly.class } { -out:IKVM.OpenJDK.Jdbc.dll - -baseaddress:0x5BA90000 + -baseaddress:0x5BAC0000 -resource:META-INF/services/java.sql.Driver=resources/META-INF/services/java.sql.Driver -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/rowset/* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/javax/sql/* @@ -972,7 +978,7 @@ assembly.class } { -out:IKVM.OpenJDK.Remoting.dll - -baseaddress:0x5BBE0000 + -baseaddress:0x5BC10000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/sun/rmi/* @OPENJDK6@/build/linux-amd64/classes/com/sun/jndi/rmi/registry/*.class @OPENJDK6@/build/linux-amd64/classes/java/rmi/activation/*.class @@ -998,7 +1004,7 @@ assembly.class } { -out:IKVM.OpenJDK.Beans.dll - -baseaddress:0x5BD00000 + -baseaddress:0x5BD30000 @OPENJDK6@/build/linux-amd64/impsrc/com/sun/activation/registries/*.class @OPENJDK6@/build/linux-amd64/impsrc/javax/activation/*.class @OPENJDK6@/jdk/src/share/classes/com/sun/beans/*.class @@ -1010,7 +1016,7 @@ assembly.class } { -out:IKVM.OpenJDK.Media.dll - -baseaddress:0x5BDC0000 + -baseaddress:0x5BDF0000 -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/services/javax.print.* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/META-INF/services/javax.sound.* -recurse:@OPENJDK6@/build/linux-amd64/j2re-image/lib/resources.jar/com/sun/imageio/plugins/common/iio-plugin.properties diff --git a/openjdk/sun/misc/SharedSecrets.java b/openjdk/sun/misc/SharedSecrets.java index d327aa58..84e01391 100644 --- a/openjdk/sun/misc/SharedSecrets.java +++ b/openjdk/sun/misc/SharedSecrets.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,7 +27,6 @@ package sun.misc; import java.util.jar.JarFile; import java.io.Console; -import java.io.File; import java.security.ProtectionDomain; import java.security.AccessControlContext; @@ -46,7 +45,6 @@ public class SharedSecrets { private static JavaUtilJarAccess javaUtilJarAccess; private static JavaLangAccess javaLangAccess = LangHelper.getJavaLangAccess(); private static JavaIOAccess javaIOAccess; - private static JavaIODeleteOnExitAccess javaIODeleteOnExitAccess; private static JavaNetAccess javaNetAccess; private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess; private static JavaSecurityAccess javaSecurityAccess; @@ -87,17 +85,6 @@ public class SharedSecrets { return javaIOAccess; } - public static void setJavaIODeleteOnExitAccess(JavaIODeleteOnExitAccess jida) { - javaIODeleteOnExitAccess = jida; - } - - public static JavaIODeleteOnExitAccess getJavaIODeleteOnExitAccess() { - if (javaIODeleteOnExitAccess == null) { - unsafe.ensureClassInitialized(File.class); - } - return javaIODeleteOnExitAccess; - } - public static void setJavaSecurityProtectionDomainAccess (JavaSecurityProtectionDomainAccess jspda) { javaSecurityProtectionDomainAccess = jspda; @@ -105,10 +92,9 @@ public class SharedSecrets { public static JavaSecurityProtectionDomainAccess getJavaSecurityProtectionDomainAccess() { - if (javaSecurityProtectionDomainAccess == null) - unsafe.ensureClassInitialized(ProtectionDomain.class); - - return javaSecurityProtectionDomainAccess; + if (javaSecurityProtectionDomainAccess == null) + unsafe.ensureClassInitialized(ProtectionDomain.class); + return javaSecurityProtectionDomainAccess; } public static void setJavaSecurityAccess(JavaSecurityAccess jsa) { diff --git a/openjdk/sun/misc/Unsafe.java b/openjdk/sun/misc/Unsafe.java index 76a9f4f9..42fdcc6a 100644 --- a/openjdk/sun/misc/Unsafe.java +++ b/openjdk/sun/misc/Unsafe.java @@ -1,5 +1,5 @@ /* - Copyright (C) 2006, 2007, 2009 Jeroen Frijters + Copyright (C) 2006-2011 Jeroen Frijters This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -37,6 +37,7 @@ import java.util.ArrayList; public final class Unsafe { public static final int INVALID_FIELD_OFFSET = -1; + public static final int ARRAY_BYTE_BASE_OFFSET = 0; // NOTE sun.corba.Bridge actually access this field directly (via reflection), // so the name must match the JDK name. private static final Unsafe theUnsafe = new Unsafe(); @@ -890,6 +891,11 @@ public final class Unsafe putByte(destAddress++, getByte(srcAddress++)); } } + + public void copyMemory(Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes) + { + throw new ikvm.internal.NotYetImplementedError(); + } @SecurityPermissionAttribute.Annotation(value = SecurityAction.__Enum.LinkDemand, UnmanagedCode = true) @cli.System.Security.SecurityCriticalAttribute.Annotation |