NeXtMidas 4.3.3 Release Notes

This release does not offically support JDK 8.
We did not immediately remove support via our preprocessing step that swaps code based on the JDK compiler, but we no longer test with JDK 8.
In 2027, we plan to remove compatibility with any JDK less than 17


NeXtMidas SYS Option Tree Tested on:
(tests with Java 17, 21, 25, and 26)
OS Version Platform Native Compiler(1)(2)(3)
(SYS Option tree)
Web Browser
(WebStart)
RHEL 8.10 Linux (x86_64) gcc 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025
RHEL 9.7 Linux (x86_64) gcc 11.5.0 / Intel 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025
RHEL 10.1 Linux (x86_64) gcc 14.3.1 / Intel LLVM 2025
Ubuntu 24.04 Linux (x86_64) gcc 13.3.0
Windows 11 Windows (x86_64) pre-compiled DLLs (MinGW64 gcc 12.2.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)
(tests with Java 17, 21, 25, and 26)
OS Version Platform X-Midas Mode C/C++ Compiler(1)(2)(3) Fortran Compiler(2)(3)
RHEL 8u10 Linux
(x86_64)
NeXtOpt (X-Midas 5.11.2) gcc 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025 gfortran 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2024, 2025
NeXtOpt (X-Midas 5.10.1) gcc 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2022, 2023, 2024 gfortran 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2024
NeXtOpt (X-Midas 5.8.2) gcc 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2022, 2023 gfortran 8.5.0 / Intel 2021, 2022, 2023
XBC ("64Bit") gcc 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025 gfortran 8.5.0 / Intel 2021, 2022, 2023 / Intel LLVM 2024, 2025
RHEL 9u7 Linux
(x86_64)
NeXtOpt (X-Midas 5.11.2) gcc 11.5.0 / Intel 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025 gfortran 11.5.0 / Intel 2022, 2023 / Intel LLVM 2024, 2025
NeXtOpt (X-Midas 5.10.1) gcc 11.5.0 / Intel 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025 gfortran 11.5.0 / Intel 2022, 2023 / Intel LLVM 2024, 2025
NeXtOpt (X-Midas 5.8.2) gcc 11.5.0 / Intel 2022, 2023 / Intel LLVM 2022, 2023 gfortran 11.5.0 / Intel 2022, 2023
XBC ("64Bit") gcc 11.5.0 / Intel 2022, 2023 / Intel LLVM 2022, 2023, 2024, 2025 gfortran 11.5.0 / Intel 2022, 2023 / Intel LLVM 2024, 2025
RHEL 10u1 Linux
(x86_64)
XBC ("64Bit") gcc 14.3.1 / Intel LLVM 2025 gfortran 14.3.1 / Intel LLVM 2025

Online Documentation

Java 17+ Migration

What Might Break (Changes in Behavior)

