NeXtMidas 3.4.4 Release Notes

Changes between release 3.4.0 and 3.4.1 are listed in blue.

Changes between release 3.4.1 and 3.4.2 are listed in green.

Changes between release 3.4.2 and 3.4.3 are listed in teal.

Changes between release 3.4.3 and 3.4.4 are listed in purple.

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


NeXtMidas SYS Option Tree Tested on:
(All tests with Java 6 and Java 7, unless otherwise noted (1))
OS Version Platform Native Compiler(2)
(SYS Option tree)
Web Browser(3)
(WebStart/Applet)
RHEL 5u9 Linux (x86) Intel 12.1 / Intel 13.1 Firefox 10.0.12
RHEL 5u11 Linux (x86_64) Intel 11.1 / Intel 12.1 / Intel 13.1 Firefox 31.3.0
RHEL/CentOS 6u6 Linux (x86) gcc 4.4.7 / Intel 12.1 / Intel 13.1 Firefox 31.4.0 / Firefox 31.6.0
Linux (x86_64) gcc 4.4.6 / gcc 4.4.7 / Intel 12.1 / Intel 13.1 Firefox 31.4.0
Solaris 10
(SunOS 5.10)
Sun/SPARC (32-bit) gcc 3.4.6 Firefox 2.0.0.19
RHEL/CentOS 7u0 Linux (x86_64) gcc 4.8.3 / Intel 14.0.4 Firefox 31.2
Windows 7 SP1 Windows (x86) pre-compiled DLLs (gcc 4.8.3) Chrome 29.0 / Firefox 17.0.6 / Internet Explorer 11.0.17
Windows (x86_64) pre-compiled DLLs (gcc 4.8.3) Firefox 31.2.0 / Internet Explorer 11.0.17

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 6 and Java 7, unless otherwise noted (1))
OS Version Platform X-Midas Mode C/C++ Compiler(2) Fortran Compiler(4)
RHEL 5u9 Linux
(x86)
NeXtOpt (X-Midas 4.10.5)(6) Intel 12.1 Intel 12.1
NeXtOpt (X-Midas 4.12.3)(6) Intel 12.1 / Intel 13.1 Intel 12.1 / Intel 13.1
XBC ("32Bit") Intel 12.1 / Intel 13.1 Intel 12.1 / Intel 13.1
RHEL 5u11 Linux
(x86_64)
NeXtOpt (X-Midas 4.10.5)(6) Intel 12.1 Intel 12.1
NeXtOpt (X-Midas 4.12.3)(6) Intel 11.1 / Intel 12.1 /
Intel 13.1
Intel 11.1 / Intel 12.1 / Intel 13.1
XBC ("64Bit") Intel 11.1 / Intel 12.1 /
Intel 13.1
Intel 11.1 / Intel 12.1 /Intel 13.1
RHEL/CentOS 6u6 Linux
(x86)
NeXtOpt (X-Midas 4.10.5) Intel 12.1 Intel 12.1
NeXtOpt (X-Midas 4.12.3) Intel 12.1 / Intel 13.1 Intel 12.1 / Intel 13.1
XBC ("32Bit") gcc 4.4.7 / Intel 12.1 /
Intel 13.1
Intel 12.1 / Intel 13.1
Linux
(x86_64)
NeXtOpt (X-Midas 4.10.5) gcc 4.4.7 / Intel 12.1 Intel 12.1
NeXtOpt (X-Midas 4.12.3) gcc 4.4.7 / Intel 12.1 /
Intel 13.1
Intel 12.1 / Intel 13.1
XBC ("64Bit") gcc 4.4.6 / gcc 4.4.7 / Intel 12.1 / Intel 13.1 Intel 12.1 / Intel 13.1
RHEL/CentOS 7u1 Linux
(x86_64)
NeXtOpt (X-Midas 4.14.0) Intel 14.0.5 Intel 14.0.5
XBC ("64Bit") gcc 4.8.3 / Intel 14.0.5 Intel 14.0.5
(1) Platforms were tested on the latest version of JDK6 (6.0_45), JDK 7 (7.0_79), and with JDK 8 (8.0_51). 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, early versions of the 32-bit JDK6 were known to have incorrect behavior on 64-bit systems. All code was compiled with "-source 6" and "-target 6" specified (this is the default). All tests use the Java VM from Oracle (formerly Sun Microsystems) (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.
(3) Note: As of Firefox 3.6.x, the new (Next-Generation) Java plugin (included with Java 6u10 and later) must be used (i.e. $JAVAHOME/jre/lib/i386/libnpjp2.so) for Java applets to work. Please see http://www.java.com/en/download/faq/firefox_newplugin.xml for more details.
(4) $NM_FORTRAN was set to point to the Intel Fortran compiler (ifort). Official support for using the Portland Group (PGI) Fortran compiler with XBC and NeXtOpt has been discontinued due to limitations related to multi-threading and use on 64-bit systems.

Online Documentation

Java 6 Migration

No longer supported platforms

What Might Break (Changes in Behavior)

ASSERT - In 3.3.0, the FEQ/H test was changed to include checks for Type 5000 quad words. In prior versions, these checks were listed as "TBD" and resulted in files reporting to be equal although their reference frames differed. Setting the IOOPTION DisableQuadwordsEqualityChecks will disable the new behavior (see ENVIRONMENT for details).
BUILD - In 3.3.0, BUILD checks the "compat.ext.javac" value in build.props to determine if it use use external OS calls to javac to compile java code. The default behavior is to use the internal java compiler which is usually 10% - 20% faster but uses more memory.
  - In 3.4.3, when building native code, the link flags are now specified after the object file(s), so that libraries specified via -l<libname> option (i.e. -lm) are in the proper order so that the linker can properly resolve all references and use the most optimal mechanism. This is not expected to impact many users (if any). See DR #808736-3 for details.
Cache - In 3.4.1, the default Cache type was changed to SLRU so that when it is accessed from multiple threads concurrently, it does not lock up or throw a NullPointerException. Use the multi-parameter constructor to specify the higher performing Cache.LRU when using it in a single thread. See DR #831626-1 for details.
Command - In 3.3.0, changes were made to the Command class to return true for more cases where the user might be attempting to interrupt the running Command. Certain users were experiencing "false positives" from this, so in 3.4.1 this logic was tweaked slightly. See DR #821552-1 for details.
DataFile - In 3.3.0, the DataFile.getData(double) method was changed to return null upon reaching end-of-file (EOF). In prior versions, the method returned a Data buffer with junk values. The updated version matches the behavior of DataFile.getDataTable(double) and ListFile.getDataTable(double) in returning null at EOF.
- In 3.3.0, the DataFile.equalsHeader(..) method was changed to include checks for Type 5000 quad words. In prior versions, these checks were listed as "TBD" and resulted in files reporting to be equal although their reference frames differed. Setting the IOOPTION DisableQuadwordsEqualityChecks will disable the new behavior (see ENVIRONMENT for details).
- In 3.3.4, the DataFile.getIndex(..) method was changed to default to abscissa indexing if the tilde ("~") is present. This is the correct behavior that was accidentally removed in 2.9.1. Some users may be mistakenly using the tilde for element indexing, and will need to correct their macros.
DUAL5000 - In 3.4.4, /LTC and /LTCTOL will now work (i.e. It is now possible to enable light time correction).
FCalculator - In 3.3.0, the fcalculator.dataOut(arg) method was changed to set the header of the output buffer for each write. This allows the header information to propagate accurately. There is no expected impact to users.
FEATURE - In 3.3.1, Use of the deprecated (since 2.3.0) LABEL= inside the table of options was removed. Use TEXT=.
File - Prior to 3.3.0, the READ function returned non-null values (i.e. with junk data) upon reaching end-of-file (EOF) for a DataFile. Since 3.3.0, the behavior matches the documentation and returns null at EOF.
FileName - Since 3.3.1, the FileName class has improved support for case-sensitive file names, including a global option to alter the default case-sensitivity. Although the global option matches what was used in NeXtMidas 3.2 (by default) users now have two ways (global option and FNCASE= qualifier) to alter the interpretation of a file name that were not previously permitted by the library. The FileName constructors that previously took in a "keepCase" flag now treat this as a "suggestion" rather than a "mandate" as it now has lower precedence than the FNCASE= qualifier.
Files - In 3.3.0, changes were made to the CoreIO class so that if a user attempts to interact (plot, status, etc) with a file that is in a directory within an AUX, the file can be found. Previously it would only look in the AUX directory itself.
IF - In 3.3.0, the FEQ/H test was changed to include checks for Type 5000 quad words. In prior versions, these checks were listed as "TBD" and resulted in files reporting to be equal although their reference frames differed. Setting the IOOPTION DisableQuadwordsEqualityChecks will disable the new behavior (see ENVIRONMENT for details).
- In 3.3.1, IF (and Args) was changed slightly to allow files in RAM to be found using FEXISTS checks. This could cause issues for users who were using IF or TEST and relying on the old (incorrect) behavior. This is considered unlikely.
- In 3.3.2, Deprecated code was removed from IF (and Args) that causes non-scalar checks to only consider the first value. This code had been deprecated since NeXtMidas 2.7.0 and printed up deprecation warnings when used. Since 3.3.2 all values in a non-scalar are checked (see explain file for details). There was also a way, while the deprecated was in place, to pass a non-numeric value to some of the numeric equality checks without triggering an exception although the results of the test were often spurious (e.g. 'IF "1" EQ/T 1.0' returned FALSE), such usage now generates an exception.
- In 3.3.2, support was added for *absolute* tolerance using the /DELTA= switch (see explain file for details). In the unlikely scenario that a user was already passing /DELTA= to IF, this will result in a functionality change.
INCLUDE - In 3.3.1, the processing of Macro files was changed to allow multi-line RESULTS (such as quoted Strings or long TABLE definitions) to start a line with the word INCLUDE (or whatever the user has set the INCLUDE String to be). This could cause issues with users who were relying on the old (incorrect) behavior. This is considered highly unlikely.
KEYWORD / Keywords - Since 3.3.0, attempts to insert a COMMENT keyword into the MAIN (rather than EXTENDED header) will work, without a warning provided that there is sufficient space in the MAIN header. This behavior matches the (draft) BLUE 1.1 ICD. Prior versions of NeXtMidas were inconsistent with NeXtMidas 3.0 always issuing a warning and NeXtMidas 3.2 never issues a warning even if it caused mandatory keywords like IO or VER to be dropped.
LayerMulti / LayerMulti2D / LayerScatter - In 3.3.2, LayerMulti was updated to use double-precision computations to allow plotting of time values. This required API changes to 3 "protected" variables and one "protected" method; resulting in a potential loss of backwards-compatibility for some sub-classes of LayerMulti (LayerMulti2D and LayerScatter were both updated to use the new API). The comments at the top of LayerMulti describe the API changes.
Macro - In 3.3.0, the parsing of Macros was changed slightly to allow for multi-line Strings containing comment indicators '/*' and '*/" with the String to NOT be treated as comments. Users should put comments before or after the String, not within it.
- In 3.3.1, the /MSGID= switch from the Macro's parent's command line is no longer propagated (i.e. inherited) by commands inside the macro. The /MSGID switch (similar to /ID and /BG) was never intended to be propagated as it can cause undefined behaviors. This change is unlikely to break any existing macro as it is very unlikely that child/sub-macros worked properly with the /MSGID switch propagated to them.
MColor - In 3.3.0, MColor.getColor(String) no longer supports using the deprecated "Xhexstring" and "FFhexstring" syntax, instead use "#hexstring" or "0xhexString". Note: these only work with 6-digit (RGB) or 8-digit (ARGB) hex string formats.
NMPOST - In 3.3.1, the user-contributed NMPOST option has been renamed to NMPOSTLEGACY and is deprecated as it has become out of date. Recommend getting latest version from the author's of NMPOST.
PLOT - In 3.3.1, Plot.getType() now returns the PLOT's type vs the first layer's line type. Use REG.<plotID>.LAYERS.<layerName>.line.type to get layer's line type.
- In 3.3.1, MPlot.getDRangUnits() was changed to return String of the dRange units used vs an index value of the dRange units. Use getDRangeUnitsInt() for the index of the constant value.
- In 3.3.1, Plot.setPlotType(String), Plot.setRmifCompression(String), MPlot.setDRangeUnits(String), MPlot.setMode(String), and MPlot.setView(String) and now throws an Exception when given invalid value vs displaying a warning. Allowing invalid values in these methods were deprecated in 2.9.0.
- In 3.3.3, Plot.setReadout(..) was changed so that if a user turns off Scientific notation, the Axis value labels will be set to AutoRotate (i.e. align the label text vertically) to ensure the values fit on the axis. User who do not wish this behavior can follow their setReadout(-Scientific) with a setAxis(-AutoRotate).
- In 3.3.3, MPlot.zoomOut(float) will clear the zoom history when the plot receives a zoom out all the way message (data=-1).
Position / StateVector - In 3.3.0, Position.setCurrentTime(Time) was added to provide for precision time, this supercedes StateVector.setTimeCode(double) [which now calls the new function]. In making this change Position.setTime(double) was changed to check the value of the input time and defer to setCurrentTime(..) if the value appears to be a J1950 time rather than a time relative to the start of the given file. This means that in some rare circumstances a call to setTime(..) may behave differently than intended and means that getTime() [which always returns a time relative to the start of the file now] are not 100% reflexive.
Query - In 3.3.1, the QUERY command functionality was limited when using JDK 7+. This is because JDK 7 changed the underlying documentation structure for the generated API docs, so the parsing done by the Query command for advanced functions no longer works.
Table - In 3.3.1, nxm.sys.lib.Table.Iterator.next() now returns String vs Object (for the key) so that it can satisfy the java.util.Iterator<String> interface.
  - In 3.3.3, nxm.sys.lib.Table implements the Map<String, Object> interface vs just Map. This requires the put(String,Object) method to return an Object vs void. Code compiled with prior versions has to be re-compiled otherwise at runtime they will get a NoSuchMethodError: nxm.sys.lib.Table.put(Ljava/lang/String;Ljava/lang/Object;)V where the "V" at the end is specifying the void return type vs "Ljava/lang/Object;" for an Object return type.
Table Parsing from Strings - In 3.3.0, changes were made to the Table class to perform some limited validation when creating a Table from a String. If the String has misplaced quotes, an empty Table is now created ('{}') instead of a malformed one and a warning is issued to the command line. If the String is missing the opening or closing braces, a warning is issued to the command line. Previous behavior of returning '{}' remains. Set the new Table flag CheckMalformed to false to revert the behavior.
Theme - In 3.3.0, changes were made to the MWindow and Panel classes to allow for graphical primitives within the same macro to have their own Theme (previously everyone shared the Global Theme). Widgets on a control panel all still share the same Theme for performance reasons, but they can have individual Themes using the existing "/wtheme= " switch. To revert to pre-3.3.0 behavior, use the /ShareTheme switch at the top of a macro.
Time Parsing - In 3.3.0, changes were made to the Time class to support ISO 8601 time strings. Use of the STD parsing option will now imply ISO8601 if the given string matches an ISO 8601 time string, whereas prior versions of NeXtMidas produced an error in this scenario.
Transform - In 3.3.0, the setECR() function was updated to set the coordinate system to CARTESIAN to match the existing setTOP(..) and the new setECI(..) functions. Prior to this, calling the setECR() function immediately after a call to the constructor left the Transform in a semi-invalid state where neither CARTESIAN nor GEODETIC were indicated.
- In 3.3.0, the fromDataFile(..) function and Transform(DataFile) constructor were updated to set the coordinate system and units even if the reference frame was unsupported. The old version had a "fail fast" implementation that prevented proper handling of (technically invalid, but still readable) files where the reference frame was unset but the coordinate system was set to GEODETIC (in such a case the reference frame is essentially meaningless).
TUNER, FILTER, WINDOW - In 3.3.1, the TUNER and FILTER commands were substantially overhauled to support complex integer types, improve performance, properly account for the delay through the filter used (i.e. update timestamps accordingly). As part of this the FIR filter generation code used by TUNER, FILTER, and WINDOW was consolidated into a single library. As a result the filters produced are not bit-for-bit identical, and will have different xdelta values (though the /SETDELAY=FALSE will disable the latter behavior). See explain file for details.
UNITTEST - In 3.3.2, changes were made to NMTestCase to avoid double-counting of some "missing" unit tests. As a result the number of missing tests listed in the resulting summary will differ from previous versions.
WAVEFORM - In 3.3.0, changes were made to the WAVEFORM White Noise algorithm to make the default scale of AMP more reasonable for later conversions. The result is that the White Noise output is not exactly as it was previously. See WAVEFORM explain file for more details.
XBC - In 3.3.4, changes were made to xmlibc.c to make it compatible with the Intel 2013 C++ Compiler (icpc). It is not anticipated that there will be any impact to users. Se DR 830285-1 for details.
XGEOPLOT - In 3.4.2, changes were made to XGEOPLOT correct the method used in determining if a bit was set in the .btest(..) function. To revert back to previous behavior, set the BUGFIX.XGEOPLOT_USE_ORIGINAL_BTEST system property to true. See DR 815413-3 for details.
Classes removed - Deprecated classes that have been removed:
nxm.sys.inc.PythonReady -> use PythonReady in JPYOPT
nxm.sys.intr.Python -> use PYTHON;JPYOPT
nxm.sys.lib.PrintfFormat -> use java.util.Formattable
nxm.sys.test.peakpick -> use PEAKPICK;DSP
nxm.ucl.prim.amfsync -> use AMFSYNC;DSP
nxm.ucl.prim.econtrol -> use GCONTROL
nxm.ucl.prim.ermif -> use RMIF
nxm.ucl.prim.kaiswind -> use KAISWIND;DSP
nxm.ucl.prim.tracksub -> use TRACKSUB;DSP
Methods removed - Deprecated methods/fields that have been removed/changed:
nxm.sys.prim.panel.cntrls -> use getControls()
nxm.sys.prim.panel.panes -> use getPanes()
nxm.sys.lib.JarFile.getElements() -> use getNumEntries()
Jar Files removed - The AbsoluteLayout.jar file was intended for internal use. It is no longer used by SYS and have been removed.
The jython-2.1.jar was intended for internal use by the PYTHON Intrinsic command, which has been moved to the JPYOPT option tree.
Anyone with option trees that uses these JAR file can copy it from the NeXtMidas 3.2.x release and include them with their own option tree.

New Features Added

New Commands - DPCO;DSP - Double precision Phase/frequency/chirp-Controlled Oscillator. Similar to DPCO in X-Midas, see explain file for details.
  - DUAL5000;UCL - Computes measurements between two type 5000 files. Similar to DUAL5000 in X-Midas, see explain file for details.
  - INVFFT;DSP - Inverse FFT, see explain file for details.
SBTUNER;DSP - SBTUNER was added to the DSP option tree to mirror the X-Midas command of the same name. Essentially SBTUNER identical to TUNER but with a different command-line syntax. See explain file for more details.
Macro/Shell Enhancements - Graphical Commands - In 3.3.1, the universal switch /EVENTFILTER was added, which exposes setting the MWindow.eventFilter (Window event filter) mask value when the command opens. In addition, the NoMiddleMouse mask option was added to disable the middle mouse button (MMB) clicks in GCONTROL/LIST/LIST2/PANEL/PLOT (which can be use to prevent the configure menu via the MMB). Note: advance user's can still display the configure menu on PLOT, PANEL, and LIST by pressing 'M' on the keyboard. The application can also bring up the configure MENU on PLOT, PANEL, and LIST by sending a "MENU" message to the command. See the SWITCHES explain file and/or DR 824455-1 for details.
  - GUI Title Text - In 3.3.0, the universal switch /NoAltTitle was added, which, when set, prevents events such as mouse overs from changing the text in the title/status bar. See DR 820248-1 for details.
  - OSGi - changes to the shell and supporting libraries to officially support running NeXtMidas inside an OSGi framework. See DR 807356-3 for details.
  - Themes in a Macro - The use of Themes was modified so that each graphical primitive within a macro now gets its own Theme object, and changes to this Theme will not affect other aspects of the macro. The exception to this is control widgets. They share the same Theme as the control panel, for performance reasons, but can override this using the existing "/WTHEME=" switch. See nxm.sys.test.test_plot_theme.mm for example usage. Note: This behavior can be reverted by using the /ShareTheme switch at the top of a macro.
  - Runtime Options - changes to the runtime options for supporting wild cards (*) to the NM_BOOT_CP_APPEND environmental variable. See DR 827484-1 for details.
ASSERT - In 3.3.2, the /GROUP= switch was added to facilitate grouping of tests together (e.g. testing a large set of values from a file). See explain file for more details.
BUILD - In 3.3.1, the /BLDTYPES= switch can be used to specify the types of files to build (e.g. Java, Native, Host). See explain file for more details.
CONVERT - Several new functions added to CONVERT to support working with state vectors including: ECI/ECR/TOP/TOPOCENT (reference frame conversion), LLA2ECR/LLA2ECI (LonLatAlt to state vector, similar to LLA2ECR and LLA2ECI found in a number of X-Midas applications), SV2BLUE (convert arbitrary state vector to a Type 5001 file), and SVINTERP (state vector interpolation, similar to SVINTERP and SVINTERP_TC found in a number of X-Midas applications). See explain file for more details.
- Another new function was added to CONVERT to allow users to convert Type 1999 Midas (Poly) files to KML files. See explain file for details.
- In 3.3.3, the /USEROOTFORRES was added to the CONVERT XML2TAB function to use the root level element name for the result name.
ENVIRONMENT - The new FileNameCase (or FNCASE) option added to control global file name case defaults.
FEATURE - FEATURE now supports a VBAR (vertical bar) and HBAR (horizontal bar) feature type. The FILLCOLOR property is now used (when set otherwise it defaults to normal COLOR) for the BOX, CIRCLE, and OVAL types along with the FILLED type mask. See explain file for details and test_feature_hilite.mm for example usage.
FILE - The COPY/L function now supports propagation of header values (where possible) via a /PROPMASK= switch. See explain file for more details.
- The COPY/L function now supports propagation computed TIME, ABSC (abscissa), and INDEX values. This permits users doing a BLUE to CSV conversion to pass along these computed values to the output file, rather than discarding them.
FNAME - The /FNCASE= switch was added to provide control over FileName case sensitivity similar to the FNCASE= qualifier added.
GCONTROL - PIPEMON (pipe monitor), the list in the Select Pipe (MENU) is filtered to only display PIPEs (previously it incorrectly included files in the RAM table). The selected PIPE is now highlighted in the menu.
GENERATE - The "BUNDLE" (or "BUN" for short form) function generates OSGi bundles for the specified option tree. The /EMBEDJARS switch can be used to control the embedding of the option tree's jar files into the bundle. See explain file for more details.
GENERATE / MAKE - In 3.3.4, users can now add the switches /NOTEST and /NODOCS to exclude adding any /test or /docs directory to the JAR file. This cuts down on the size of the JAR file by approximately 26%. Other files automatically removed from the JAR file as of 3.3.4 bring this size down a total of approximately 35%. See GENERATE or MAKE explain files for more details.
IF - Support added for *absolute* equality checks (in addition to the existing *relative* equality checks) with EQ/T that can be accessed via the /DELTA= switch. See explain file for more details.
KEYWORD - New SVGET/SVSET functions provide a convenient way to extract/insert state-vector keywords using a Type 5000 state-vector file. Supports a variety of state-vector keyword formats including ones used in a number of X-Midas option trees and Platinum files. See explain file for more details.
- New TCGET/TCSET functions provide a convenient way to extract/insert time-code keywords using a file with ICE packet headers. See explain file for more details.
- New LIST/S functions that will list keywords sorted alphabetically. See explain file for more details.
LIST - The LIST support for Drag and Drop was enhanced to allow users to export (via DRAG) Tables instead of XML Strings. See explain file for more details.
LIST2 - Support for Drag and Drop was added to LIST2. Users can now drag and drop data between LIST, LIST2, and PLOT. See explain file for usage and other details.
- The /POLL=n switch was changed to /POLLDATA=n, since /POLL= also refers to the process() loop interval.
MAKE - The "BUNDLE" (or "BUN" for short form) function generates OSGi bundles for the specified option tree. See explain file for more details.
MESSAGE - The "R" can now be append to the SEND function to replace the first matching message (name and from fields) in the message queue with the new message. See explain file for more details.
- Messages can now be sent to commands in the parent/global registry by using "PARENT.<id>" or "GLOBAL.<id>" as the destination. See explain file for more details.
- In 3.3.1: Messages can now be sent to the message handler specified via the /MSGID= switch that is specified when the macro is executed by using THIS.MSGID for the <id> field. e.g. message send this.msgid msg ... See explain file for more details.
NEWRATE - NEWRATE now supports the SYNC file option. See the explain file for details.
OPTION - The "CLASSPATH" reserved word can be used in the <path> argument to find and define option tree in the CLASSPATH for when not using the NeXtMidas NmClassLoader (e.g. Java Web Start, applet, or via nxm.sys.lib.NeXtMidas). See explain file for more details.
- The /FIND=res switch finds an option tree in the CLASSPATH for when not using the NeXtMidas NmClassLoader (e.g. Java Web Start, applet, or via nxm.sys.lib.NeXtMidas). See explain file for more details.
- The /INFO=res switch can be used to display/get option tree information parsed from version.txt/manifest.mf. See explain file for more details.
PATH - The + function (alias for ADD) to add option tree(s) to the front of the path. See explain file for more details.
- The - function (alias for REMOVE) to remove option tree(s) from the path. See explain file for more details.
PEAKPICK - In 3.3.1, the PEAKPICK command was enhanced to enable it to process input files with complex data.
PIPES - In 3.3.2, ability to increase the maximum number of pipe readers (from default of 8) up to max upper limit of 31 using the {MAXOUTLETS=maxNumReaders} qualifier on the pipe. See test_plot_many.mm for an example usage.
PLOT - The PLOT support for Drag and Drop was greatly enhanced, including support for the /DRAGDROP switch and the /DROPDATA message. See explain file for more details.
- In 3.3.1, users can set the Axis labels above the units to a custom String, rather than just the preset list. See the PLOT explain file and nxm/sys/test/test_plot_adjust_labels.mm for sample usage.
- In 3.3.1, users can now add optional switches to the OPENFILE message. Though the args passed in are merged with the PLOT args table and thus applied to the Layers, only /ALL and /NICE are supported explicitly by PLOT itself, as the other arguments can be set before or after the file is opened.
- Several PLOT sub-MENUs has been enhanced. The following MENUS has the current value highlighted:
  • More > Type
  • Readout > dRangeUnits>
  • Query > NextLink (MPlot) > dRangeUnits>
  • (Layers or Features ) > layer/feature > Line > SymbolMenu
  • (Layers or Features ) > layer/feature > Line > SymbolFill
New Line configure menu item FillColor> to set line's fill color.
- In 3.3.2, users can now specify a comma-separated list of URLS of WMS servers when using WMS. If the first URL is not found, then plot will attempt to connect to the next one on the list. See explain file for details.
- In 3.3.3, users can now set AUTOCONNECT to false when using WMS. If Auto Connect is set to false, the plot will not automatically connect to the Map Server. Users may now separately call connect when using WMS. See explain file for details.
- In 3.3.3, The DATEFORMAT switch was added to allow users to set a the format of time displayed on the readout and axis. See explain file for details.
SENDTO - The /REPLACE switch was added to replace the first matching message (name and from fields) in the message queue with the new message. See explain file for more details.
SINKFILE - In 3.3.0, SINKFILE was enhanced with the ability to cut or spawn multiple output files from a single input file, based on size or time. See the SINKFILE explain file for more details.
STATUS - In 3.3.1, STATUS of a BLUE file will now include Duration (similar to recent versions of X-Midas), Sample Rate (Type 1000), Frame Rate (2000), and Azim/Elev/Roll (Type 5000 with RF=TOP).
TABLE - New modifiers on TABLE's LOAD function support reading of OPAL tables. See explain file for more details.
- In 3.4.4, support was added for T:.. times in tables to be coverted to Time objects. Previous behavior was a NPE and before that a "NULL" string.
TIMEX - TIMEX now recognizes ISO 8061 time strings automatically.
TUNER - In 3.3.1, switches were added to TUNER set the SBT keywords (similar to SBTUNER/SBT= in X-Midas) and to compute the delay through the filter. See explain file for more details.
VERSION - The "#REQUIREDOPT:" directive can be added to an option tree's version.txt to specify required option trees (aka dependencies). The /OPTINFO switch can be used to display option tree information parsed from version.txt See explain file for more details.
WAVEFORM - In 3.3.1 the RF=, VRF=, BW=, and DURATION= options were added to make it easier to simulate a signal as would be seen coming out of an A2D or sub-band-tuner. See explain file for more details.
Libraries - Command - The /MSGID= switch now supports the "PARENT.<id>" and "GLOBAL.<id>" syntax permitting the sending of messages to entries in the parent/global registry similar to the way the "XM.<id>" syntax could be used with NeXtOpt.
- Data - new convenience constructors, getNumber/setNumber, setFormatType(char), setFormatMode(char), getFormatTypeChar(), getFormatModeChar() methods. + See API docs for details.
- DataFile - new convenience getDataBuffer(int elements, char type) method so that you don't have to cast char type to a byte. + See API docs for details.
- FileName - Major updates made to FileName to better support mixed-case (or all-upper-case) file names. There is now a global setting to set the default case-sensitivity option (see also ENVIRONMENT) and the new FNCASE= qualifier that can select from the following options: LowerCase (like X-Midas), KeepCase (keep case as-is), AutoCase (smart case correction like NeXtMidas 3.2 and earlier). + See API docs for details.
- FileUtil - The functions for copying a ListFile now support the propagation of header values (where possible), and the propagation of computed TIME, ABSC (abscissa), and INDEX values. + See API docs for details.
- IOResource - implemented the lastModified method for various IOResources: HttpResource, JarResource, RamResource, PipeResource, and TarResource.
- NeXtMidas - new two argument constructor to allow API user to set desired Terminal.
+ Added getShell() and getTerminal()
+ See API docs for details.
- OptionTree - new getInfo(..) method to return a table with the configuration information about requested option tree.
+ Added cleanVersion, parseForVersion, and parseForRequiredOpt methods. + See API docs for details.
- Position / StateVector - Added support for reading and writing numerous "state vector" file types including those with unevenly-sampled state information (prior versions were limited to reading Type 5010 files).
+ Added new getStartTime(), getEndTime(), getCurrentTime() and setCurrentTime(Time) methods to support precision time code.
+ See API docs for details.
- ShellParent - New getTerminal() to interface. See API docs for details.
- Sp3File - New class to support reading of SP3 files which are commonly used to convey GPS satellite state vector information. Combined with the SV2BLUE function in CONVERT this allows GPS satellite state vectors to be extracted from an SP3 file as Midas BLUE Type 5001 state vectors. + See API docs for details.
- Table - nxm.sys.lib.Table now implements java.lang.Iterable interface and Table.Iterator implements java.util.Iterator interface. Table instances can now be used in foreach loop in Java code to get the keys in the table.
+ See API docs for details.
- Terminal - new constructor to allow using a particular InputStream and/or OutputStream (instead of System.in and System.out, respectively).
+ Getter/Setter methods for the input/output stream.
+ See API docs for details.
- Time - support for ISO 8601 time strings added.
+ See API docs for details.
- UrlResource - new IOResource that generically handles reading (input) and writing (output) if supported from any valid URL in JVM. See API docs for details.
- Units - support for PERCENTAGE and PRESSURE_PSI unit codes added.
+ See API docs for details.

Known Third-Party Bugs

The following are known third-party bugs and limitations that may cause problems for NeXtMidas users.
Java - On 2011-February-08, Oracle released a patch to correct Security Alert CVE-2010-4476 (Java Runtime Environment hangs when converting some floating point strings to a binary floating-point number). This vulnerability affects all (non-patched) versions of the Java Development Kit/Java Runtime Environment prior to version 6u24. Please correct this vulnerability on your system by running the Floating Point Updater patch, or, by upgrading to Java 6u24 or later releases.
Java Plug-in - 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 JDK Bugs 8047710 and 8029314 for more information.
JDK 8u20 to 8u31 - The Java Development Kit 8u20 to 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. A fix is planned for 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.
Firefox 22+ - Mozilla Firefox 22+ blocks local file applets from running if the codebase refers to the parent directory. See Mozilla's Same-origin policy for file:// URIs at https://developer.mozilla.org/en-US/docs/Same-origin_policy_for_file:_URIs). See also Mozilla Bug 902375 Firefox 23: The Load of a local java applet (*jar) fails silently at https://bugzilla.mozilla.org/show_bug.cgi?id=902375 where the a Mozilla developer says that "the case where codebases outside of the current directory are blocked is intentional...".
A workaround in Firefox is to set "security.fileuri.strict_origin_policy" preference (in the about:config page), it defaults to true, but can be set to false if the user doesn't want to strictly enforce the same origin policy on file: URIs. This strict_origin_policy preference is available since Gecko 1.9/Firefox 9.
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).
PLOT - There is a rendering problem when PLOT is run from a Linux session inside VirtualPC on Windows XP. This appears to be a problem with graphics drivers in some versions of VirtualPC. We have been unable to duplicate the problem on a stand-alone installation of either Linux or Windows XP.
SOURCEDG - SOURCEDG running on RedHat Enterprise Linux 4+ (RHEL4+) may encounter BindExceptions, and/or SocketTimeoutExceptions, and/or IOExceptions 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 Java 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.

