Migrating from earlier releases of the IBM SDK, Java Technology Edition

Considerations when migrating from earlier releases of the IBM® SDK, Java™ Technology Edition.

This release contains many new features and functions compared with earlier releases, which might require careful planning. For an overview, read the What's new section.

Important changes

If you are migrating from IBM SDK, Java Technology Edition Version 7 or Version 7 Release 1, the following changes apply:
  • For z/OS®, the JRIO component was deprecated in IBM SDK, Java Technology Edition Version 7 and is removed from this release. Instead, use the record I/O facilities that are provided in the JZOS component. For more information about JZOS, see: Java Batch Launcher and Toolkit for z/OS.
  • The system property jdk.map.althashing.threshold is no longer available with this release because the alternative hashing algorithm for hashed maps is no longer used. The alternative hashing algorithm was introduced in earlier releases of Java to improve the performance of java.util.HashMap under certain conditions. This implementation is improved in this release by using balanced trees rather than linked lists to store map entries. Classes WeakHashMap and Hashtable revert to the behavior before the alternative hashing algorithm. However, changes to the classes HashMap and HashSet can change the iteration order of items that are returned from hashed maps.
  • The Annotation Processing Tool is no longer supplied with this release. The tool was deprecated in Version 7, and is superseded by the Pluggable Annotation Processing API (JSR269). If you use annotation processing, you must migrate to this new facility, which was introduced in Version 6. For more information, see https://docs.oracle.com/javase/7/docs/technotes/guides/apt/index.html.
  • The IBM accessibility feature, JawBridge, is no longer supported in this release. If you want to use a screen reader, such as JAWS for Windows, configure your runtime environment to use the Oracle Java Access Bridge. For more information, see Enabling Java accessibility support.
  • The jdkconv tool is not included in this release.
  • The Nashorn Javascript Engine replaces the Rhino implementation in this release. The Rhino javascript.jar file is removed from the jre/lib/ext directory.
  • On AIX®, the Common Desktop Environment (CDE) color palette now supports high color settings. As a result, the default SystemColor settings for the Abstract Windows Toolkit (AWT) are now the same as Motif Toolkit on earlier releases. To revert to the earlier AWT color palette settings, set the ibm.awt.mediumColor system property to true. For more information, see -Dibm.awt.mediumColor option in Miscellaneous system property command-line options.
  • The system property com.ibm.IgnoreMalformedInput is removed in this release because it is applicable only to IO converters, which are no longer available in Java SE 8.
  • The system property ibm.stream.nio is removed in this release. The function of this property was to enable the use of NIO converters by default instead of IO converters. However, IO converters are no longer available in Java SE 8 and therefore the property is redundant.
  • From this release, the ORB automatically manages the number of concurrent connections to the server endpoint. This change in behavior can cause some issues, which are detailed in Autonomic connection management issues.
  • AIX, Linux®, and z/OS: The ALT-key no longer highlights the first menu in the active window of the user interface unless your application uses a Windows Look and Feel (com.sun.java.swing.plaf.windows.WindowsLookAndFeel).
  • The character set name IBM1047_LF is changed to x-IBM1047_LF.
  • Start of changes for service refresh 5From service refresh 5 on z/OS, there is a new minimum hardware requirement of IBM System z9® or newer. The older z800 and z900 systems are no longer supported.End of changes for service refresh 5
  • Start of changes for service refresh 5Linux: To satisfy a dynamic linking dependency, the standard C++ library, libstdc++.so.6, must be installed.End of changes for service refresh 5
  • Start of changes for service refresh 5In order to support compact Strings (-XX:+CompactStrings), java.lang.String no longer contains an offset field, which is used to indicate the start of the String in the underlying char[] data. Performance might be affected when using the following methods in your code for values of beginIndex other than zero:
    • String.substring(int beginIndex)
    • String.substring(int beginIndex, int endIndex)

    In earlier releases, a new String is created but the underlying char[] is shared with the original String so that no char[] data is copied. If performance is significantly degraded because char[] data is now being copied, try re-implementing the code to avoid copying the String data.

    Note: Applications that are written to run on Java implementations that use the HotSpot VM are unaffected, because String data is copied, even when using a beginIndex of zero.
    End of changes for service refresh 5
  • Start of changes for service refresh 5In service refresh 5, the following changes apply to the IBM J9 virtual machine:
    • The default value for the -Xloaminimum option is changed from 0 to 0.01. This setting allocates a minimum tenure space of 1% to the large object area (LOA) instead of 0%.
    • Enhancements are made to the IBM Garbage Collector and Memory Pool MXBeans to provide more detailed information about Garbage collection activity and associated memory pools. If your monitoring application is written to expect only one heap memory pool, or relies on the memory pool name Java heap, you can revert to the earlier implementation by using the -XX:+HeapManagementMXBeanCompatibility option. For more information about this option and the new MemoryPool and GarbageCollector names that are provided, see -XX:[+|-]HeapManagementMXBeanCompatibility.
    • The OperatingSystemMXBean.getProcessCpuTime() method is changed to return values in nanoseconds instead of hundreds of nanoseconds. If your application uses this method, either modify the application or revert to the previous behavior by using the -Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns system property.
    • The Runtime Instrumentation facility, available in Power® 8, zEC12, and later processors is disabled by default. This facility can be enabled with the -XX:+RuntimeInstrumentation option.
    End of changes for service refresh 5
  • Start of changes for service refresh 5 fix pack 5The minimum supported maintenance level for AIX V6.1 is now TL9.End of changes for service refresh 5 fix pack 5
  • Start of changes for service refresh 5 fix pack 25The default size of a shared class cache is now 300 MB, with exceptions for persistent caches with less than 6 GB of free disk space, and non-persistent caches on Linux. For more information, see -Xshareclasses.End of changes for service refresh 5 fix pack 25
  • Start of changes for service refresh 5 fix pack 30Default shared classes cache directory permissions are stricter on operating systems other than Windows. For more information, see -Xshareclasses:cacheDirPerm.End of changes for service refresh 5 fix pack 30
  • Start of changes for service refresh 5 fix pack 35The default stack size for operating system threads on 64-bit z/OS is changed from 384 KB to the operating system minimum of 1 MB. For more information about this setting, see -Xmso.End of changes for service refresh 5 fix pack 35
  • Start of changes for service refresh 5 fix pack 40The JDWP implementation is replaced with the OpenJDK equivalent, so some of the command options are changed. For more information, see the command-line help:
    java -agentlib:jdwp=help
    End of changes for service refresh 5 fix pack 40
  • Start of changes for service refresh 5 fix pack 40Changes to the Attach API internal interfaces affect the SDK's internal class library and the tools.jar and healthcenter.jar files:
    • If an application uses a private copy of the tools.jar file from an earlier release, the application might be unable to use the attach API in this release because the Java classes do not match. Use the tools.jar file from this release instead.
    • Similarly, the healthcenter.jar file from this release is not compatible with earlier releases.
    End of changes for service refresh 5 fix pack 40
  • From fix pack 41, the appropriate heap size for an application is automatically determined and applied. For more information, see -XX:[+|-]UseGCStartupHints.
  • From fix pack 41, Transparent Huge Pages (THP) are enabled by default when you use the madvise (/sys/kernel/mm/transparent_hugepage/enabled) setting on Linux on x86 systems. For more information, see -XX:[+|-]TransparentHugePage.
  • Start of changes for service refresh 6 fix pack 10The -XX:[+|-]ExitOnOutOfMemoryError option is updated to exit only on VM OutOfMemoryErrors instead of both VM and Java thrown errors, to match the Hotspot option. For more information, see -XX:[+|-]ExitOnOutOfMemoryError.End of changes for service refresh 6 fix pack 10
  • Start of changes for service refresh 6 fix pack 10The IBM signal handling implementation is replaced in this release with the OpenJDK implementation. As a result, the -Dcom.ibm.signalhandling.ignoreLogoff system property command-line option is now ignored. For more information, see Miscellaneous system property command-line options.End of changes for service refresh 6 fix pack 10
  • Start of changes for service refresh 6 fix pack 25TLS server certificates that are anchored by Symantec root certificate authorities are now distrusted. For more information, see What's New: service refresh 6 fix pack 25.End of changes for service refresh 6 fix pack 25
  • Start of changes for service refresh 6 fix pack 30Security protocols TLS 1.0 and 1.1 are disabled by default. For more information, see What's New: service refresh 6 fix pack 30.End of changes for service refresh 6 fix pack 30
  • Start of changes for service refresh 7IBMJCEPlus is the default security provider. You can revert this update by changing the order of the providers in the jre/lib/security/java.security file in your SDK installation directory. For more information, see Enabling the IBMJCEPlus and IBMJCEPlusFIPS providers.End of changes for service refresh 7