BaseFile/DataFile - DataFile constructors have been fixed so that when KeepCase is passed in as a flag, the constructor honors it. The bigger change in progress is that a bug in Java usage, where a quoted all upper case filename is automatically lower cased is being addressed by distiguishing between Java (including OS command usage) and traditional Midas usage (from a macro or nM> prompt). Due to limits in how NeXtMidas RESULTS are handled and the macro language, the legacy/correct behavior for traditional Midas usage is for all upper case file names that make it to this BaseFile (and its child classes) to be assumed to be all lower case. The new default for Java API usage (and OS usage) will be for file name casing to be honored. As of 4.3.0, the default is auto-detected. If an application is not started via a macro or nM> prompt, but is directly run from Java (ex: via java command or Eclipse), then that will be auto-detected and Java usage will be assumed.
CHECKAUTHORIZATION - PLEASE INFORM the NeXtMidas team if you are using this command. Usage to perform the actual queries is now limited due to REST attribute services going to a more complex query mechanism. Use this with caution! This command, especially the REST query based portion, may be deprecated in the near future, unless we hear it is still useful.
DATABASE (NMDB) - The hsqldb jar has been removed, as it is not needed by the baseline code, but was only used for testing. Having it bloated the baseline and increased the risk of releases having a CVE.
FileUtil.toURL() - As of JDK20, the URL constructors were deprecated with instructions to use URI constructors. The URL constructor permitted some non-standard usage and FileUtil.toURL() took advantage of that. As of 4.3.0, the code uses our substitute code by default, even if the URL constructor is still present. We do not anticipate any issues, but please inform the NeXtMidas team if your special usage worked under previous NeXtMidas versions and not with the replacement code. The static method setUseDeprecatedUrlAPI(true) can be used to revert back to the original URL constructor.
finalize() - The finalize() method has now been removed from XmPipe.java and XMValueNative.java. These classes are the last to have their finalize() method removed. This method has been deprecated since JDK 9 and these specific methods marked deprecated in our code since 4.1.3. The Java finalize() method was originally intended for cleanup operations but had unpredicatable behavior.
HELP/GUI - The default HELP/GUI is no longer dependent on the legacy NXM Apache lucene.jar. That jar file is still included with the baseline and running:
${NMROOT}/libnxm/jar-footprint/jar-dependencies/adjust-jar-dependencies.sh lucene
will switch the codebase back to the lucene.jar dependent version of HelpSearchEngine.java. The new version still takes the standard lucene style search expressions that were noted as directly supported in the HELP explain file, with just a couple exceptions. It is more resilient in that standard searches no longer throw exceptions in the terminal. The legacy 3.0.3 lucene.jar causes problems with Gradle builds and newer lucene versions do not have the capability NeXtMidas was relying on. If you experience any issues with the new version, please report that to the NeXtMidas team. You have the option of switching back to the old HELP/GUI code and rebuilding your project.
MAKE - We have been supporting automatic minor code swaps to handle API changes between the different JDKs. Our change in this release to JDK17+ API being the default should be unnoticeable to both Gradle and NM MAKE ALL builds, with the possible exception of users independently building via softlinks that point to each of the baseline files.
PLOT/ALL - PLOT/ALL of a 1000 file will automatically prescale the data if the MPlot mode, XUnits, and data type are compatible with doing so (see plot.exp). This is because the purpose of the /ALL switch was that all the data would be rendered within the plot bounds. Without this fix, some of the 1000 data can end up beyond plot bounds, without the user realizing it. The only reason this is listed in the What Might Break is that prescaling does add a small amount of overhead.
SSLCONFIGURE/SSLUtilities - PEM file requirements:
1) .pem follows good security practices and only has one certificate chain
2) .pem has each of its certificate chains start with the private key
(ex: private key, primary cert, intermediate certs, root cert)
If multiple private keys are found and the preferred order (private key first) is not followed, the load of the .pem is aborted, as there is not a reliable means of handling key and certs being in any order. Even if the preferred order is followed, the user will be warned about multiple private keys.
SSLUtilities.verifyGroupProject and SSLUtilities.verifyUserAttribute - These methods were intended for use by CHECKAUTHORIZATION, rather than direct usage. As mentioned with the CHECKAUTHORIZATION command, these are beyond useful life as REST attribute services are going to a more complex query mechanism. Please let the NeXtMidas team know if you have an application where they are useful, as the plan is to deprecate these methods.
world.shp, world.dbf, and world.shx - The ShapeFiles in nxm.sys.dat have been updated with current and higher resolution files. These files are based off of the current (version 5.1.1) Natural Earth Data 50m Cultural Vectors Countries ShapeFiles. The DBF file has been adjusted to have column names consistent with previous world.dbf files. Though this should overall be an improvement, it is being listed in this section to inform users that boundaries and country data have changed.

New Features Added

RHEL 8+ - NM_FORTRAN accepts 'gfc', 'gfc-gfortran', or 'gfortran' for the gfc FORTRAN compiler.
  - NeXtMidas will autodetect which compiler to use based on the OS.
  - The JDK 8 tools library is not and will not be FIPS compliant. NeXtMidas supports multiple options for working with JDK 8. In all cases our TLS is 1.2 and is FIPS compliant and the overall Linux setting remains FIPS compliant. One option is to compile NeXtMidas code with JDK 8 and to use a separate JDK 17+ for JAR signing and other actions that require using Java tools library. The default is to turn off FIPS for JAR signing and other direct Java tools usage. See the SecureRHEL8FIPS.html page in our User's Guide for more details.