Bugs Fixed

All NeXtMidas bugs and enhancements are tracked using Bugzilla. If you are connected to the Internet and are an authorized NeXtMidas baseline developer, clicking on the Bug number below will provide details related to the bug and a complete list of all changes made to resolve it. 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.4.4 (31 July 2015)
Bug Number GForge DR Description
2782 838874-1 IF FEQ always returns true for two different (valid) JNLP files
2835 839459-1 Help / search (local) applet does not run b/c of same-origin policy in Firefox 24
2836 839460-1 document COTS issue for Java 7u60 and 8 Plug-ins on RHEL 5 for Applets
2839 667202-19 GCONTROL disableItem() affects default value
2844 839461-1 UPDATE: errors with ArrayIndexOutOfBoundsException when trying to add a new command to some user's option tree
2846 840806-1 FILE: cannot open 7.0 or 6.0.10 JNLP files
2849 839864-1 (partial fix) Time: getSoD() & getSoY() rounding results in invalid time & getSoD needlessly losing precision
2853 667210-19 FEATURE: NullPointerException if NAME= and/or TABLE are omitted
2858 843188-1 PlotCanvas: colors not correct for line, circle, or ellipse (regression)
2863 847095-1 JarResource.exists() memory leak
2866 844403-1 StateVector computeMeasurements NEVER executes light-time correction code
2871 844404-1 StateVector.java computeMeasurements does not allow disabling of light-time-correction code
2872 842722-1 MSGLOG/MJText: not displaying last line
2876 843173-1 Table: Regression causes NPE when a Table has a key with a value T:...
2880 846472-1 LayerWMS should support layers with a space in their name (partial fix)
2881 843173-1 Table: Regression causes NPE when a Table has a key with a value T:...
2883 818116-3 Table.loadOpalTable needs to handle a T: as times
2887 851491-1 SHELLGUI: MJText ArrayIndexOutOfBoundsException on text selection after paging
2911 851148-1 LAYER: NullPointerException if NAME= and/or (TABLE) are omitted
2914 851149-1 FEATURE: VBAR and BOX differ by 1 pixel
2919 850517-1 XBC: M$GET_EPOCH logic error in utilitiesf.for
2948 852396-1 MJText/SHELLGUI: ArrayIndexOutOfBoundsException due to array holding screen row to text line information not getting resized

