2010/4/12 Ivan Maidanski <iv...@mail.ru>: > Hi! > > The proposed (attached) patch doesn't really contain bug fixes, it just > refines the reference VM classes (like making the classes/methods > package-private instead of public and prohibiting class instantiation). > > The ChangeLog entries: > > * vm/reference/gnu/classpath/VMStackWalker.java: Make the default > constructor private. > * vm/reference/gnu/classpath/VMSystemProperties.java: Likewise. > * vm/reference/gnu/java/lang/VMCPStringBuilder.java: Likewise. > * vm/reference/gnu/java/lang/VMInstrumentationImpl.java: Likewise. > * vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java: > Likewise. > * vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java: > Likewise. > * > vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java: > Likewise. > * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java: > Likewise. > *vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java: > Likewise. > * vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java: > Likewise. > * > vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java: > Likewise. > * vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java: > Likewise. > * vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java: > Likewise. > * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java: Likewise. > * vm/reference/gnu/java/nio/VMPipe.java: Likewise. > * vm/reference/gnu/java/nio/VMSelector.java: Likewise. > * vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java: > Likewise. > * vm/reference/java/io/VMFile.java: Likewise. > * vm/reference/java/io/VMObjectInputStream.java: Likewise. > * vm/reference/java/io/VMObjectStreamClass.java: Likewise. > * vm/reference/java/lang/VMClassLoader.java: Likewise. > * vm/reference/java/lang/VMDouble.java: Likewise. > * vm/reference/java/lang/VMFloat.java: Likewise. > * vm/reference/java/lang/VMMath.java: Likewise. > * vm/reference/java/lang/VMObject.java: Likewise. > * vm/reference/java/lang/VMString.java: Likewise. > * vm/reference/java/lang/VMSystem.java: Likewise. > * vm/reference/java/lang/management/VMManagementFactory.java: > Likewise. > * vm/reference/java/lang/reflect/VMArray.java: Likewise. > * vm/reference/java/lang/reflect/VMProxy.java: Likewise. > * vm/reference/java/net/VMInetAddress.java: Likewise. > * vm/reference/java/net/VMURLConnection.java: Likewise. > * vm/reference/java/nio/VMDirectByteBuffer.java: Likewise. > * vm/reference/java/security/VMSecureRandom.java: Likewise. > * vm/reference/java/util/VMTimeZone.java: Likewise. > * vm/reference/gnu/classpath/VMSystemProperties.java: Make the class > final. > * vm/reference/java/lang/VMMath.java: Likewise. > * vm/reference/java/lang/reflect/VMArray.java: Likewise. > * vm/reference/sun/misc/Unsafe.java: Likewise. > * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java: Don't > make the class public. > * vm/reference/gnu/java/nio/VMSelector.java: Likewise. > * vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java > (SPinner): Remove unnecessary "final" for the constructor argument; > remove "private" for stop() (to be directly accessible from the outer > class). > * vm/reference/java/security/VMSecureRandom.java: Likewise. > * vm/reference/java/io/VMFile.java (setReadOnly, list, canRead, > canExecute): Refine the documentation comment. > * vm/reference/java/io/VMFile.java (getTotalSpace, getFreeSpace, > getUsableSpace, setReadable, setWritable, setExecutable, > toCanonicalForm): Remove "public" access modifier. > * vm/reference/java/lang/VMCompiler.java (compileClass, > compileClasses, command, enable, disable): Likewise. > * vm/reference/java/lang/VMDouble.java (doubleToRawLongBits, > longBitsToDouble, toString, parseDouble): Likewise. > * vm/reference/java/lang/VMMath.java (sin, cos, tan, asin, acos, atan, > atan2, exp, log, sqrt, pow, IEEEremainder, ceil, floor, rint, cbrt, > cosh, expm1, hypot, log10, log1p, sinh, tanh): Likewise. > * vm/reference/java/lang/VMSystem.java (currentTimeMillis, nanoTime): > Likewise. > * vm/reference/java/net/VMInetAddress.java (getLocalHostname, > lookupInaddrAny, getHostByAddr, getHostByName, aton): Likewise. > * vm/reference/java/net/VMURLConnection.java (LENGTH): Likewise. > * vm/reference/java/io/VMFile.java (canWrite, canRead, canExecute): > Remove "synchronized" access modifier. > * vm/reference/java/lang/VMDouble.java (initIDs): Change "public" > access modifier to "private". > * vm/reference/java/lang/VMSystem.java (mapLibraryName): Remove the > commented out function (since exists in VMRuntime). > * vm/reference/java/net/VMInetAddress.java: Remove > "implements Serializable". > * vm/reference/sun/misc/Unsafe.java (unsafe): Make final. > > Bye. >
Most of these look ok in theory. I think the final should stay in VMSecureRandom though. What testing have you done and with which VMs? I'm wary about changing the VM interface just for such minor fixes. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8