LIBNXM / Reduced Footprint Build Options - A number of reduced footprint build options are available. See our User's Guide for more information (links below work when docs are built).
JDK Compiler based code - Due to the need to continue to support JDK 8, while also supporting the most current JDK, we are beginning to support very limited pre-compile code swapping based on a .jdk, .jdk## convention. This is done automatically and keeps users from needing to manually uncomment or comment out code to get efficient or fully functional behavior. The only code affected is the CallStackUtil code and MulticastSocketOptions code. To get full and efficient JDK9+ behavior required following directions in CallStackUtil.java and uncommenting and commenting out code. Even so, this still left users with a log message with a stacktrace.
Advanced details: The minimal code that needs to be swapped is now in CallStackUtilSwap.jdk08 and CallStackUtilSwap.jdk (and MulticastSocketOptions respectively). The .jdk08 indicates that version will be placed in CallStackUtilSwap.java (or MulticastSocketOptionsSwap.java) when compiled with java versions up to 8. The .jdk indicates that version will be copied to the java file for all JDK versions beyond the latest ## (in .jdk##). This should largely be transparent to the user, both with traditional NextMidas builds and with Gradle builds.
New Commands - CONVERTARGB;SYS - Converts type 2000 data to ARGB (Alpha|Red|Green|Blue) direct color format. A new /ALPHA0COLOR switch has been added which will force one color (generally the background - no signal present color) to be transparent. This allows multiple rasters to be displayed on single plot.
  - POLYMAP;SYS - Supports creation and customization of Type 1999 files. These 1999 can be created from either ShapeFiles or GeoJSON files. Customization options include skipping or keeping specified polygons or replacing coordinates in specific geographic regions.
  - SHAPEMAP;SYS - Supports creation of customized ShapeFiles. Individual polygons can be reshaped by replacing coordinates in a certain geographical areas with other coordinates.
  - WEBVNCSERVER;WEBVNC - An HTTP/1.1 server that proxys a VNC session to a HTML Canvas using noVNC. Automatically starts a vncserver and websocket proxy for each client.
New Option Tree - minio -
  • New MinIO Support for S3 Bucket Access
    • Compile time dependency: minio jar (included)
    • Run time dependencies: see minio_dependencies.txt
    • S3 commands: S3GET, S3LS, S3PUT, S3RENAME, S3RM
    • NXM command support (NOOP, FFT and STATUS)
Macro/Shell Enhancements - Startup Macros can now accept arguments
  • Example:
    • $ java -DNMSTARTUP.USER="nxm.sys.test.args_startup.mm HELLO THERE" -jar $NMROOT/jars/nxm-sys.jar
  - Improved Macro ERROR checking and messages.
Libraries - DataFile - Better support for PLATINUM files. When PLATINUM files are used as input to a function (ex: FFT, not just STATUS/KEY) the default is now to use the NeXtMidas underlying libraries for PLAT2BLUE conversion to automatically convert PLATINUM Keywords to BLUE. A warning is issued when the PLATINUM file is missing keywords (as defined by the JICD 4.2 ICD). This default autoconversion of PLATINUM can be disabled globally or on a file by file bases. The previous behavior was to error out under these conditions.
- DataTypes
  • New 'J' 12-bit packed Data Type was contributed by Jeff Schoen
    • 12-bit is primarily designed for data transfer and storage
    • DataFile.write requires writes to be at even byte boundaries (ex: transfer lengths that are multiples of 2 for SJ data)
    • Most commands, including PLOT, FFT, and WAVEFORM, are supported, but some require extra care when working with SJ. (ex: DATALIST number of columns should be a multiple of 2)
    • When an 'I' value is placed in a 'J', the top 12 bits are saved
Gradle Support - Support has been added to convert NeXtMidas to a gradle directory structure (full restructure or softlinks options) and to publish artifacts to Nexus. Please find instructions located at $NMROOT/gradle/README.txt
  - Support has also been added to convert user option trees to a gradle directory structure (full restructure or softlinks options). Please find instructions located at $NMROOT/gradle/README.txt
  - Support for pulling some dependencies and relying on local jar files for others, as well as pulling only the dependencies needed when opting for LIBNXM mode or another reduced footprint option.