Bugs Fixed in Release 3.4.3 (27 May 2014)
Bug Number GForge DR Description
2566 808736-3 BUILD: Intel 11.1 compiler warnings and 32-bit cross-compiler options in build.props
2783 836577-1 MAKE / BUILD: JDK 8 Integration
2813 836886-1 Add -g to javac build flags to enable debugging features
2812 836739-1 XGEOPLOT: REREAD message incorrectly removes layer
2824 837196-1 DemodNative.c hidden bug in Demod_processLUT(..) method
2826 815934-3 Tuner primitive broken in 3.3.1 (and 3.4.x)
2832 838118-1 TIMEX/Time Broken - no longer accepts format "YYYY-MM-DD::HH:MM:SS"

Bugs Fixed in Release 3.4.2 (28 Feb 2014)
Bug Number GForge DR Description
85 500142-4 TABLE class should catch malformed tables (slight adjustment to original fix)
2756 828316-1 RMIF: serving properties (channels) can cause RMIF to close
2799 830490-1 Changes in JDK 7u45 breaks Webstart properties
2802 832625-1 NXM 3.2.x to 3.4.x integration issues for some users (FEATURE, PANEL, etc.)
2804 834837-1 Shell: saveState/loadState of M.dictionary issue / causes CONFIDENCE to run duplicate test macros
2805 815358-3 ICEPacket: add getTCWSec and getTCFSec
2807 815413-3 XGEOPLOT: btest method is off by one
2809 N/A PLOT: Using EXTPREC Readout not displaying 6 decimal places

