# NeXtMidas 3.8.4 Release Notes

Changes between release 3.8.0 and 3.8.1 are listed in blue.

Changes between release 3.8.1 and 3.8.2 are listed in green.

Changes between release 3.8.2 and 3.8.3 are listed in teal.

Changes between release 3.8.3 and 3.8.4 are listed in purple.

(This release requires Java 7 (or later) to build and run.)

NeXtMidas SYS Option Tree Tested on: (All tests with Java 7 and Java 8, unless otherwise noted (1))
OS Version | Platform | Native Compiler(2) (SYS Option tree) | Web Browser (WebStart)
--- | --- | --- | ---
RHEL 5.11 | Linux (x86_64) | gcc 4.1.2 / Intel 11.1 / Intel 12.1 / Intel 13.1 | Firefox 38.5.0
RHEL/CentOS 6.9 | Linux (x86_64) | gcc 4.4.7 / Intel 13.1 / Intel 14.0/ Intel 15.0 / Intel 16.0/ Intel 17.0 | Firefox 52.4
RHEL/CentOS 7.5 | Linux (x86_64) | gcc 4.8.3 / Intel 15.0 / Intel 16.0 / Intel 17.0 / Intel 19.0 | Firefox 60.6.1
Windows 7 SP1 | Windows (x86_64) | pre-compiled DLLs (WinGW 5.3.0/gcc 4.9) | IE 11.0.9 / Firefox 58.0
Windows 10 Pro | Windows (x86_64) | pre-compiled DLLs (WinGW 5.3.0/gcc 4.9) | IE 11.0.45 / Firefox 58.0
XBC And NeXtOpt Tested on: (XBC - Allows running of X-Midas Fortran/C++ primitives in NeXtMidas) (NeXtOpt - NeXtMidas as an option tree for X-Midas) (All tests with Java 7, and Java 8, unless otherwise noted (1))
OS Version | Platform | X-Midas Mode | C/C++ Compiler(2) | Fortran Compiler
RHEL 5.11 | Linux (x86_64) | NeXtOpt (X-Midas 4.10.5) | Intel 11.1 | Intel 11.1
NeXtOpt (X-Midas 4.12.3) | gcc 4.1.2 / Intel 12.1 | Intel 12.1
NeXtOpt (X-Midas 4.14.0) | Intel 13.1 | Intel 13.1
XBC ("64Bit") | gcc 4.1.2 / Intel 11.1 / Intel 12.1 / Intel 13.1 | Intel 11.1 / Intel 12.1 /Intel 13.1
RHEL/CentOS 6.9 | Linux (x86_64) | NeXtOpt (X-Midas 4.12.3) | Intel 13.1 / Intel 14.0 / Intel 15.0 | Intel 13.1 / Intel 14.0 / Intel 15.0
NeXtOpt (X-Midas 4.14.0) | Intel 14.0 / Intel 15.0 / Intel 16.0 | Intel 14.0 / Intel 15.0 / Intel 16.0
NeXtOpt (X-Midas 4.15.0) | Intel 16.0 / Intel 17.0 | Intel 16.0 / Intel 17.0
XBC ("64Bit") | gcc 4.4.7 / Intel 13.1 / Intel 14.0 / Intel 15.0 / Intel 16.0 / Intel 17.0 | Intel 13.1 / Intel 14.0 / Intel 15.0 / Intel 16.0 / Intel 17.0
RHEL/CentOS 7u5 | Linux (x86_64) | NeXtOpt (X-Midas 4.14.0) | Intel 15.0 /Intel 16.0 / Intel 17.0 | Intel 15.0 /Intel 16.0 / Intel 17.0
NeXtOpt (X-Midas 4.15.2) | Intel 15.0 /Intel 16.0 / Intel 17.0 | Intel 15.0 /Intel 16.0 / Intel 17.0
NeXtOpt (X-Midas 5.2.1) | Intel 19.0 | Intel 19.0
XBC ("64Bit") | gcc 4.8.5 / Intel 15.0 / Intel 16.0 / Intel 17.0 / Intel 19.0 | Intel 15.0 / Intel 16.0 / Intel 17.0 / Intel 19.0
(1) Platforms were tested on the latest versions of JDK 7 (7.0_80), JDK 8 (8.0_212). See Known Third-Party Bugs to see why JDK 8u20 to 8u31 are not supported. The 64-bit version of Java should be used when running on a 64-bit system, the 32-bit JDK/JRE may not run properly on 64-bit systems without requiring additional compatibility libraries. All tests use the Java VM from Oracle (see http://java.oracle.com/). (2) $NM_CC and $NM_CXX was set to point to the Intel C/C++ compiler (icc and icpc), where applicable.

#### Online Documentation

- `Via Web Browser: $NMROOT/htdocs/help/index.html
  (Now includes the NeXtMidas Training Class and an updated version of the NeXtMidas User's Guide.)`

#### Java 7 Migration

- Java 6 was EOL on February 2013. Oracle's Premier support for Java 6 ends in December 2015 (i.e. no more security patches). As such, Java 6 is no longer supported in NeXtMidas 3.7.0 and later.
  Users who wish to run on Java 6 are advised to use the NeXtMidas 3.6.x version.
  Since Java 7 and later performs additional error-checking during compilation, some users may see "new" warning messages printed when their option trees are compiled. These warnings are normal and fixing them can usually be done in a way that does not impact portability of the option tree (i.e. the warnings can be addressed without losing the ability to run under older NeXtMidas/Java versions).

#### What Might Break (Changes in Behavior)

BUILD | - | The default build.props, has merged all areas from build.codeareas.other back into build.codeareas.lib (they were separated in NeXtMidas 3.1.2 because SYS has lots of files to compile). SYS still continues to keep them separated. This is not expected to impact any users.
Data | - | In 3.7.1, Data(String) was fixed to only allocate the space actually needed for type 'A' data. The previous over-allocation of space may have masked Inadvertent buffer overruns. See DR# 859131-1 for additional details.
DataFile / TimeLine | - | In 3.7.3, as part of DR #823964-3, a similar fix was added for Blue microsecond timeline files, as for DataFile's containing Blue TC Keywords. If the Blue microsecond file does not have a timeline entry for the first element, but there is a valid TimeCode, then a timeline entry for the first element is created based on the timecode. A warning is issued, unless timeline entry error/warning messages are suppress via CoreIO.IOOptions.SuppressInvalidTimeLineEntryErrors.
DatagramData | - | In 3.7.2, DatagramData was added to the new NET Option Tree. The version in SYS is deprecated. All updates will be placed in the NET version. See DR# 822477-3 for additional details.
DataReader | - | In 3.7.2, nxm.audio.lib.DataReader was updated to depend on the new NET Option Tree copy of DatagramData. The AUDIO Option Tree now has a dependency on the NET Option Tree See DR# 822477-3 for additional details.
dgnetsend | - | In 3.7.2, dgnetsend was added to the new NET Option Tree. The version in SYS is deprecated. All updates will be placed in the NET version. See DR# 822477-3 for additional details.
GCONTROL | - | Since 3.7.1 during the time they are selected, items in a CHOICE will change to the foreground highlight color (even if the user has specified a specific color for that item). Prior to the fix for DR #853082-1 selected items in a CHOICE would not show as selected if any items in the CHOICE where previously set to color (whether by disabling an item or setting its color directly).
HttpResource | - | In 3.7.2, Web Start caching was disabled to work around a caching error where cached HTTP Partial Content (206) was returned when full content was requested. This can result in longer load times. See DR# 822867-3 for additional details.
| - | In 3.7.3, additional error checking was added for HTTP Partial Content responses. A MidasException will now be thrown if the start of the 'Content-Range' does not match the requested range.
IF/ASSERT | - | File equivalent checks via FEQ defaults to including size/length of data in comparison for IF and ASSERT commands. To revert to legacy behavior, use the "/L" modifier to limit length of binary or data comparison to size of shorter of the two input files to be explicit that a "truncated" data comparison is desired. See IF explain file and/or DR 840802-1 for details.
KeyObject | - | In 3.7.1, a new @KeyObjectNames annotation was introduced which defines an array of names by which a field or method may be referenced from the macro language. Some methods have had this annotation applied to clear up which method is called for a given abbreviation. See DR 852053-1 for more details.
NM MAKE CLEAN | - | Running 'nm make clean <opt>' from OS command prompt, no longer removes *.jar and *.zip files under the normal areas of an option tree (e.g. nmmake.clean.codeareas in build.props). It will continue to remove *.jar and *.zip from directories specified in nmmake.clean.locations (e.g. ${nmroot}/tools ${nmroot}/jars). This is not expected to impact any users.
PLOT/MPlot/Layer | - | NOAVERAGE was fixed to use the actual min/max over [AUTOL] frames. There was still a small exponential component to the previous calculation.
| - | Plot resizing maps was fixed so that the entire map (or zoomed in area of the map) continues to be displayed when the plot is resized. Previously resizing was based strictly on the x-axis, so resizing could cause the upper and lower portions of the map to be beyond the display area with no scroll bar for accessing those areas of the plot.
| - | Since 3.7.2, the default GRAPHICS mode has been switched to "SwingDB" from "SwingDB|RealTime". SwingDB is the graphics mode used by the majority of NeXtMidas users and is consistent with the Swing thread-safety conventions. The change to "SwingDB" also fixes a number of bugs related to refresh issues in the PLOT (see 851534-1, et. al). The "RealTime" GRAPHICS option indicates that PLOT should bypass the normal Swing thread-safety mechanisms and attempt to update the underlying graphics elements without waiting for the next graphics refresh; this option was implemented more than a decade ago when the graphics infrastructure had trouble keeping up with some of the real-time data streams in NeXtMidas. The modern graphics infrastructure does a much better job of keeping up with the real-time data streams in NeXtMidas rendering the old "RealTime" option obsolete. Since the "RealTime" option is fundamentally prone to refresh issues (due to the way it bypasses the Swing thread-safety mechanisms) its use is now deprecated.
| - | Since 3.8.1, the default GRAPHICS mode has been switched to full Swing (i.e. Swing|SwingDB|SwingWidgets|SwingPopups). The previous default Graphics mode resulted in interweaving AWT and Swing graphics and could cause a severe graphics sluggishness, especially with CentOS 7 over the PTC X11 Server graphics. Numerous smaller graphical issues needed to be addressed in order to fully support full Swing mode, which involved the handling of popups over MidasDisplays, proper handling of the JLayeredPanes needed to properly display Swing popups over Swing plots, and proper attaching of child macros. Warnings have also now been added when a user overwrites the default plot option of O_DBUFFER (image double buffering), as this can also cause graphics to lock-up, especially over the PTC X/Server. Also fixed, were the specifically CentOS 7 issues of the DRAGBOX not rendering while being drawn and of the plot axis readout text being cut off on plots without a panel.
SINKDG | - | In 3.7.2, sinkdg was added to the new NET Option Tree. The version in SYS is deprecated. All updates will be placed in the NET version. See DR# 822477-3 for additional details.
SOURCEDG | - | In 3.7.2, sourcedg was added to the new NET Option Tree. The version in SYS is deprecated. All updates will be placed in the NET version. See DR# 822477-3 for additional details.
| TABLE | - | In 3.8.1, the table parsing has been fixed to be consistent in the way it handles whitespace. When there are tabs or spaces after equals signs or before commas, those are now trimmed out. To revert to legacy behavior, the table flag "DisableConsistentHandlingOfWhiteSpace" needs to be set. See DR-825104-3 for more details.
XGEOPLOT/LayerT5 | - | Setting Positions (pos or posp) using a table with only one or two of the LAT=, LON=, ALT= entries (i.e. {LON=2.0}) now only updates the value associated with the entry(ies) specified. Previously the unspecified entries were defaulted to 0, rather than defaulted to their current value. See DR 853357-1 for details.
| - | Points within a LayerT5 must be homogeneous (i.e. have the same components). Prior to 3.7.0, the LayerT5.setPoint method did not validate points set against the existing points for consistency. Since the displaying of points in LayerT5 is dependent on all points having the same components, the old behavior could cause both certain components to not be displayed while other components that were not intended were displayed with default values. Merging of points is allowed, but as of 3.7.0 adding or setting a point that inconsistent with existing points will cause an Exception. Note: If no points exists in the LayerT5, then the first point added will determine which components are active.
Web Start | - | In 3.7.2, Web Start caching was disabled to work around a caching error where cached HTTP Partial Content (206) was returned when full content was requested. See DR# 822867-3 for additional details.
Option Tree removed | - | Deprecated option tree that has been removed: `nxm.sys.mmpostlegacy -> removed in NeXtMidas 3.7.2`
Classes removed | - | Deprecated classes that have been removed: `nxm.sys.inc.ExportsImage -> not used nxm.sys.lib.DataPipe -> not used nxm.sys.libg.ExportImage.DelayedMessageHandler -> not used nxm.sys.libg.MTextArea -> use MJTextArea instead nxm.sys.libg.MTextField -> use MJTextField instead`
Methods/Fields removed | - | Deprecated methods/fields that have been removed/changed: `nxm.sys.intr.Build.AREA_LIST -> not used nxm.sys.lib.CoreIO.recursiveDelete(File) -> use nxm.sys.lib.FileUtil.recursiveDelete(File) instead nxm.sys.lib.Keywords.convertRep(byte, byte) -> use nxm.sys.lib.DataFile.convertHeaderRep(String) instead nxm.sys.lib.NeXtMidas.setWinID(String) and clearPanel() -> use runCommand(String, MidasDisplay) instead nxm.sys.lib.StringUtil.StringUtil() -> not used, meant to be private as all methods are static nxm.sys.libg.ExportImage.exportFile(..) -> use exportToFile(Component,String,String) instead nxm.sys.libg.ExportImage.exportToFile(ExportsImage,String,String) -> use exportToFile(Component,String,String) instead nxm.sys.libg.ExportImage.export(..) -> use exportToFile(Component,String,String) instead nxm.sys.libg.ExportImage.showOptionSet(...) -> not used nxm.sys.libg.ExportImage.showTextEntry(...) -> not used nxm.sys.libg.Layer2D.Layer2D(int, int) -> not used nxm.sys.libg.Layer2D.isUseLocalZMin() -> use getUseLocalZMin() instead nxm.sys.libg.Layer2D.isUseLocalZMax() -> use getUseLocalZMax() instead nxm.sys.libg.Layer2D.useLocalZMin(boolean) -> use setUseLocalZMin(boolean) instead nxm.sys.libg.Layer2D.useLocalZMax(boolean) -> use setUseLocalZMax(boolean) instead nxm.sys.libg.Layer2D.useLocalZMin() -> use setUseLocalZMin(true) instead nxm.sys.libg.Layer2D.useLocalZMax() -> use setUseLocalZMin(false) instead nxm.sys.prim.plot.setCompression(String) -> use setRMIFCompression (String rmifCmp) instead`
OptionTree.java | - | nxm.sys.lib.OptionTree - File[] getJarFiles(String opt) and hence String[] getJars(String opt) now includes jar files recursively in the jars area (e.g. it will follow symbolic links) of an option tree.
Table.java / Results.java | - | InternalUseOnly sub-class `Results.Function` moved to parent class as `Table.Function`. (Note this relates to the `nxm.sys.lib.Results` library that is used internally and does not affect the RESULTS command.)
Table.java / Results.java | - | Numerous methods in Table class now marked "final" to prevent incomplete overrides such as those that caused Bug 2929 (Bug 2929 was fixed in NeXtMidas 3.5.4).
Jar Files removed | - | The swing-layout-1.0.jar file was deprecated in NeXtMidas 3.3.0. It is no longer used by SYS and have been removed. Use standard Java 6 javax.swing.GroupLayout instead of org.jdesktop.layout.GroupLayout (they are the same, just in a different package). Anyone with option trees that uses this JAR file can copy it from the NeXtMidas 3.6.x or prior and include them with their own option tree.
FILE/FileResource | - | IOExceptions that occur during file write or read operations will now be propagated, instead of the old behavior of these methods just returning -1 for an unsuccessful write or read. The new environment variable FileIONoAbort can be set to revert to the old behavior. See the ENVIRONMENT explain file and/or 841173-1 for more details.
SHELLGUI | - | As of 3.7.1, attempting to attach multiple SHELLGUIs to a shell is not longer allowed and will give a popup error. This was never really supported and resulted the original SHELLGUI being in a bad state.

#### New Features Added

Bash Support | - | Support using NeXtMidas from bash shell (i.e.: source $NMROOT/os/unix/nmstart.sh)
GFC Support | - | As of 3.8.2, support for GFC compilers has been added
New Commands | - | CHECKAUTHORIZATION;SYS - Facilitates Attribute based Access Control
| - | SSLCONFIGURE;SYS - Sets up Java SSL Context for either 2-way (Mutual Authentication) or 1-way authentication. Generally a SSLUtilities properties file is required. The /INSECURE switch (added in 3.8.2) is not recommended, as it sets up an all trusting truststore. With the INSECURE option, a properties file is not needed and the user's key is either auto-discovered or directly provided.
| - | UPRIGHTSPECTRUM;DSP (Beta Version) - Uprights inverted data based either on the BLUE Keyword SNAP_SPECTRAL_SENSE, the Platinum Keyword DATA_INVERSION_FLAG or a /FORCEINVERSION switch. See explain file for more details.
| - | PRESCALER;SYS - This command is intended to be used in conjunction with PLOT to provide more accurate scaling of 1000 and 2000 files. It generates a scale table that can be either a RESULT value or EXTERNAL KEYWORD. This command should be used directly or indirectly via the new PLOT /PRESCALE<=...> with zero-padded PreD data or in other cases where the plot needs to base its scaling on a wider selection of data from the whole file. See prescaler.exp and plot.exp. (added in 3.8.4)
Macro/Shell Enhancements | - | PATH: Jar files from "jar" area (i.e. directory) of an option tree are now included recursively (which allows symbolic links) when the option tree is added to the PATH.
| - | OPTION,PATH - In 3.7.1, defined an auto-loading mechanism for finding option trees simply by their inclusion in the Java classpath. This makes use of the industry standard Java Service Provider Interface (SPI), but is not compatible with the current NeXtMidas (custom) build procedures; the changes proposed for DR 667842-19 will remove this limitation. This feature is also currently limited to option trees explicitly on the command-line classpath (-cp), due to issues with the OPTION command and underlying libraries. See DRs 855053-1, 855057-1, and 855059-1 for more details.
Libraries | - | Args - Since 3.7.1, added List type to replace the user casting an object to List.
| - | BaseFile - nxm.sys.lib.BaseFile implements java.io.Closeable interface, allowing the NeXtMidas file types to be used within the try-with-resources statement introduced in Java 7.
| - | DataFile - Since 3.7.1, full support was added for Type 6000 files. Previously Type 6000 subrecords where num_elts > 1 were written incorrectly. See DR 854385-1 for further details. In 3.7.2, support was added for reading and writing high precision BLUE Time Code (TC) Keywords. The reading and writing of BLUE TC keywords will normally be based on their existence, but also can be forced with file qualifier "USEBLUETCTIMELINE", by using the CONVERT PLAT2BLUE, or setting IOOptions.PreferBlueTCTimeLine . See DR # 862236-1 for more details.
| - | Feature - nxm.sys.lib.Feature.drawText(..) Implements DTAG that is dynamically centered in the visible part of the feature
| - | FileUtil - nxm.sys.lib.FileUtil has a new makeSymLink() method that allows the creation of symbolic links using Java 7 API for supported platforms (such as Linux, Solaris, and Windows). This utility method has a fallback to creating a directory junction point in Windows 7+ since standard users normally don't have required privileges.
| - | JarFile - nxm.sys.lib.JarFile.getDataTable(offset) now includes code signers of the jar file's in the "CODE_SIGNERS" entry.
| - | KeyObject - In 3.7.1, a new @KeyObjectNames annotation was introduced which defines an array of names by which a field or method may be referenced from the macro language. This annotation overrides all of the automatic name generation code in KeyObject. A field or method annotated with an empty array CANNOT be accessed from the macro language.
| - | Keywords - The default substitute for dots in keywords (dotted keywords are common in PLATINUM) files has been "->". In 3.8.4, new API Keywords.setDotSubstitute(String) was added to allow the user to specify a custom dot substitute, as the current substitute can be confused with a lambda expression.
| - | NeXtMidas - Since 3.7.1, nxm.sys.lib.NeXtMidas has a new addOptionTreeFromClasspath() method that allows the user to register an option tree and add it to the classpath. This method currently limited to option trees explicitly on the command-line classpath (-cp) due to issues with the OPTION command and underlying libraries. See DRs 855053-1, 855057-1, and 855059-1 for more details.
| - | PipeResource - Since 3.8.2, nxm.sys.lib.PipeResource has not been handling timelines correctly during Pipe Restarts. A fix has been added that can be enabled by setting the CoreIO.IOOptions.FixPipeRestartTimeLines. This fix is NOT currently enabled by default, to allow time for users to evaluate this fix.
| - | SSLUtilities - nxm.sys.lib.SSLUtilities has static methods for initializing the Java SSLContext to allow either 1-Way or 2-Way SSL. It also has static methods to facilitate attribute based login based on the JSON response from a REST service containing user attributes. See class documentation for more details. (made public in 3.7.3) + Secure Jarsigning - Since 3.8.1 - Secure jarsigning is now supported. To securely sign a jar, the NeXtMidas JVM will use the currently loaded certificate. To load the jarsigning certificate into the JVM, please reference sslconfigure.exp
| - | Table - nxm.sys.lib.Table has new fromOpalFile(..) methods to load Midas2K OPAL file into a Table. + Since 3.7.1, added List type to replace the user casting an object to List. (e.g. (List)tbl.getO("KEY") becomes tbl.getList("KEY"); ). + Since 3.7.3, added Table flag PERMIT_NULL which allows a true null value to be stored in compatible Table types. This is not intended for use from the macro language. (See the Table explain file and class documentation for more details.) + Since 3.8.0, added Table flag KEEP_JAVA_NUMERIC_TYPE which causes primitive numeric Table values to be stored as Java Numbers (i.e. in the matching wrapper class) and for Table values that are Java Numbers to be serialized with lower case types. Lower case numeric types are deserialized as Java Numbers by default. (See DR #872678-1 and class documentation for more details.) + Since 3.8.0, added Table flag SERIALIZE_WITH_ORIGINAL_FLAGS which causes the Tables to be serialized with the table's current flags (and does not add the DISABLE_ESCAPE_SEQUENCE flag). (See DR #872676-1 and class documentation for more details.)
| - | TarFile - nxm.sys.lib.TarFile has new methods to create Tar Files and utility methods to get/set Tar File data (ex: getPadding(), setTime1970(long val) and setModeString(String str))
Existing Commands | - | The list below contains NeXtMidas commands. Each command is listed with the new feature that has been added at the request of the user.
| - | CONVERT - New <Beta> Conversions: KWCONV Converts the incoming file's keywords to new keywords using the specified conversion table. PLAT2BLUE Converts the incoming file's Platinum keywords to the corresponding BLUE keywords (as defined by the JICD 4.2 ICD). See convert.exp or DR 850721-1 for details.
| - | HTTPSERV - The new /HTTPS switch creates encrypted HTTPS connection. The /ONEWAY switch can be added to the /HTTPS switch to enable only 1-way SSL (client key is not required). - since 3.8.2
| - | INCLUDE - Since 3.7.1, Using the INCLUDE <file>;<opt> will import a block of code from a test file into the current file from the specified option tree. The <area> of the option tree containing the file gets defaulted. [DEFAULT=MCR] See DR 815906-1 for more details/limitations.
| - | KEYWORD - TCDEL now deletes all timeline keywords in the DataFile - since 3.8.3
|  | - TGET defaults to /FLAT=true, causing issues when working with PLATINUM file keywords. In 3.8.4,the CoreIO.IOOPtions.SetKeywordDefaultFlatValueToFalse will switch the global default to /FLAT=true for Tables.
| - | LOG - New <Beta> NeXtMidas has the option to LOG NeXtMidas interactive commands (e.g. RESULTS, SAY, CALC/verbose, etc.) when the Midas to Java Logger is enabled.
| - | PLOT - A Google style zoom is now available using the /USEMOUSEPOSITION switch. This switch is not compatible with MIMIC or with linked plots, as it only applies when the mouse is directly over the plot being zoomed. See the PLOT explain file for more details. (Since 3.8.1)
|  | - A new option for prescaling a plot via /PRESCALE<=...> was added in 3.8.4. This takes advantage of the prescaler primitive to generate more accurate scale values in cases where auto-scaling proves inadequate (ex: zero-padded PreD data). This functionality is very isolated from existing plot functionality and therefore was deemed safe to be added in the stable series. See the plot.exp and prescaler.exp documentation for more details.
| - | PLOT / GCONTROL - GMenus (including Plot's Features menu) now display a scrollbar and allow scrolling through menu items when there are too many items for them all to be displayed at once. See DR 815434-3 for details.
| - | PLOT / GCONTROL - GValue now has the ability to right justify DVAL controls via a RIGHTJUSTIFY flag. See DR 839910-1 for details.
| - | SOURCEDG - Since 3.8.1, sourcedg can now reorder out-of-order framed data. The new /OUTOFORDER switch uses information from valid ICE Headers to set header information in the output pipe. Note: Invalid ICE Headers are not supported and may result in a state that is not recoverable without restarting sourcedg. Missing data is filled either using auto-learned information on the amount of data per each packet in a frame and the packets per frame, or just based on the packets per frame. Time hacks are set based on the Y-Delta information gained by time stamps in the ICE Headers. Restarts based on frame size changes, X-Start changes, X-Delta changes, or large Y-Delta changes can be enabled via setting various restart tolerances. The ICEPacketsCache utility class was added to support the reordering of PSD packets and is designed to be able to be used independently of sourcedg, though the code is currently ProvisionalUseOnly. See the sourcedg explain file and the ICEPacketsCache javadocs for more information.
| - | XGEOPLOT -T5LAYER Messages are now supported (ACTION=CREATE,DELETE, or COPY). This allows a LayerT5 to be created without a data file, as well as the copying and deletion of points. See XGEOPLOT explain file for details and/or DR 848243-1.
| - | XGEOPLOT - Improved support for T5REC and T5TEXT Messages. These messages can now be used to add points to an empty LayerT5. Support for the modification of individual components, without the modification of related components was also improved (ex: can modify LAT without LON or ALT being affected). Also added the ability to set the modmask using a String by adding the option of a MODMASK= entry in the data table. See XGEOPLOT explain file for details and/or DR 853357-1.

#### Known Third-Party Bugs

The following are known third-party bugs and limitations that may cause problems for NeXtMidas users.

Java Plug-in 8, 7u60 to 7u75 | - | The Oracle Java plug-in (for running Applets) for Mozilla (Firefox) is broken in Java 8, 7u60, 7u65, 7u67, 7u71, 7u72, and 7u75 on RHEL/CentOS 5. Java 7u55 and prior are unaffected. It is fixed in Java 8u5 and Java 7u76. It affects BOTH 32-bit and 64-bit Java versions on RHEL 5. This is not an issue under RHEL/CentOS 6. See Java Bugs JDK-8047710 and JDK-8029314 JDK 8 / OEL 5.x: Java Plug-in needs libstdc++.so.6(GLIBCXX_3.4.9) for more information.
JDK 8u20 to 8u31 | - | The Java Development Kit 8u20, 8u25, and 8u31's javac has a bug that prevent it from being used to build/compile the NeXtMidas baseline. This is not an issue in JDK 8u11 and prior. It is fixed in JDK 8u40. This only affects build time, Java 8 can still be used for runtime. See Java Bugs JDK-8058511 and JDK-8062272 StackOverflowError at com.sun.tools.javac.code.Types.lub for more information.
OpenJDK | - | When using OpenJDK,some users have experienced minor graphical glitches in NeXtMidas GUIs, as well as issues with monospaced fonts not actually being monospaced (which is an issue when OpenJDK is coupled with certain installations of RHEL).
SOURCEDG SINKDG | - | SOURCEDG/SINKDG running on Red Hat Enterprise Linux 4 (RHEL4) and later with dual IPv4 and IPv6 network stacks may encounter BindExceptions and/or SocketTimeoutExceptions due to a bug in the IPv6 stack on RHEL4 (see Java Bugs 6347853 and 6218155). You can avoid this issue by forcing Java to use the IPv4 stack (just do a "`setenv NM_USER_JVM_FLAGS -Djava.net.preferIPv4Stack=true`" prior to running nmstart).
XBC | - | Building static libraries with both the -fPIC and -i-static flag is still "experimental" in the Intel 9.1/10.x/11.x Fortran compiler (see thread 30222879 on the "Intel Software Network Forums" for details). In practice, this only appears to affect users on 64-bit systems. As a work-around only builds on 32-bit machines include the "-i-static" flags in "ifort.comp.append.32bit" and "ifort.link.append.32bit" properties in $NMROOT/nxm/sys/cfg/build.props. On 64-bit platform, the compiler will default to dynamically linking the Intel runtime libraries, so users will need to run with the LD_LIBRARY_PATH environment set to include the Intel libraries installed location.
| - | The Intel C/C++ prior to 11.1.059 (update 3) has a bug that causes the BUILD of C++ HOST primitives that access the Mu pointer to fail with an error message like: "(0): internal error: 0_1561 ... compilation aborted for $NMROOT/nxm/xbc/host/test_mu_okio.cc (code 4). ". The Intel compiler has a bug in compiling code that access a thread local storage constant pointer (which is the definition of the Mu pointer). See Intel issue DPD200138828 at http://software.intel.com/en-us/articles/intel-professional-edition-compilers-111-fixes-list/. GCC does not have this bug. To workaround this Intel compiler bug (by not making the Mu a const pointer), define _WORKAROUND_INTEL_COMPILER_ERROR_0_1561 in your build.props (e.g. "native.lin.cflags.append=-D_WORKAROUND_INTEL_COMPILER_ERROR_0_1561") or directly in the C++ source file.
| - | There is a known issue running OpenMP in NeXtMidas. To workaround uncomment additional properties [ifort.libs.dir] and [ifort.openmp.workaround] in the SYS build.props. [ifort.libs.dir] is the path to the Intel compiler directory. [ifort.openmp.workaround] appends the necessary flags to the compiler however the library reference must be adjusted to reflect the respective Intel compiler version (if using Intel 12.x or later use -liomp5 otherwise use -lguide the current default). See the Users Guide or the example in the XBCTESTOPT2 option tree at $NMROOT/nxm/xbc/test/nmopts/nxm/xbctestopt2 .
VNC | - | It has been noted by users that NeXtMidas will not function in a VNC session if the -depth option is set to 32. 32 is an invalid color depth, valid -depth option settings are 8, 16, and 24. We recommend the default -depth setting of 16.
Windows | - | There is a known issue related to Windows Direct3D when combined with certain hardware profiles and JDKs. This results in severe performance issues with plots, causing sluggish performance, blank plots, and CPU spikes. This is especially true in JDK 7. The workaround is to disable the Direct3D support in java via the environment variable NM_USER_JVM_FLAGS=-Dsun.java2d.d3d=false).

#### Known Issues

StateVector | - | The CubicHermite (the default in NeXtMidas 3.2) and QuinticHermite (optional in NeXtMidas 3.3) interpolation options do not appear to be working properly, particularly at the first and second derivative. At this time it has not been confirmed if the issue is due to a bug in the interpolator or just the results from using bad test data (i.e. sv1.prm which came from X-Midas). This affects both the StateVector library and the SVINTERP function in CONVERT which uses it. The suggested work-around is to use the Linear interpolation option until this issue is resolved.
CALL | - | A SUBROUTINE does not have limited scope, scope is the same as procedure.
CONVERT | - | Tables created by the XML2TBL function may appear to "drop entries" when dereferenced. Since XML2TBL is deprecated, this will not be fixed, use the XML2TAB in place of XML2TBL.
GCONTROL | - | Some controls do not support headless mode.
LIST2 | - | The table for a /LEGACY select message may contain "extra" fields.
| - | Row/cell selection is undefined when listing a pipe.
| - | Type 2000 files with very large frame size may not load properly.
NeXtOpt | - | NeXtMidas commands run from inside an X-Midas macro (specifically when using PIPE or XPIPE) may exit prematurely. For example a NeXtMidas intrinsic run from the INITIALENTRY of a controls section can cause the pipe to stop prematurely.
| - | May get warnings about problems mapping to the messages section if the X-Midas message queue is not up.
| - | Timecode readout for large Type 2000 may give t=00:00:00.
Webstart | - | Oracle has been making frequent changes to the security restrictions for Web Start and Applets. Since Java 7u45, users may have to import a public certificate via the jconsole application in order to prevent Web Start application failures. See the Building Web Start Applications section of the User's Guide for details. In addition, as of JDK 7u51, you may see warnings related to jar file signing such as "No -tsa or -tsacert is provided and this jar is not timestamped." These warning do not impact NeXtMidas.
XBC | - | XBC does not support running two copies of the same command simultaneously.
| - | Do NOT use "-check all" with the Intel compliers because some of the legacy fortran libraries make assumptions that are incompatible with "-check all" causing unnecessary aborts (SEGFAULT).

#### Bugs Fixed

All NeXtMidas issues and enhancements are tracked using a bug tracker/database. GForge DR number is included for all customer-submitted bugs. GForge entries are listed "n/a" for bugs that are duplicates or internal use.

Bugs Fixed in Release 3.8.4 (19 Sep 2019)
JIRA Issue | GForge DR | Description
NXM-3078 | 823803-3 | PLOT: Does not display zero-padded Pre-D data (limited fix in 38x)
NXM-3100 | 824487-3 | Keywords: NullPointerException when calling deleteScope
NXM-3132 | 873204-1 | CONVERT: IndexOutOfBoundsException converting data type of Type 2000
NXM-3251 | N/A | Panel: Line borders when dragged off screen disappear
NXM-3311 | 827428-22 | KEYWORD TGET can not handle dotted keywords
NXM-3391 | 828791-22 | sslconfigure/insecure/oneway does not work
NXM-3436 | 829752-22 | sslconfigure issue with NXM 3.8.3
Bugs Fixed in Release 3.8.3 (31 May 2019)
JIRA Issue | GForge DR | Description
NXM-3042 | 865097-1 | TimeLine Extension / overriding - added Timelines section to User's Guide
NXM-3094 | 824012-3 | Need X-Midas style /MTAG support for XGEOPLOT
NXM-3185 | 826095-3 | Need way to remove timeline keywords - added DataFile API for editing timeline keywords
NXM-3214 | 873590-21 | LIST2 throws NPE when selecting a row after removing last row
NXM-3332 | 883335-1 | On a NM plot the scrollbar can be lost forever
NXM-3337 | 883474-1 | MJText breakage causes text to not display on small text areas (MSGLOG)
NXM-3339 | 873462-21 | mousewheelzoom breaks after panning plot of large type 1000/2000 file
NXM-3391 | 828791-22 | sslconfigure/insecure/oneway does not work
NXM-3394 | 828926-22 | OutOfMemory: when zooming in on a small area of an ellipse
NXM-3400 | N/A | Plot popupmenu overlapping when not inside parent panel
Bugs Fixed in Release 3.8.2 (19 Feb 2019)
JIRA Issue | GForge DR | Description
NXM-3210 | 668940-19 | FFT Restart Changes NAVG
NXM-3294 | 827714-3 | XmPipe references field removed in X-Midas 5.x
NXM-3313 | 827585-22 | Need Insecure SSL Connections
NXM-3316 | 882617-1 | 3.7.2 breakage - DRAGBOX not rendering while being drawn on SUSE Linux
NXM-3317 | 882618-1 | 3.8.1 breakage causing zoomed plots to render out of bounds
NXM-3322 | 827881-22 | httpserv command needs to support HTTPS
Bugs Fixed in Release 3.8.1 (17 Sep 2018)
JIRA Issue | GForge DR | Description
NXM-3095 | 823952-3 | Security flaw in JAR signing during NeXtMidas build (fixed issue with reading PEM files on Windows)
NXM-3143 | 825104-3 | Table: Inconsistent handling of spaces
NXM-3189 | 826435-3 | JsonUtilities: doesn't handle Data properly (partial fix - needs additional testing)
NXM-3201 | 876408-1 | Update Units fields from CCB approval
NXM-3213 | 826567-22 | Graphics severely degraded on CentOS 7 (the "minimal" fix involved switching to full Java Swing and fixing other CentOS 7 issues)
NXM-3223 | 826695-3 | PSD Packet Reordering
NXM-3253 | 669085-19 | GeodeticUtils.computeCircleLL has issues when crossing date line (insidePolygon() portion of fix):
NXM-3261 | 827222-3 | Mouse Wheel zoom should center on mouse
Bugs Fixed in Release 3.8.0 (02 Feb 2018)
JIRA Issue | GForge DR | Description
NXM-3085 | 823964-3 | handlers.tbl needs https RESOURCE entry
NXM-3113 | N/A | FileName.parseName incorrectly treating filenames starting with '.' as file extension (fixed as part of NXM-3095)
NXM-3117 | 872676-1 | Table: should not set DISABLE_ESCAPE_SEQUENCES in toString (when Table.SERIALIZE_WITH_ORIGINAL_FLAGS is set)
NXM-3120 | 872678-1 | Table: support for Java Number - storing primitive types, deserialization (AKA All primitive types in Table should not be stored as Data objects)
NXM-3122 | 825058-3 | Table: need support for keeping 'null' as is (adjusted behavior to throw NPE when null value us added)
NXM-3140 | 825201-3 | GeodeticUtils.computeDistance(Position,Position) is wrong
NXM-3166 | 825690-3 | JsonUtilities: Not handling Unicode escapes
NXM-3174 | 875036-1 | NeXtMidas 3.7.3 PipeResources.initTimecode() timeline broken with pipe restarts
Bugs Fixed in Release 3.7.3 (03 Nov 2017)
JIRA Issue | GForge DR | Description
NXM-3040 | 865095-1 | TimeLine Issue #1 - Bad TimeLine Issues
NXM-3041 | 865096-1 | TimeLine Issue #2 - Insufficient TimeLine Entries (make alloc=-1 GROW_AS_NEEDED more usable by capping growth at 1M entries)
NXM-3042 | 865097-1 | TimeLine Issue #3 - TimeLine Extension / overriding (partial fix allowing setting of missed entries))
NXM-3044 | 822867-3 | NeXtMidas interfering with Java Web Start caching (Web Start caching is disabled)
NXM-3073 | 868952-1 | TimeLine handling incorrect with pipe restarts
NXM-3084 | 824488-3 | NeXtMidas 3.7.2 PKI/SSL Phase 1 unusable at site without fixes (partial fix)
NXM-3087 | 823964-3 | Timecode broken for TC Keywords, with first offset not being first sample, in 3.7.2
NXM-3088 | 824013-3 | PLOT/Layer2D: The NXM 3.7.2 release has a raster drawing issue when boxes are added
NXM-3095 | 823952-3 | Security flaw in JAR signing during NeXtMidas build (patch included)
NXM-3119 | 872677-1 | Table.toStringBuffer needs to properly handle Windows File and Path Objects
NXM-3122 | 825058-3 | Table: need support for keeping 'null' as is
NXM-3155 | 825418-3 | CsvFile:Regression - CSV file no longer recognizes spaces or last rows that do not end with LF
Bugs Fixed in Release 3.7.2 (27 Mar 2017)
JIRA Issue | GForge DR | Description
NXM-2841 | 851534-1 | Refresh issue with zoom box
NXM-2890 | 860673-1 | PLOT: MarkLocation and Zoom in FLAGS for GOTOLOCATION message should not be case-sensitive
NXM-2971 | 511352-15 | Platinum header with large keyword section never completes
NXM-3007 | 862233-1 | Keywords: Putting keywords fails
NXM-3010 | 862236-1 | Timeline/DataFile: TimeLine does not support time code (TC) keywords, missing setTimeLineObject(..) in DataFile
NXM-3034 | 822618-3 | PLOT: GEODETIC view panning, dragging broken
NXM-3040 | 865095-1 | TimeLine Issue #1 Bad TimeLine Issues (partial fix)
NXM-3044 | 822867-3 | NeXtMidas interfering with Java Web Start caching (temporary patch with partial fix)
NXM-3048 | 822477-3 | DGNETSEND adds ICE HEADER (partial fix)
Bugs Fixed in Release 3.7.1 (20 Jun 2016)
JIRA Issue | GForge DR | Description
NXM-2626 | 824939-1 | Unable to CTRL+C from loop
NXM-2704 | 826014-1 | XBC: Keywords not propagated
NXM-2758 | 841173-1 | File Write/Read Exception Not Propagated
NXM-2813 | 850933-1 | NeXtMidas needs option to LOG NeXtMidas interactive commands when the Midas to Java Logger is enabled
NXM-2816 | 851147-1 | HEADERMOD: Fails if duplicate key set
NXM-2834 | 854387-1 | Cleanup SYS's (baseline's) cfg/nmstartup.mm
NXM-2840 | 850796-1 | PLOT: Problem with axis labels
NXM-2843 | 851754-1 | INCLUDE: Fails if name of include file is quoted
NXM-2849 | 852051-1 | KEYWORD: Keywords.makeTable() can't handle PLATINUM keywords (with dots in key name)
NXM-2850 | 852053-1 | HEADERMOD: Can't set SubSize on a file
NXM-2867 | 854385-1 | DataFile: setData(offset,fieldNum,obj) does write Type 6000 subrecord correctly when num_elts > 1
NXM-2871 | 853082-1 | GCONTROL: Selected item in a CHOICE not shown when there are disabled items
NXM-2872 | 853356-1 | SHELLGUI: NullPointerException when multiple SHELLGUIs are attached to Shell
NXM-2875 | 839910-1 | GCONTROL: Unable to right-justify numeric values
NXM-2888 | 854513-1 | require Java 7 or higher (drop support for Java 6) (JavaSE-1.6 removed from manifest.mf)
NXM-2891 | 856370-1 | ENVIRONMENT: SET KEYMAP should support loading from .tbl file
NXM-2892 | 855066-1 | PLOT: incorrect AutoMin/AutoMax autoscaling when all of the first frame data is the same very large number
NXM-2898 | 820601-3 | PLOT: x-cut plot should plot with same mode as original raster (complex mode, readout and view parameters added)
NXM-2900 | 855053-19 | NeXtMidas: Issues defining path/options
NXM-2901 | 855059-1 | File: Need to specify file in class path
NXM-2907 | 667782-19 | XGEOPLOT: Handling OVERLAY message
NXM-2916 | 860739-1 | Keyword: Reading file with incorrect HEADERREP or KeyLength causes errors
NXM-2918 | 820874-3 | FileUtil.copyBaseFile does not work for input tar entry
NXM-2919 | 856234-1 | Plot does not scale to the smallest dimension
NXM-2920 | 667799-19 | DataFile.getDataBuffer() method name is confusing - added createDataBuffer(xfer)
NXM-2921 | 857198-1 | PLOT: x-cut NPE on files without extension specified
NXM-2927 | 667810-19 | CONVERT xml2tab gives cryptic error on bad xml
NXM-2931 | 511240-15 | CsvFile now parses multi-line fields/cells.
NXM-2933 | 857485-1 | CONVERT / StateVector: sv2blue(..) stack trace when using PLATINUM input file.
NXM-2934 | 667842-19 | Convert auto-generated math libraries (nxm/sys/libm/*) to standard Java files.
NXM-2937 | 858331-1 | PLOT: LayerScatter constant flicker in LatLon view with no x margin.
NXM-2938 | 858330-1 | PLOT: LayerKML resizing issues due to incorrect full range calculation.
NXM-2941 | 857234-1 | XGEOPLOT: Allow users to draw boxes on the nm xgeoplot.
NXM-2942 | 815906-1 | INCLUDE statement should find files from other option trees.
NXM-2943 | 821342-3 | LayerKML.drawPolygon(double[] coords) throws NPE even though issue caught earlier.
NXM-2944 | 821341-3 | LayerMap.checkReachable does not handle default port for https.
NXM-2945 | 821334-3 | List type for tables/results.
NXM-2946 | 859131-3 | sys.lib.Data(String) constructs Data objects which overstate the amount of data they actually hold.
NXM-2947 | 821356-3 | LayerWMS should default maxWidth and maxHeight.
NXM-2948 | 859518-1 | ERROR running from NeXtMidas Jar
NXM-2954 | 821362-3 | fcalc does not operate in piped mode.
NXM-2956 | 859894-1 | FileName.relativeTo not work for Windows.
NXM-2959 | 814304-1 | Add ULAW encode and decode library/primitives to AUDIO option tree.
NXM-2984 | 861281-1 | PLOT: Layers' findRange() not setting values used for autoscaling.
Bugs Fixed in Release 3.7.0 (30 Dec 2015)
Bug Number | GForge DR | Description
2825 | 815434-3 | PLOT / GCONTROL: Plot's Features menu needs a scrollbar
2861 | 840802-1 | IF FEQ returns true for zero-length file vs any other file
2869 | 839462-1 | HEADERMOD does not support T=<file type> (correction to error/warning messages for HEADREP=)
2889 | 850020-1 | DSP: Need support for Platinum keyword DATA_INVERSION_FLAG (e.g. UPRIGHTSPECTRUM or INVERT_SPECTRUM command)
2901 | 850525-1 | PLOT / Layer2D: Autoscale stops working after an extreme value
2917 | 848243-1 | XGEOPLOT not processing T5LAYER message
2918 | 850721-1 | PLATINUM to BLUE keyword conversion
2920 | 851099-1 | Pipe.java: add try-catch to write method (always print details when exception occurs)
2928 | 851532-1 | Support using NeXtMidas from bash
2934 | 851755-1 | Args: Incorrect parsing of percent macro defaults
2938 | 853503-1 | Table.toBytes() ClassCastException when has Hashtable entry that has non-String as a key
2949 | 667640-19 | TABLE: Add library call for loading an OPAL table to "supported" API
2950 | 819632-3 | PATH: include jar files recursively under jars area (Support for Jar directory links)
2955 | 852593-1 | MAKE: CLEAN doesn't work for user option trees (does so recursively)
2956 | 852594-1 | MAKE: Unable to re-build with earlier Java version
2958 | 852659-1 | DataFile: getData(offset,fieldNum) does not return/read all data in Type 6000 when num_elts > 1 (fixed convertRecordRep(..) and read(Data,elements))
2965 | 853357-1 | XGEOPLOT/LayerT5: New point component types are not displayed
2969 | 839910-1 | GCONTROL: Unable to right-justify numeric val...
2970 | 817431-3 | PLOT: Features text placement sticky (implemented DTag)
2973 | 854356-1 | NmMake.java resource leak in copyFile method (and in Help, OptionTree, and Update classes)
2979 | 854391-1 | TarFile: Add ability to create TAR files
2980 | 854392-1 | BaseFile should implement Closable
2981 | 854393-1 | StateVector: Add ability to request Ephemeral keywords based on list of time ticks
2982 | 854513-1 | require Java 7 or higher (drop support for Java 6)
2983 | 854527-1 | ARCHIVE: NPE during ON function when unable to open log file for output
2985 | 856370-1 | ENVIRONMENT: SET KEYMAP should support loading from .tbl file
2988 | 855063-1 | Table.removeListener() does NOT remove the table listener
2989 | 855064-1 | nm make clean should not delete *.zip and *.jar under option tree
2991 | 855009-1 | PLOT: Raster plot crashes (added additional thread safety measures)
2996 | 855052-1 | DEFAULTS: Ignored bad input (e.g. non-existent command)
2999 | 855277-1 | GENERATE: NPE when trying to SIGN jar file
3006 | 856456-1 | nm make clean should not re-run user's nmstartup.mm on Unix (since nxm354)
3009 | 856457-1 | Keywords: set method does not convert byte order after first element

#### Deprecated Functionality

The following functionality has been deprecated and will be removed from future versions:

Command | Deprecated Item | Replacement | Deprecated Since
PLOT | ZOOM and DRAGBOX messages accessed with msg.data(0), msg.data(1), etc. | Use msg.data.xmin, msg.data.xmax, etc. | 2.3.0
STATISTICS | IMEAN= | MEAN= (contains real and imaginary values, see explain file) | 2.3.0
CONVERT | The XML2TBL and TBL2XML functions. | Use XML2TAB and TAB2XML. | 2.5.0
UPDATE | Command dictionary entries without '*' denoting minimum allowable abbreviation. | Include a '*' at the end of the command name in the dictionary if no abbreviation is allowed, otherwise note abbreviation as desired. | 2.5.0
TextFile | Automatic enabling of NOABORT flag. | Use NOABORT or FORCEABORT flags as required. | 2.5.0
TextFile | Automatic conversion of INOUT flag to OUTPUT when file not found. | Use INOUT or OUTPUT flags as required. | 2.5.0
Results | Use of A: with results. | Use S:, behavior of A: will change in future releases. | 2.5.2
DataFile | Use of CREATOR= main header keyword. | Use IO= and VER= keywords. | 2.5.3
NMPOSTLEGACY | The user-contributed NMPOST (Legacy) option tree is out of date and is usually replaced with author's version. | Get latest from the authors of NMPOST. | 3.3.1
public fields in baseline classes | All public fields in classes in option trees (SYS, DSP, UCL, etc.) included in the baseline (e.g. nxm.sys.lib.BaseFile, nxm.sys.lib.DataFile, nxm.sys.lib.Shell, etc.) have always been meant for read-only and/or internal use only. Some fields may transition to protected or private in favor of the get/set methods as early as 3.9.0. | Use appropriate public get/set methods. | 3.5.1
PLOT | All public fields in nxm.sys.prim.plot, nxm.sys.libg.MPlot, nxm.sys.libg.Layer* (e.g. Layer1D, Layer2D, etc.) have always been meant for internal use only. Most will transition to protected access in 3.9.0 but will still be for internal use only. | Use appropriate public get/set methods. | 3.5.1
As of release 2.2.0 LIST is considered to be an "End of Life" primitive. The LIST primitive is scheduled for replacement by LIST2 in future releases.
See $NMROOT/htdocs/api/sys/deprecated-list.html for a list of deprecated library methods.

Deprecated functionality will continue to function for one year or two stable releases after first being marked as deprecated, but its use may result in a deprecation warning (either at compile time or run time). After one year, any deprecated functionality is subject to removal.
(Back to Release Notes Summary)