Midas versus Java usage detection - Support for detecting Midas versus Java usage is being phased in. The immediate need was for the casing for file names passed in in quotes via Java API to be honored, rather than having all upper case names automatically converted to all lower case names. There are other scenarios users have been experiencing where traditional Midas behavior conflicts with Java behavior. With many users running primarily as a Java Application, it is important for Java usage to be compatible with other Java code. In this 43x series auto-detection of Java versus Midas usage is now the default. NeXtMidas usage coming from a macro, nM>, or single-shot mode (nm ....) will be auto-detected as traditional Midas usage, where running a Java application from a main will be considered Java usage. Users can opt in to Java usage via the environmental variable NM_JAVA_MODE being set to "ON" or by setting needJavaBehavior() on their Midas instance.
world ShapeFiles - ShapeFile.getShapesNear will now be more accurate when used with the baseline world.shp. Plots of world.shp will have greater detail and be relatively current. The new files are based off the 5.1.1 version of Natural Earth Data 50m Cultural Vectors Countries files, but the DBF file column names have been adjusted to align with previous world.dbf files.
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 CSV2BLUE and DBF2BLUE allow Type 5000 file creation from readily available .csv and .dbf files. These provide automatic substitution of non-ASCII characters with the best matching ASCII character and the ability to specify altitude without requiring an ALTITUDE column. See the explain file for more details.
  - FEATURE
  • New Both plot/MPlot Features and LayerDrawable Features can be placed in groups. The Features menu now uses a tree type display, placing Features under their Feature Group name.
  • New Elastic Feature: One plot Feature can be selectable, movable, and stretchable. See feature.exp for more details.
  - FFT
  • New The /CMAG switch can be used to apply /MAG, /PSD, and /LOG to cross spectrum output.
  - MACRO
  • New Macro error reporting is greatly improved: lists all conditional block closing errors, gives line number and command, handles includes better.
  - PANEL
  • Auto Grid - Support of uneven layouts
  - PLOT
  • New IQ plot readouts now include radius
  • LayerGeo - Horizon at Altitude support
  • LayerShape - Country/Shape Name Labels - See PLOT EXPLAIN file.
  • New Point3D.getLinePointsInAOI API allows LayerT5/Point3D line segments to be selected via a dragbox. This does not require the actual points being included in the dragbox area, but just that the line connecting them cross the AOI.
  • New /LABELRESOLUTION: Using this switch on the plot command or calling the API setLableResolution(true) will turn on intelligent label placement for MPlot Features. Rather than writing labels on top of each other, making all of them unreadable, it will detect conflicts and attempt an alternate label placement. When the alternate location also overlaps an existing label, it will append "..." to the label it overlaps. The "..." or "......" if there are multiple conflicts keeps the original label readable and lets the operator know there were more.
  • New {LAYER={INSERT=before_this_layer}} OPENFILE messages can now have layer insertion location specified either by layer name or layer number. See layer.exp or plot.exp.
  - QUERY
  • Capability Restored To: Display full signatures and show inherited and interface methods in separate section.
  - SSLCONFIGURE/SSLUtilities
  • SSLUtilities.nssProfileName property allows users to specify the Firefox profile that contains their PKI certificate. Otherwise "default" is used.
  - STATISTICS
  • Support for REALMIN, REALMAX, IMAGMIN, and IMAGMAX with complex input.

Known Third-Party Bugs and Limitations