Bugs Fixed in Release 3.4.1 (30 Oct 2013)
Bug Number GForge DR Description
2686 821552-1 MidasBean / Command / BaseFile: BaseFile.waitForFile() causes infinite loop when used with MidasBean (adjustment to original fix)
2767 n/a Applet / Web Start: Missing Permissions and Codebase manifest attribute warning from JDK 7u25+
2793 831624-1 QUERY / KeyObject.findMembers(..): unable to query certain methods/fields (regression)
2794 831626-1 KeyObject: setKeys, getKeys, etc. not thread-safe and can cause current thread to lockup

Bugs Fixed in Release 3.4.0 (27 Sep 2013)
Bug Number GForge DR Description
2770 827484-1 NM: Support NM_BOOT_CP_APPEND entries with wild card "*"
2791 n/a MApplet: JDK 7u40 security restriction breaks Applet

Bugs Fixed in Release 3.3.4 (30 Aug 2013)
Bug Number GForge DR Description
2747 827487-1 GENERATE / remove some unnecessary files to reduce nxm-sys.jar download time for Applet / Web Start apps
2749 829511-1 Theme / MidasDisplay: terminates Eclipse Windows Builder (GUI Designer) on RHEL and JDK 7
2757 828138-1 LayerVehicle: Add ability to set opacity / opaqueness of fill color
2759 830471-1 Time.fromJ1950 got broken for case where the total fractional seconds is just barely < 1
2760 828980-1 ENV GET SERVER returns null when running inside SHELLGUI in Applet in 3.3.1
2761 828982-1 ENV GET SERVER returns null in Applet served via HTTPS
2762 829105-1 HELP/BUILD: missing links on Help > Command Index page (HTML) to test macro in generated page
2763 829106-1 running HELP command from Applet causes program to exit
2764 829110-1 HELP/BUILD throws NPE ERROR when $NMROOT/htdocs/api has not been created
2765 829111-1 HELP: sort the generated [OPT] Document Index (html) page
2766 829428-1 Web Start: NPE error when trying to run from local file using Java 7u25
2768 829510-1 XBC build fails when path has mixed case
2769 829577-1 Geodetic view throws exception in console when rotating.
2771 829427-1 DataFile: file trimmers with tilde incorrectly using index mode
2774 829826-1 PLOT: Graphics performance horrendous in Windows 7 using JDK 7.
2775 830436-1 SENDTO: command dictionary entry does not allow for FROM= or QUALS=
2776 830490-1 Change in JDK 7u25 breaks Help Applet search
2777 830285-1 XBC: Issues with Intel Compiler 13
2781 n/a nm make zip and GENERATE JARS should not exclude core* in the zip/jar file it creates

