8.3 (Release 1)

  • Fix JAM-6735: java.util.logging.FileHandler.isSetUID() is now implemented.

  • Fix JAM-6690: The resource lib/security/cacerts is now automatically included in built applications if required.

8.3 (beta)

  • Fixed a potential deadlock when two threads 'simultaneously' load a secure random provider class (JAM-6365).

  • Prevent the possibility to segfault executables which support JVMTI, such as jamaicavmdi, by requesting held monitors (JAM-6212)

  • Elliptic curve cryptography library can be built independently of JamaicaVM - only relevant for configurations including sunEC (JAM-6175, JAM-5822).

  • Fix JAM-5998: The Accelerator no longer throws an error when the -useProfile command line option is used.

  • Fix JAM-6112: The resource com/sun/corba/se/impl/logging/LogStrings.properties is now automatically included in built applications if required.

  • Fixed segfault triggered by calling methods such as Popup.show() or JpopupMenu.setVisible() under xwindow environments (JAM-6077).

  • Fix JAM-5910: Flow of the time in RuntimeMXBean.getUptime on Windows is now same as in system.

  • Fix JAM-4060: The rmid tool no longer spawns a separate process and can now be terminated as expected.

  • Fix JAM-6356: Jamaica builder on Windows now supports directory junctions.

  • Fix JAM-6629: On VxWorks dosFs file system Jamaica VM now can canonicalize paths of non-existent files.

  • Fix JAM-5944: Accelerator is too optimistic in method resolution. In some cases incompatible class changes were not perceived by accelerated code.

  • Fix JAM-6275: PriorityCeilingEmulation incorrectly throws an IllegalMonitorStateException instead of a CeilingViolationException.

  • Fix JAM-6312: Missing implementation of the method getSingleton() in CeilingViolationException.

  • Fix JAM-6616: Calling the RTSJ method setMonitorControlPolicy(Object, MonitorControlPolicy) on MonitorControl now requires that the caller holds a lock on Object as per specification.

  • Fix JAM-6627: Arguments to RTSJ asynchronous event handlers may not be on the heap, when nonheap mode is used.

  • Fix JAM-6626: WaitFreeReadQueue no longer allows a size of zero or sending a null value for RTSJ conformance.

  • Fix JAM-6525: Pending count is decremented before calling an RTSJ asynchronous event handler not after its completion.

  • Fix JAM-6484: Thread groups can now be used with scoped memory.

  • Fix JAM-5582: RTSJ affinity method getPredefinedAffinityCount is now called getPredefinedAffinitiesCount to comply with the specification.

  • RTSJ 2 AsyncLongEvent and AsyncObjectEvent along with their corresponding handler classes have been implemented.

  • The Instrumentation API now throws an UnsupportedOperationException only when created objects are actually used (JAM-6565).

  • Fix JAM-6584: Prevent the builder option -XnumMonitorsFromEnv from setting -XnumJniAttachableThreads. This option now properly makes the binary read the -XnumMonitors setting from the specified environment variable.

  • Fix JAM-5762: unexpected behaviour when too much data is collected with JamaicaTrace. Now OutOfMemory and similar errors get handled with an apropriate message.

  • The Freetype library bundled with Jamaica was updated to version 2.10.1

  • Fix JAM-6295: Invalid URIs may be reported for classpath entries built into an application.

  • Fix JAM-6536 and JAM-6574: Incremental build might fail when reusing compiled code that contains lambda expressions and method references.

  • Shared objects files extracted from accelerated JAR files are now deleted if an exception occurs during extraction, such that corrupted files will not be loaded (JAM-6579).

  • The option -Xcheck:jni (for the VM command) and -Xcheck=jni (for the Builder) now cause VM execution to continue when encountering illegal JNI calls made with exceptions pending. The VM still prints a current Java stack trace as well as the stack trace of the exception already pending.

  • Static throwables are now used for all RTSJ code for all specified exceptional and error conditions (JAM-6428).

  • As per the RTSJ 2 specification, affinity is now set via SchedulingParameters (JAM-5438).

  • RTSJ 2 PinnableMemory is now available (JAM-4697).

  • Fix JAM-6440: Throwable is again scope safe.

  • Fix JAM-6485: getAndIncrementPendingFireCount on AsyncEventHandler now works correctly.

  • Fix JAM-6341: cost and overrun handlers are now released once their associated handlers are no longer attached to an AsyncEventHandler.

  • The Accelerator now gives a meaningful error message when detecting that the input jar file contains invalid bytecode, such as a class with a duplicate field or method (JAM-6449).

  • Fix JAM-2215: GraphicsEnvironment.getAllFonts() returns an incomplete list with many duplicates.

  • Fix JAM-6458: Builder might fail with ClassFormatException when trying to compile interface calls to overridden non public instance methods from java.lang.Object.

  • Fix JAM-6457: Concurrent class loading from accelerated modules can lead to deadlocks.

  • The Builder and Accelerator now support all charsets defined in charsets.jar (JAM-5888).

  • Loading a class with the same name and protection domain code source as an accelerated class no longer causes inconsistent dynamic linking of machine code (JAM-5708).

  • When the property jamaica.jaraccelerator.load is set to true, attempting to load a class with a class loader that uses a non-standard syntax for the "jar:" code source URL protocol scheme (such as in the Spring framework) no longer causes internal exceptions that slow down class loading and clutter debug output (JAM-6398).

  • Fix JAM-5024: The functions javax.realtime.Clock.getTime() and javax.realtime.Clock.getResolution() support adequate values for high resolution time measurement on Windows CE.

  • When building an application, fields and methods referenced by method handle constants in class files are now recognized and included automatically by the smart linker (JAM-6158).

  • When an application is built with -smart=false, all inner classes are now always included in addition to all fields and methods of any included class. This avoids spurious NoClassDefFoundErrors due to missed internal dependencies (JAM-5986).

  • Fix JAM-6397: The JAR Accelerator now preserves the zip properties of jar file entries when creating the accelerated jar file. In particular, nested jar files that have been stored in uncompressed form remain so.

  • Jamaica is now based on standard classes of OpenJDK version jdk8u202-b08.

  • Fix JAM-5843: Bytecode with manifestly inconsistent internal method references (regarding class/interface and static/virtual state) can now be compiled into a built application or accelerated jar file. A warning is given at compile time, and the resulting application throws an IncompatibleClassChangeError at runtime, only when an inconsistent method reference is resolved.

  • The Freetype library bundled with Jamaica was updated to version 2.10.0.

  • Add interrupt event to the Event Recorder and JamaicaTrace, it indicates a Java thread being interrupted by another one using Thread.interrupt(). Opening new trace files with an older version of JamaicaTrace diplays an error on the command line but works fine (JAM-2728).

  • Fix JAM-6291: The VM incorrectly throws IllegalMonitorStateException when the number of ceiling monitors held per thread is exceeded. The correct is to throw an InternalError in this case.

  • JAXB is now supported (JAM-5733).

  • Fix JAM-6290: The Builder and JAR Accelerator generate incorrect code for catching a CeilingViolationException.

  • Opening a DatagramChannel with IPv6 is now supported under Windows CE (JAM-6214).

  • Fix JAM-6172: If there is an incorrect argument (for example an incorrect path to the executable file) in the parameters of a java.lang.ProcessBuilder constructor, the VM may crash under Windows CE during error handling.

  • Fix JAM-6275: PriorityCeilingEmulation incorrectly throws an IllegalMonitorStateException instead of a CeilingViolationException.

  • Fix JAM-6312: Missing implementation of the method getSingleton() in CeilingViolationException.

  • Fix JAM-6253: Getting hostname of the network device was not thread-safe while using IPv4 on QNX. Affected functions could not run concurrently (InetAddress.getHostName, InetAddress.getCanonicalHostName and gethostbyaddr).

  • Fix JAM-6259: In a built application, when a security manager is present, calls to method java.lang.invoke.MethodHandleProxies.asInterfaceInstance or any Method of class java.lang.invoke.MethodHandles.Lookup may fail due to a missing internal resource.

  • Fix JAM-6148, JAM-6031: Append functionality implemented for Windows CE. The append option is now supported for FileChannel.open() and Files.write().

  • Fix JAM-6183: Incorrect method called by compiled code when using -ssa=false.

  • Fix JAM-6124: Segmentation fault triggered by JNI AttachCurrentThread as well as by AttachCurrentThreadAsDaemon functions when JAMAICAVM_NUMTHREADS=JAMAICAVM_MAXNUMTHREADS.

  • Fix JAM-6137: The time benefit brought by the incremental compilation became smaller than in previous versions. In some platforms building an application for the second time might take as long as the first.

  • Fix JAM-6079: The Builder does not automatically add the resource "lib/ hijrah-config-umalqura.properties" when needed. Therefore a built application might fail with a FileNotFoundException when trying to access this resource.

  • Fix JAM-6081: A built application might not recognize that a certificate is blacklisted.

  • Fix JAM-6026: Querying the CPU time used by the process on which JamaicaVM is running might yield a negative value due to an overflow on 32-bit Linux platforms.

  • JVMTI: clarified that the timeout parameter is useful only for the server mode, see 'jamaicavm -agentlib:jdwp=help' for more details.

  • Fix JAM-2000: java.io.File on Windows now supports extended-length paths.