Deprecations and removals

The following deprecation statements and removals apply to this release:
  • The IBM XML implementation is deprecated and will be replaced by the Oracle XML implementation in a future release.
  • The -Xgc:splitheap option is deprecated and will be removed from a future release of the Eclipse OpenJ9 VM.
  • The -Xfastresolve option is deprecated and will be removed from a future release of the Eclipse OpenJ9 VM.
  • The -Xlp option is deprecated and will be removed from a future release of the Eclipse OpenJ9 VM. Instead, use the -Xlp:objectheap option to allocate the Java object heap by using large page sizes and the -Xlp:codecache option to allocate the JIT code cache by using large page sizes.
  • Start of changes for service refresh 6 fix pack 20The com.ibm.lang.management.MemoryMXBean.getGCMasterThreadCpuUsed() and com.ibm.lang.management.MemoryMXBean.getGCSlaveThreadsCpuUsed() methods are deprecated and will be removed from a future release of the Eclipse OpenJ9 VM. Use the com.ibm.lang.management.MemoryMXBean.getGCMainThreadCpuUsed() and com.ibm.lang.management.MemoryMXBean.getGCWorkerThreadsCpuUsed() methods instead.End of changes for service refresh 6 fix pack 20
  • Start of changes for service refresh 6 fix pack 25The following JSSE cipher suites are removed:
    • SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
    • SSL_RSA_FIPS_WITH_DES_CBC_SHA
    End of changes for service refresh 6 fix pack 25
  • Start of changes for service refresh 6 fix pack 25The TLS renegotiation properties com.ibm.jsse2.renegotiate and com.ibm.jsse2.extended.renegotiation.indicator are replaced by new properties com.ibm.jsse2.allowUnsafeRenegotiation and com.ibm.jsse2.allowLegacyHelloMessages. Use of the earlier properties has no effect, and no warning message is produced. For more information about the new properties, see Transport Layer Security (TLS) Renegotiation Issue in the security guide.End of changes for service refresh 6 fix pack 25
  • Start of changes for service refresh 6 fix pack 35The default operating system stack size on AIX and Linux on 64-bit IBM Power Systems is increased from 256 KB to 512 KB.End of changes for service refresh 6 fix pack 35

Migrating from earlier releases

If you are migrating from a release before Version 7, read the topic entitled Migrating from earlier releases in the appropriate platform user guide for Version 7. These user guides can be found at the following page: IBM SDK, Java Technology Edition, Version 7.