Bugs Fixed in Release 3.3.3 (21 Jun 2013)
Bug Number GForge DR Description
1951 523914-3 Reliable FQDN (hostname)
2595 814925-1 Plot / LayerT5: FillCones option doesn't completely fill cones on the dateline
2670 820707-1 StateVector: Add interpolation options
2699 823524-1 Table should implement java.util.Iterable interface
2735 813145-3 PLOT / LayerShape: Array index out of bounds exception when resizing map
2740 825434-1 PLOT: Axis values wrong when readout=-Scientific
2743 827485-1 PLOT: zoom all the way out with "ZOOMOUT" data=-1 message does not reset zoom level/history
2745 827486-1 DataFile.open(): WarnEmpty flag should skip warning if input is a pipe of zero size
2746 667038-19 MACRO: update Release Notes for change to multi-line Strings
2748 813336-3 PLOT / LayerImage: X bounds incorrectly set for images when using /ALL switch
2750 n/a Duplicate of Bug 2435: Various minor spelling/grammar mistakes found in the user guide and training tutorial.
2751 813523-3 DataFile: need filename in readkeywords warning
2752 813140-3 CONVERT: need a way to keep outer tag in XML2TAB conversion
2753 667033-19 PLOT: does not display YY:MM:DD on readout=+DATESTRING
2754 826920-1 LayerWMS / LayerMap: Allow for connecting and re-connecting outside of setURL()