The following are known third-party bugs and limitations that may cause problems for NeXtMidas users.
RHEL 10 Monospaced text height change - The underlying Font used for Monospaced now has a text height of 17, rather than the previous 15. NeXtMidas defaults to Monospaced for text. This especially affects panel graphics and the laying out of the graphical controls in Pane0.
JDK 17.0.1 libsvml.so name conflict (JDK-8276025) - JDK 17.0.2 has fixed a 17.0.1 issue caused by Java adding a library with a name conflict with a common native library. 17.0.1 causes the XBC option tree build to fail with an UnsatisfiedLinkError.
OpenJDK 8 versions earlier than 1.8.0_312 are not supported - To avoid deprecation warnings about too weak of a signing certificate, the NeXtMidas self-sign certificates were updated to a standard that is not supported in earlier JDK 8 versions
Reflective Access JDK 9+ (warning) JDK17+ (error) - Warnings are thrown for illegal access using reflection in Java 9 and up and errors in JDK17 and up. When running from When the running via the NeXtMidas start script, the jvm options shown below are included and there are no warnings or errors. To bypass the warning/error, add this to the jvm runtime options:
--add-opens java.logging/java.util.logging=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED
For more information please visit Oracle JDK 14 Documentation
RHEL 8 GCC 8.5.0 - We have put in a workaround in rmif.for for a bug in the GCC FORTRAN compiler that comes with RHEL 8. This allows our NeXtOpt code to build and run, but please let us know if you experience any further issues building and running with this compiler. Fritz Reese has narrowed down this bug and states: The compiler crash (ICE) is triggered by STRUCTURE /PACKETSTRUCT/ having 8 fields followed by a UNION. When –fdec is combined with –finit-derived and –finit-local-zero, some code in the compiler creates a bad initializer for instances of PACKETSTRUCT which leads to invalid memory access. It turns out this happens because the routine that adds an element to the field initializer vector for unions uses an insidious macro which apparently modifies the vector pointer on resize; the default size of this vector is 8 elements, so upon adding the 9th field initializer the vector is resized by allocating a new vector, copying the elements over, freeing the old vector, and reassigning the pointer variable. Since the union routine took the vector pointer as an argument (by value), the caller’s vector pointer wasn’t updated after the resize, and therefore the caller’s idea of the vector was a pointer to freed memory. Chaos ensues later at random points in the compiler which deal with this initializer vector during optimization, finalization, etc... Unfortunately, because of the nature of this bug, subtle changes in how the compiler visits the initializer trees and how other memory is allocated can mask the bug, so there’s no guaranteed workaround other than to ensure there’s no union which is after the 2*8^n-th field (9th, 17th, etc…) in a structure.
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.

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.
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 4.3.3 (dd Mmm 2026)
JIRA Issue GForge DR Description
NXM-#### ######-##

Bugs Fixed in Release 4.3.2 (26 Jun 2026)
JIRA Issue GForge DR Description
NXM-3672 840726-22 Commands in .cnf without terminating '*' now default to full name
NXM-3702 840358-22 Need features to be selectable so they can be moved or stretched
NXM-3856 837679-22 JDK 18+ Deprecation for removal warnings
NXM-3948 838899-22 LIST2/MJList not handling column width correctly where format is not recognized
NXM-3995 839038-22 Features and Images drawn in GEODETIC enlarged up against top left corner
NXM-4041 840720-22 RHEL 9.3 GNU Fortran 11.4.1 gives warnings for both NeXtOpt and XBC
NXM-4064 839934-22 GCONTROL regression causes panel graphical controls table to not get formed
NXM-4066 896883-21 POPUP warning and error messages need to make it to logs
NXM-4072 839999-22 PANEL saving setup broken when menubar is present
NXM-4075 840139-22 Feature gives invalid warning message under standard usage
NXM-4116 840343-22 Gradle build needs to support soft links of user option trees
NXM-4143 898214-21 Gradle build failure
NXM-4152 898682-21 MACRO failures give little indication of line or even procedure
NXM-4191 840962-22 QUERY regressions cause user request to be ignored and can cause lockup
NXM-4219 899691-21 Feature labels can be unreadable
NXM-4222 841116-22 Conversion of IEEE file to EEEI file broken in 394
NXM-4234 841480-22 SSLUtilities needs grab correct FireFox profile
NXM-4244 841649-22 JNI related JDK 24 restricted method warning
NXM-4260 841414-22 Map Type 5000 lines need to be selectable
NXM-4261 841439-22 PLOT missing ability to control order of map layers
NXM-4262 841441-22 CONVERT should support CSV/DBF file conversion to Type 5000/5010
NXM-4295 841685-22 NeXtMidas builds fail with GCC 15
NXM-4304 841775-22 Theme regression breaks calls to constructor
NXM-4307 841768-22 RHEL9 umask causes NeXtMidas releases to have wrong permissions set on files and directories
NXM-4326 841928-22 minio 8.15.17 jar has CVE
NXM-4348 842246-22 RHEL 10 FontMetrics / Monospaced issue breaks GCONTROL CHOICE
NXM-4368 902981-21 MPlot NPE bug related to elasticFeature
NXM-4369 842197-22 Latest JDKs break SSLCONFIGURE on RHEL 8+ FIPS

