8.3 (Release 3)

  • The CA certificates have been updated.

  • Fix JAM-7226: Methods java.lang.Thread.getStackTrace(), java.lang.Thread.getAllStackTraces() and java.lang.Thread.countStackFrames() may crash the VM with segmentation fault.

  • Fix JAM-6769: ensure changes to ReleaseParameters take effect at the correct time.

  • Fix JAM-7123: modify java.util.concurrent.locks.AbstractQueueSynchronizer for use in ScopedMemory.

  • Fix JAM-6628: ensure waitForNextRelease and waitForNextPeriod behave properly when no deadline miss handler is provided.

  • Fix JAM-7289, JAM-7297: rmid and rmiregistry do not start due to permission violations.

  • Fix JAM-7323: Builder error on name generation for two of its internal global constant types: strings and constant pool indices. With this fix the names generated for these constants are unique.

  • Fix JAM-6918: String.hashCode() produces incorrect result for strings that contain any Unicode character of value above '\u8000'.

  • Fix JAM-6991: Undefined behavior when computing the hash code of a string.

  • Fix JAM-6981: The values of monitor ceiling and thread priority displayed in the message of javax.realtime.CeilingViolationException were inadvertently swapped.

  • Fix JAM-6567: The multicore VM ignores ceiling policy violation instead of throwing javax.realtime.CeilingViolationException as defined in RTSJ 2.0.

  • Fix JAM-6436: Class loaders following the delegation model cannot access builtin resources ending in ".class".

  • Fix JAM-7021: Fix return value of 64-bit compare-and-swap implementation using gcc builtin on Linux for PPC7450 and PPCE300.

8.3 (Release 2)

  • The Builder now supports including resources from archives with arbitrary entry names (JAM-7134).

  • Fix JAM-6581, JAM-6582: Returned hostname of the network device (via InetAddress.getHostName()) on QNX may occasionally return a corrupted string. As consequence InetAddress.getCanonicalHostName() may occasionally return the textual representation of the IP address instead of providing the FQDN.

  • Fix JAM-6895: Built application may not start without <javaHome>/lib directory being installed on the target.

  • Fix JAM-6839: Added "cacio.eventpump.priority" option. This integer option specifies the priority of the CacioEventPump thread. If not set, the default java.lang.Thread.NORM_PRIORITY is used. Only relevant for Jamaica configurations with Caciocavallo GUI backends.

  • Fix JAM-6900: The Builder and the JAR accelerator might generate incorrect code when a synchronized block is surrounded by a try-catch block.

  • Fix JAM-6840: Fonts that are created with a font face or family name with a style that is not plain might not be found.

  • JAM-6709: 64-bit compare-and-swap functionality is now implemented in a reliable way on Windows CE.

  • Fix JAM-6734: core dumps are again available on VxWorks platforms.

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.