Bugs Fixed in Release 3.3.2 (3 May 2013)
Bug Number GForge DR Description
42 506638-3 GPanel / MWindow: UnPopped MAP area needs to disappear
664 509104-3 Statevector.java needs to support other types
945 513312-3 PLOT: provide own axis titles for Plot
1342 525388-3 No Inverse FFT command (INVFFT)
1364 517318-3 XBC: need to map ID of 1 to MAIN
2414 n/a HELP: update to Lucene 2.9.4
2532 824202-1 IF: add Absolute Tolerance check for numbers (delta range) for EQ/T
2592 824955-1 StringUtil.textToRegex(..) improperly handles "["
2663 815242-1 DUAL5000: Add DUAL5000 to UCL
2670 820707-1 StateVector: Add interpolation options
2676 821417-1 Need to be able to convert between time-code keywords and ICE packets
2689 821347-1 Sending messages from child to parent
2711 825077-1 PLOT: displays incorrect units in readout for x= and y= when /xmult= and /ymult are set
2714 825078-1 FEATURE: need ability to use different fillColor for BOX, CIRCLE, and OVAL feature types and a VBAR type
2716 824832-1 GPipeMon: Stack trace when trying to display non-piped data
2720 812381-3 PLOT / LayerPoly: ArrayIndexOutOfBounds Exception when switching tabs
2721 825134-1 LayerMulti / LayerScatter: Incorrect plotting of time values
2722 825163-1 PLOT: ZOOM(IN/OUT) messages cannot sync with (UN)ZOOM messages when linking plots
2723 825296-1 ASSERT: Add option for grouping results as in a file
2728 825400-1 GDialog: NullPointerException when using MMB
2729 825401-1 PLOT: Image export dialogue exports file to wrong place
2730 825486-1 Args: getRawArgs() returns wrong value when switch has a quoted string value with a space
2731 825871-1 StringUtil: getClosingFensePos(..) gets into infinite loop
2734 826679-1 PLOT: incorrect AutoMin/AutoMax autoscaling when first frame of data has all zeros
2735 813145-3 PLOT / LayerShape: Array index out of bounds exception when resizing map
2736 813127-3 PLOT / LayerT5: LayerT5.setPoint(..) needlessly calls process()
2737 826869-1 Convert.o2d(Object) should support Boolean
2738 825862-1 OPTION: Incorrect error message
2739 826259-1 CONVERT: Convert Type 1999 files to KML
2741 826824-1 ENVIRONMENT: setting USENATIVE with + (plus) or - (minus) option sets wrong value in ENV.USENATIVE
2742 826833-1 TABLE: Import of OPAL tables