Bugs Fixed in Release 4.3.1 (12 Dec 2025)
JIRA Issue GForge DR Description
NXM-3848 837033-22 NeXtMidas Startup Macro needs to accept arguments
NXM-3899 837911-22 FFT needs magnitude, 20log, and dB log on cross spectrum output
NXM-4029 839477-22 PANEL AUTOGRID needs to support uneven layouts
NXM-4033 839606-22 DSP reformat & demux ignoring Data Type portion of FORMAT
NXM-4051 839797-22 Histogram fails with complex input data
NXM-4056 896829-21 STATISTICS needs real and imaginary min and max
NXM-4061 839924-22 PLOT throws Exception rather than giving File Not Found information
NXM-4093 840132-22 Message needs to support sending messages to submacro or parent
NXM-4105 840292-22 LayerGeo: Need to be able to have horizon at altitiude and not just horizon
NXM-4117 840342-22 Feature menu should use tree when features are part of a group
NXM-4139 840548-22 LayerKML selection logic flawed
NXM-4186 840915-22 RHEL 8+ FIPS JDK 8 and 11 Failures
NXM-4214 899654-21 Country Names should be displayable on ShapeFile plots
NXM-4283 841663-22 CVE in NeXtMidas commons-lang3.jar 3.14.0 dependency

Bugs Fixed in Release 4.3.0 (06 Jun 2025)
JIRA Issue GForge DR Description
NXM-1277 767451-1 RMIF Table toString of Number Objects
NXM-2248 666587-19 Cannot Select multiple countries in PLOT
NXM-3128 825090-3 Add complex input support to SIGSTATISTICS
NXM-3333 883336-1 Allow multiple rasters on a single plot
NXM-3389 896480-21 finalize() deprecated in Java 9 and for removal since Java 18
NXM-3421 884304-1 Higher Resolution Maps
NXM-3522 879778-21 LayerT5 default point selection mode selects wrong point when view=GEO and the point is not on surface of earth
NXM-3586 832206-22 Setting DISPLAY after NMSTART does not work
NXM-3682 834133-22 Circular code in call to MPlot.setTime
NXM-3742 835165-22 Need control over buffer size in DatagamData
NXM-3774 835955-22 Nextmidas should add support for minio storage
NXM-3828 836757-22 Inefficient Table Filter on Keys
NXM-3832 836757-22 Inefficient Table Filter on Keys
NXM-3886 892166-21 Support for CTF RHEL 9 Upgrade - additional fix to automatically pick up gfortran
NXM-3904 893423-21 NXM should be able to provide current (LayerT5) points or subsets to users
NXM-3907 893418-21 Popup information is confusing when plotting non-geodetic data
NXM-3923 893424-21 NXM should allow points selected to not change color
NXM-3925 893419-21 Table formatting is poor when viewed within popup window
NXM-3933 838984-22 Text area comes up scrolled to wrong position
NXM-3946 838494-22 LayerT5 needs better means of setting size of points buffer
NXM-3950 896481-21 All URL constructors deprecated for removal in JDK 20
NXM-3952 894082-21 Process Message Data Containing Periods in Keys
NXM-3961 838568-22 plot world.shp opaqness changes on dragbox
NXM-3979 838932-22 MPlot.drawCone previous behavior broken
NXM-3988 894929-21 StateVector performance issue
NXM-3994 839040-22 3.9.1 ellipse rendering regression
NXM-4003 895142-21 Keywords throws ArrayIndexOutOfBoundsException - putMain vs put and putALL
NXM-4010 839270-22 Conversion bugs in Native.c and Convert.java for PACKED data
NXM-4014 839420-22 Point count inaccurate in LATLONCONTINUOUS
NXM-4017 839423-22 LayerT5: Operators need to know the number of points matching their selection
NXM-4018 839422-2 LayerT5: points highlighted as points of interest need to get preference
NXM-4045 896577-21 Gradle should only pull dependencies needed
NXM-4048 839723-22 PLOT/ALL of 1000 file only showing portion of data
NXM-4049 896576-21 Gradle build should not fail when included jars specified as local dependency
NXM-4055 839884-22 DSP TUNER regression breaks Output IF band center
NXM-4063 839912-22 Macro keyword argument error
NXM-4065 839998-22 PLOT readout should include radius on IQ plots
NXM-4097 840203-22 BaseFile creates filename with wrong casing
NXM-4104 840313-22 SSLUtilities not handling PEM file chain

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
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 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)