Bugs Fixed in Release 3.3.1 (28 Feb 2013)
Bug Number GForge DR Description
276 824715-1 FIRWIND: has several bugs that degrade accuracy
651 824714-1 FILES: Problem listing files whose names are upper case
664 509104-3 Statevector.java needs to support other types
945 513312-3 PLOT: provide own axis titles for Plot
1562 665126-19 MACRO: incorrect handling of INCLUDE statements
1758 822362-1 HISTORY / SHELLGUI: does not maintain its own history of commands executed
1792 n/a Duplicate of Bug 1534: Add file name qualifier and macro switch to control file name case
2348 n/a Changes for ARM platform (adjustment to original to allow Linux arm to coexist with Linux x86 shared objects)
2376 531274-3 PLOT / LayerKML: Too many open files exception
2414 n/a HELP: update to Lucene 2.4.1
2645 821491-1 GValue needs better PERCENT format options
2650 821549-1 Cant use file trimmers in FCALC
2653 820327-1 QUERY: Broken under JDK 7
2656 821493-1 GWidget: NullPointerException when SwingWidgets is set
2660 820329-1 PEAKPICK: Does not support complex data
2663 815242-1 DUAL5000: Add DUAL5000 to UCL
2676 821417-1 Need to be able to convert between time-code keywords and ICE packets
2686 821552-1 MidasBean / Command / BaseFile: BaseFile.waitForFile() causes infinite loop when used with MidasBean
2688 n/a PYTHON: move unused python intrinsic into it's own option tree
2689 821347-1 Sending messages from child to parent
2690 821797-1 PANEL: running a macro with a panel and /ICON shows a blank frame when user de-iconifys
2692 822115-1 KEYWORD: Add option to list sorted
2694 822114-1 KEYWORD: Permit some keywords in MAIN without warning.
2695 821784-1 IF: The FEXISTS test fails for files in RAM
2696 822145-1 NMPOST: javadocs "errors" for enum when using JDK7
2697 824701-1 NEWRATE: Docs for NEWRATE are inadequate
2698 824704-1 TUNER: Does not handle complex integer data
2700 811594-3 Layer.isEnabled(int) does not work as described
2701 821459-1 LIST2: polling issues
2703 824718-1 Args: Permit null as default value with numeric get
2704 823107-1 FEATURE: type=symbol symbol=Circle does not filled when told to (regression)
2705 823528-1 MAKE/BUILD: need option to specify types of files to build (e.g. Java|Native|Host)
2706 822359-1 SHELLGUI: OpenJDK fonts not monospaced, which causes wrong cursor placement
2707 823641-1 PANEL: Sub-panel displays incorrectly
2708 824712-1 WAVEFORM: Permit entry of RF=, VRF=, BW=
2709 824706-1 STATUS: Missing Azim/Elev/Roll with Type 5000
2710 812116-3 PLOT: Add ability to pass in arguments to OPENFILE message
2712 824455-1 PLOT/MWindow: need option to disable middle mouse button (MMB) to bring up PLOT config MENU
2715 812025-3 PANEL: NPE when polling widgets

Bugs Fixed in Release 3.3.0 (21 Dec 2012)
Bug Number GForge DR Description
85 500142-4 TABLE class should catch malformed tables
98 16118-4 MESSAGES/CONTROLS: need a way to send latest message only
1666 n/a remove unused / unsupported ERMIF and ECONTROL from baseline
1693 815243-1 DPCO: Add Java version of DPCO to DSP option tree
1847 521930-3 PANEL: AWT-based GControls are incompatible with OpenGL
2027 n/a MidasBean: remove unused and deprecated /BEANID switch
2095 789211-1 Table fails to parse if it contains a space after the final }
2120 666108-19 PLOT: Add support for Drag -N- Drop
2453 806505-3 MidasBean: needs a cleanup method
2484 807356-3 Distribute OSGi bundle info with NeXtMidas builds
2507 807490-3 WAVEFORM issues with WHITENOISE output (adjustment to original fix)
2570 812956-1 support Java7 (JDK7)
2574 810003-3 HTTPSERV: AUX served up without directory listing / HServer updates
2616 809772-3 Gcontrol: Need more docs for /FMT= switch, use of MFormat
2618 809946-3 PLOT / MWINDOW / THEME: Plot theme should be able to be independent of global theme
2623 816410-1 PANEL: /LOGGER does not display correctly if defined in setup file
2632 810294-3 LayerT5 Stack Overflow (regression)
2638 810209-3 Following a fresh build ENV.USENATIVE is set wrong (document behavior)
2639 818280-1 LIST2: Deceptive Error Messages
2640 817564-1 SINKFILE: Adding NF & NFN option to match X-Midas NOOP/NFN
2641 810213-3 Gcontrol: incorrect value returned for LABEL
2643 819539-1 PLOT: Vertical axis tic values difficult to read
2645 821491-1 GValue needs better PERCENT format options
2646 819793-1 require Java 6 or higher (drop support for Java 5) in NeXtMidas 3.3.0+
2647 810097-3 CoreIO: Sub-directories in AUX not read properly
2648 820337-1 Support JNLPAppletLauncher (JnlpFile, AppletLauncherGen, update GENERATE, etc.)
2649 820328-1 FileUtil.createFnFilter(..) does not properly support relative paths
2650 821549-1 Cant use file trimmers in FCALC
2651 n/a need NOOP to implement X-Midas SOURCEFILE features like start, duration, and throttle
2652 820335-1 PANEL: /JSETUP= should support JPanel-based GUI
2654 820326-1 MACRO: Error in TextFile's (should be MacroFile's) parsing for multi-line comments
2656 821493-1 GWidget: NullPointerException when SwingWidgets is set
2657 819515-1 FCALC: does not propagate TimeLine (header) for each write()
2658 821703-1 Table serialize / deserialize issues
2659 820325-1 STATISTICS: Support KEY= tags from X-Midas FSTATISTICS
2661 820330-1 Data: Add convenience constructors, getNumber/setNumber
2662 810766-3 PLOT / MPlot: Race condition in formatReadout()
2663 815242-1 DUAL5000: Add DUAL5000 to UCL
2664 820426-1 HPrimitive.checkout() throws NullPointerException when it cannot delete tempFile
2665 820331-1 DataFile: Does not properly set format to "NH" in some cases
2666 820338-1 FILE: COPY/L should have options to propagate header, pass on TIME/ABSC/INDEX values
2667 820333-1 DataFile: readDataTable(..) and getDataTable(..) do not return null at EOF for Type 1000/2000 files
2668 820513-1 PLOT: NPE in MPlot.refresh() when closing then opening files
2669 820674-1 CONVERT: Add option to convert Type 5000 reference frame
2671 820675-1 StateVector: setKey(..) does not properly handle VE,VN,VU and AE,AN,AU
2672 821937-1 PATH: add + and - functions
2673 820780-1 Time: Needs *FULL* support for ISO 8601
2674 820779-1 Time: loss of precision with addSec(..)
2676 n/a Need to be able to convert between time-code keywords and ICE packets
2677 821416-1 Units.java omits PERCENTAGE and PRESSURE_PSI
2678 821350-1 DataFile: Equality checks fail to check Type 5000 quadwords
2679 820876-1 NEXTOPT: backgrounded nm commands use 100% cpu after nm/off kills JVM
2680 820648-1 Parser: Ambiguous matches do not produce a warning or notice to user
2681 820248-1 GControl: Suppress updates of title bar when mouse hovers over GC
2682 821305-1 GENERATE: Jar Signer certificate expiring
2684 821386-1 RMIF: setting message handler via setMessageHandler on Command does not update Rmif library's msgHandler
2688 n/a PYTHON: move unused python intrinsic into it's own option tree
2689 821347-1 Sending messages from child to parent
2690 821797-1 PANEL: running a macro with a panel and /ICON shows a blank frame when user de-iconifys
2691 821943-1 LIST2: NPE when doing ctrl-p to pop out / push back into panel
2693 n/a HTTPGET;UCL: httpgetdata connection: close request property for GET interferes with POST request

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
IF Numeric comparison assumes scalars without warning. Use EQ/? (see IF explain file for details). 2.7.0
swing-layout-1.0.jar Use of org.jdesktop.layout.GroupLayout and related Swing Layout classes. Use standard Java 6 javax.swing.GroupLayout (they are the same, just in a different package). 3.3.0
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
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)