NeXtMidas 2.7.4 Release Notes

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

NeXtMidas SYS Option Tree Tested on:
Platform OS Version Java Version(1) Native
Compiler
Web Browser
(WebStart/Applet)
Linux (x86) RedHat Enterprise 3u9 (WS) 5.0_12
6.0_14
gcc 3.2.3 Firefox 2.0 (Java 6 plug-in)
Linux (x86_64) RedHat Enterprise 4u6 (ES) 5.0_15
6.0_12 (64-bit)(2)
gcc 3.4.6
Intel 9.1.052(3)
n/a
Linux (x86_64) RedHat Enterprise 5u3
RedHat Enterprise 5u4
5.0_20
6.0_16
6.0_17 (64-bit)(2)
gcc 4.1.2
Intel 9.1.053(3)
Intel 10.1.025(3,4)
Firefox 3.5.5 (Java 6 32-bit plug-in)(5)
Sun/SPARC Solaris 8 5.0_12 (32-bit) gcc 3.4.2 Mozilla 1.4
Sun/SPARC Solaris 10 6.0_18 (32-bit) gcc 3.4.6 Firefox 3.5.5
Windows (x86) Windows XP SP3 6.0_13 MinGW/gcc 3.4.5 Firefox 3.5.6 (Java 6 plug-in)
Internet Explorer 8.0.6001 (Java 6 plug-in)
(1) All code was compiled with "-source 5" and "-target 5" specified (this is the default). All tests use the Java VM from Sun Microsystems (see http://java.sun.com/).
(2) Not all versions of Java support 64-bit systems. In the case of x86_64 systems only the most recent updates to Java 5 or Java 6 will work. Please see http://java.sun.com/j2se/1.5.0/system-configurations.html for more details.
(3) $NMROOT/nxm/sys/cfg/build.props was modified to point to the Intel C/C++ compiler rather than the GNU C Compiler.
(4) $NMROOT/nxm/sys/cfg/build.props was modified to reduce optimization from -O3 to -01 in the native.lin.cflags property for the Intel C/C++ 10.x/11.x compiler.
(5) As of Java 6.0 update 18, there are no 64-bit Java plug-in for Linux 64-bit and Solaris 64-bit. Sun Microsystems suggests using the 32-bit version for Java applet support.

Do NOT install the 32-bit version of Java on a 64-bit
Linux system, it will not work correctly!!!

XBC Tested on:
(XBC - Allows running of X-Midas Fortran/C++ primitives in NeXtMidas)
X-Midas
Mode
Platform OS Version Java Version C/C++ Compiler Fortran Compiler
"Classic" Linux (x86) RedHat Enterprise 3u9 (WS) 6.0_14 gcc 3.2.3 Intel 9.1.051
"32Bit" Linux (x86) RedHat Enterprise 3u9 (WS) 5.0_12
6.0_14
gcc 3.2.3 Intel 9.1.051
"32Bit" Linux (x86) RedHat Enterprise 3u9 (ES) 5.0_05
6.0_12
gcc 3.2.3 PGF 6.0.5
"64Bit" Linux (x86_64) RedHat Enterprise 4u6 (ES) 5.0_15
6.0_12 (64-bit) (2)
gcc 3.4.6 Intel 9.1.052(1)
Intel 10.1.025(1)
"64Bit" Linux (x86_64) RedHat Enterprise 5u4 (WS) 6.0_17 (64-bit) gcc 4.1.2
Intel 9.1.052(3)
Intel 9.1.052(1)
(1) Due to limitations in the Intel 9/10/11.x compiler on (x86_64) it is necessary to disable static linking of the object files on 64-bit machines. See "Known Third-Party Bugs" (below) for details.
(2) Not all versions of Java support 64-bit systems. In the case of x86_64 systems only the most recent updates to Java 5 or Java 6 will work. Please see http://java.sun.com/j2se/1.5.0/system-configurations.html for more details.
(3) $NMROOT/nxm/sys/cfg/build.props was modified to point to the Intel C/C++ compiler rather than the GNU C Compiler.

Important Note Regarding the Portland Group Fortran Compiler: Early versions of the Portland Group Fortran77 6.x (PGF 6.x) compiler does incorrect optimization that prevents the compiled code from executing correctly. Currently, the Midas community recommends using either PGF 5.1, the latest patch release of the PGF 6.0.x or switching to the Intel compilers.
PGF appears to not work correctly correctly in a multi-threaded application. Care must be taken to synchronize access to the Fortran code, otherwise random crashes or behavior may surface unexpectedly.

NeXtOpt Tested on:
(NeXtOpt - NeXtMidas as an option tree for X-Midas)
X-Midas
Version
Platform OS Version Java Version C/C++ Compiler Fortran Compiler
4.4.4 Linux (x86) RedHat Enterprise 3u9 (WS) 6.0_14 gcc 3.2.3 Intel 9.1.051
4.4.5 Linux (x86) RedHat Enterprise 3u9 (WS) 6.0_14 gcc 3.2.3 Intel 9.1.051
Promula 6.14
4.6.0 Linux (x86) RedHat Enterprise 3u9 (ES) 6.0_12 gcc 3.2.3 PGF 6.0.5
4.6.1 Linux (x86) RedHat Enterprise 3u9 (WS) 5.0_12 gcc 3.2.3 Intel 9.1.051
4.6.1 Linux (x86_64) RedHat Enterprise 4u6 (ES) 6.0_12 gcc 3.4.6 Intel 10.0.026
4.6.2 Linux (x86_64) RedHat Enterprise 5u4 (WS) 6.0_17 gcc 4.1.2 PGF 8.0.4
Important Note Regarding the Portland Group (PGI) Fortran Compiler: Early versions of the Portland Group Fortran77 6.x (PGF 6.x) compiler does incorrect optimization that prevents the compiled code from executing correctly. Currently, the Midas community recommends using either PGF 5.1, the latest patch release of the PGF 6.0.x or switching to the Intel compilers.
PGF appears to not work correctly correctly in a multi-threaded application. Care must be taken to synchronize access to the Fortran code, otherwise random crashes or behavior may surface unexpectedly.

Online Documentation

Java 5 Migration

What Might Break (Changes in Behavior)

Args - In NeXtMidas 2.7.0, nxm.sys.lib.Args.getTable(String name) (i.e. MA.getTable(String name)) returns null if input parameter is an invalid table (e.g. some random String). As of NeXtMidas 2.7.1, MA.getTable(String name) now throws a MidasException when the input is an invalid table. An INVALID Table input argument is one that does NOT resolve to a Table. It can still be null (when input argument is not specified). Use MA.getTable(String name, Table default) if previous behavior is desired. For more details see Bug 1856 "Update MA.getTable(String) to ERROR if input is an invalid Table".
BUILD - In NeXtMidas 2.6.0, when using the Intel compiler suite (C/C++ and/or Fortran), warnings where inadvertently suppressed via the "-w" flag specified in build.props. As of NeXtMidas 2.7.0, the "-w" flag have been removed from the Intel compilers properties ifc.comp, ifc.link, ifort.comp, and ifort.link in build.props. The baseline have been updated to build without any of the Intel compiler warnings. If an option tree can has too many warnings, their option tree may not build. It is highly recommended that user's investigate their option tree's compile/link warnings and make appropriate code changes.
CONVERT - In NeXtMidas 2.7.2, when using the FSTRUCT2JAVA conversion, it always generated C code and declares an "extern structure variableName;", which causes X-Midas 4.6.x+ with Intel 11.x 64-bit machine patch to fail since the patch added the "volatile" specifier to the MCOMMON structure causing NeXtOpt to not build. As of NeXtMidas 2.7.3, the "extern structure variableName" line is no longer generated in the C code. Workaround is to declare the "extern structure variableName" in a header file and include it via the /include= switch to CONVERT. For more details see Bug 2001 " NEXTOPT: cannot get nextopt to build cleanly in XMidas".
DataFile - In NeXtMidas 2.6.x, DataFile.getDataTable(double offset) returned an empty Table when reading a record beyond or the end of the file (EOF). As of NeXtMidas 2.7.0, a null is returned instead. User's who would like a get back partial sub-records when reading at near the end of the file should use DataFile.readDataTable(Table tbl) instead.
- "Nibble and Packed Data" In NeXtMidas 2.7.3, it was discovered that incorrect byte rounding was causing the readout of record-based sub-byte data to be incorrect. This was fixed, but users who were used to the old (incorrect) data may notice a change. See Bug 1988 for details.
File Handlers - In NeXtMidas 2.6.x, unknown file types defaulted to using TextFile, even when they may be binary data. As of NeXtMidas 2.7.0, unknown file types now default to BaseFile (raw binary data).
File Name Handling - In NeXtMidas 2.7.0, when a filename is given without extension, the CoreIO.findResource(..) library always looks for a local file with a .prm then a .tmp extension. As of NeXtMidas 2.7.1, if the filename without extension matches an existing file in the read AUX list, then it is returned. See Bug 1584 "IF fileWithNoExtension FEXISTS does not find existing file" for more details.
It is highly recommended to use file names with extensions since it matches the software industry and is more explicit. It is anticipated that in the next beta series (2.9.x) which becomes the NeXtMidas 3.0.0 release, file names will be taken as entered when working with non Midas (BLUE) files.
FFT - In NeXtMidas 2.7.0 and prior, FFT defaults to packing the real part of the nyquist bin into the always zero imaginary component of the DC bin. As of NeXtMidas 2.7.1, the /PACK switch as added for Bug 1853 "FFT pack mode default" and the default is now set to UNPACK for single frame output modes (e.g. /1D) or ZERO for multiple frame output modes to be more consistent with X-Midas's MFFT, UBIQUITOUS, and SPECTRA commands. Use the /pack=DC switch to obtain the old packing mode. See explain file for more info.
  - In NeXtMidas 2.7.3, FFT added the /PARTIAL switch to address Bug 980 "no FFT output" which changed the default to NOT output partial frames. As of NeXtMidas 2.7.4, the fix to Bug 980 have been adjusted to use a smarter default of /PARTIAL=START to better current FFT usage. Note that SPECTRA defaults to /PARTIAL=NONE for consistency with X-Midas. See the FFT and SPECTRA explain files for more info.
Jar Files - The netscape.jar and OpenMidas.jar files have not been used by SYS for some time and have been removed. Anyone with option trees that used either of these JAR files can copy them from the NeXtMidas 2.6.x release and include them with their own option tree.
LayerT5 - In NeXtMidas 2.6.x, the ConeFlagVert flag in LayerT5 resulted in cones drawn on the surface of the Earth, not perpendicular to the center of the cone as documented.
LayerWMS - In NeXtMidas 2.6.x, simply adding or removing a layer using "+<layer>" or "-<layer>" would cause a reordering of the layers. This could result in cases where disabling a layer with "-MyLayer" and then immediately re-enabling it by with "+MyLayer" could result in a reordering. This has been changes such that "+<layer>", "-<layer>" or (newly added) "~<layer>" do not alter the layer ordering.
Line/Symbol - In NeXtMidas 2.7.0, the directionality of a symbol when set by setSymbolHeading(..) or setSymbolAngle(..) was inconsistent. In addition two of the symbols (AERO and ARROW) were oriented LEFT while the rest were oriented UP. Line and Symbol were changed in NeXtMidas 2.7.1 so that all symbols have the same direction and so that setSymbolHeading(..) is consistent. This results in minor changes for users of setSymbolAngle(..) and users who used setSymbolHeading(..) with one of the triangle symbols. Users who are using setSymbolHeading(..) with AERO or ARROW should not see any changes.
List / GridSheet - In NeXtMidas 2.7.0, the list primitive used a non-SWING GridSheet. As of NeXtMidas 2.7.1, GridSheet has been converted to SWING to allow for SWING pop-ups to display and for better graphical cohesion when used in conjunction with other SWING elements. Users may notice certain effects (such as with Z-order) due to the fact that GridSheet is no longer a heavy-weight component.
  - [Exiting] In NeXtMidas 2.7.3, LIST2 was changed so that a LIST2 will now exit if you hit the ENTER key will the outer window has focus (similar to plot). For more details, see Bug 1592 "LIST2: display does not close when you hit ENTER".
MPanel - In NeXtMidas 2.7.0, SWING components on a non-SWING MPanel were resized to take up the entire panel. As of NeXtMidas 2.7.1, this no longer occurs, since that behavior was interfering with the new SWING GWidgets when they were placed on MPanels. There is no anticipated impact.
MESSAGE (NeXtOpt) - In NeXtMidas 2.7.0, NeXtOpt messages from X-Midas used a String for the FROM and TO fields. This is inconsistent with most NeXtMidas messages that use these fields to store references to the applicable MessageHandler. Since NeXtMidas 2.7.1 the FID (FromID) and TID (ToID) fields hold the applicable "XM.<id>" string while the TO and FROM hold MessageHandler references that can be used when sending messages back to X-Midas.
RMIF - In NeXtMidas 2.7.2, the RMIF host primitive (Fortran) populates the 'addr' field of messages it sends to the macro with a hexadecimal string like "0X588000020100007F" for the remote host IPv4 address and port (which is in network byte order) and extremely difficult to read. As of NeXtMidas 2.7.3, the 'addr' field is now populated with a human readable IPv4_address:port format string (e.g. "127.0.0.1:32856"). For more details see Bug 1917 "RMIF: (FORTRAN version) using IPADDR2HEX is bad".
Servlet Option Tree - The Servlet option tree have not been used for some time and have been removed. Anyone needing this option tree can copy them from the NeXtMidas 2.6.x release.
Shell/Macro - In NeXtMidas 2.6.x, the shell/macro might not wait for the primitive's open() method to complete in some cases where the primitive's open() took a long time. This affected any primitives in a PIPE section or run with the /BG switch. As of NeXtMidas 2.7.0, the shell/macro now waits for the primitive's open() to complete before starting the next primitive.
TextFile - In NeXtMidas 2.6.x, the default file handler for unknown file types was TextFile. This had the potential to cause significant problems if an unknown binary file was encountered. As of NeXtMidas 2.7.0 the default file handler for unknown file types is BaseFile (i.e. raw binary).
Thin - In NeXtMidas 2.7.3, the Thin primitive was fixed so that it no longer creates an output file larger than the input file if the output file is specified to have more elements than the input file.
TIMEX - In NeXtMidas 2.6.x, converting a non-scalar Data object (e.g. (1,0.1)) to a Time object via Args.getTime(..) or Time.toTime(..) simply took the first value and assumed that represented the time. Since NeXtMidas 2.7.0, complex values are assumed to specify whole and fractional seconds (e.g. (<wsec>,<fsec>)) while scalars are assumed to represent seconds (whole+fractional). All other types (e.g. "VD") are not supported and will produce deprecation warnings.
  - In NeXtMidas 2.6.0, the GHA values were computed incorrectly, both for output and for storage in the Quadwords of a Type 5000 file. This computation was fixed in the NeXtMidas 2.7.0 release. NeXtMidas will check Type 5000 files generated by older versions of NeXtMidas and will issue a warning in cases where the GHA value appears incorrect.
  - In NeXtMidas 2.6.0, fractional seconds specified in the whole seconds (wsec) and integral seconds specified in the fractional seconds (fsec) are discarded. As of NeXtMidas 2.7.0, the integral parts and fractional seconds are both used and normalized to either the whole seconds (wsec) or fractional seconds (fsec) as appropriate.
PLOT - [Axis and Readout] In NeXtMidas 2.7.1, the Axis and Readout could be set programmatically to their defaults by passing in the zero integer (e.g. int 0). This was not documented behavior and setting to '0' (zero) was actually intended to clear values, not set to defaults. NeXtMidas 2.7.2 correctly clears these values when set to '0'. Since the previous behavior was not documented, it is not expected to impact users.
  - [Readout: dRange] In NeXtMidas 2.6.0, the default units displayed in the plot readout for DMS was nautical miles. As of NeXtMidas 2.7.1, the default units displayed is now meters. To display in nautical miles, set PLOT parameter DRANGEUNITS=NMI. For more details, see Bug 910 "PLOT Distance readout in meters vs nmi option (when in DMS)".
  - [Bounds] In NeXtMidas 2.7.3., plot was changed to keep track of user interaction with regards to setting the outer bounds or viewable window bounds. This was done to prevent a race condition caused by a user modifying the bounds before the plot was done opening (or had drawn once). For more details, see Bug 1520 "Can't set plot options from java".
  - [ZOOM and Keyboard shortcuts] In NeXtMidas 2.7.3., plot was changed to keep mimic mainstream mapping software wrt to panning, ZOOMs and keyboard shortcuts. Certain keys (arrow keys, Page Up, Page Down, Home, End) now ZOOM or pan. These keys can be re-mapped or disabled. For more details, see Bug 1930 "PLOT: Keyboard & mouse shortcut support".
SWING GWidgets - In NeXtMidas 2.7.0, all GWidgets were drawn on non-SWING panels. As of NeXtMidas 2.7.1, this is still the default but users now have the option to draw GWidgets on SWING panels, through the use of the new environment graphics theme options SWINGWIDGETS (for control panel GWidgets) and SWINGPOPUPS (for popups). Users are cautioned that realtime plots do not draw using the SWING thread, therefore these Plots will overwrite any SWING widget on top of the plot (such as a legend). If SWING widgets are desired for your plots, the environment graphics theme REALTIME should be disabled.
SWING UI Manager - In NeXtMidas 2.7.3, the default Swing UI Manager settings for scrollbar width and color were changed. These can also now be changed to whatever the user wishes. For more details, see BUG 1953 "Allow macro access to Swing UI manager".
Statistics - In NeXtMidas 2.7.2, the statistics command was altered so that if a user wishes to do piped data in pieces, he must now use the /piecewise switch. This was done for consistency with X-Midas.
Table - In NeXtMidas 2.7.0. It is possible to remove a key from a READONLY Table (e.g. ENV, OPT, etc.) without the FORCE flag even though a warning is display saying that the FORCE flag must be set. As of NeXtMidas 2.7.1, to remove a key from a READONLY Table use REMOVE/FORCE or the Table.FORCE flag has to be set in the attr (int mask) parameter for the the following methods: remove(String key, int attr), putx(String key, Object obj, int attr), and the clear(int attr) methods.
Text Fields - In NeXtMidas 2.7.0, classes utilizing text fields, text boxes, etc used the MText, MTextArea and MTextField libraries, which were based on non-SWING Panels, TextAreas and TextFields. As of NeXtMidas 2.7.1, these libraries have been deprecated and any existing baseline code which used them now uses the SWING equivalent, (MJText, MJTextArea, and MJTextField). There should be no observable difference, unless users have an application that relied on old the non-SWING behaviour.
WAVEFORM - In NeXtMidas 2.7.0. The default shape was a CoSine. As of NeXtMidas 2.7.1, this has been changed to Sine.

New Features Added

Commands - BUILD - Now keeps native (JNI) headers around after build so that other native code depending on those headers can compile without rebuilding the JNI headers or specifying the /keep flag which keeps many other unwanted intermediate files (e.g. *.o) around.
  - CALCULATOR/FCALCULATOR - Added the CEIL and FACTORIAL operators. See explain file more details.
  - DEBUG - Added the SuperTrace function to show source code along with stack traces. See explain file more details.
  - HTTPGET;UCL - Now have the ability to do one-shot mode with timeout, result label, optional post data, and URL on the the command line. Support for receiving messages to submit HTTP GET/POST requests was also added. A thread pool option is also available to submit multiple HTTP requests concurrently so that it does not block the current thread when an HTTP_REQUEST message is received. See explain file more details.
  - OPTION - /DELETE switch to logically remove defined option trees.
  - PATH - Added PUT function to only ADD an option if it is not already there.
DATABASE - NMDB - New command in the DATABASE option tree to provide an easy interface to JDBC supported databases (e.g. Oracle, MySQL, etc.).
Documentation - ECLIPSE - new Eclipse configuration setup section for NeXtMidas under the User's Guide -> Third-Party Compatibility.
Environment Graphics - SWINGWIDGETS - Environment graphics Theme option to display GWidgets (i.e. Gcontrols) on SWING panels.
  - SWINGPOPUPS - Environment graphics Theme option to display GWidget popup menus on SWING panels.
  - SWINGDB - Environment graphics Theme option to enable SWING Double Buffering on all displayed SWING objects. Note: will not effect Plots when REALTIME Theme is set. LayerMulti plots may not support double-buffering correctly when in paging mode.
  - SWING UI Manager - Users can now access many of the Swing UI manager objects from the Macro Language.
FEATURE - An Image or Icon (jpeg, png, ico, etc.) can used as a Symbol Feature.
HTTPSERV - Can listen on any free port by using port zero and supports HTTP POST requests. A new writeMidasFile method was added to HPage to allow HTTPSERV to quickly be adapted for returning a Midas file as its response to a request.
  - Option to alias or serve out web server root (e.g. "/") and have it handled by macro via /msgid= and /mname="/" switches. See explain file more details and $NMROOT/nxm/sys/test/test_httpserv.mm for an example.
  - The Date (server date/time) and Last-Modified HTTP (file date/time) headers are returned for files that it serves to allow HTTP clients to cache content that are infrequently changed (improves server and client performance).
  - When using custom handler via /msgid= and /mname= switch, the nxm.sys.net.HPage set in the SOCKET key of the message DATA object has the client's requested URI. See explain file more details.
File Support - Args - Now has a factory for file handlers via a new getFile(..) method that allows the type to be specified. This will allow the following in your primitive:
              ListFile in = MA.getFile("IN", ListFile.class);
              CsvFile out = MA.getFile("OUT", CsvFile.class);
  - CsvFile - Can now add customer headers to a CSV file.
  - DataFile - Added support for long subrecord names.
  - DATALIST - Now prints a hexdump-compatible format (HEX + ASCII) for unknown file types or files with the {FG=RAW} qualifier.
List/List2/gridSheet - List2 now exits when the List2 main window has focus and the ENTER key is pressed.
  - List2 now properly displays sub-byte data (Nibble or Packed Bits)
Macro/Shell Enhancements - Macro now errors out with helpful error message if the logical test case is missing for an IF, ELSEIF, or WHILE statement or when user specifies the invalid "ELSE IF" (with a space).
  - IF - Added additional logical tests.
  FEQ/T Compares DataFile file equality with a tolerance (like EQT).
  EQ/S Makes sure both have the same number of elements.
  EQ/B Use a binary data comparison.
  EQ/T Numeric A is equal to B within tolerance.
  EQ/M Compare the magnitude of the values of each atom.
  EQ/V Compare each value in an atom one-by-one.
  NE/? Same as NEQ/? where ? is any of the above modifiers.

Added support for parenthesis in IF expressions.
See the IF example file for more details.
  - optstart.mm - If an optstart.mm exists in the cfg area of an option tree, when that option tree is added to the path, its optstart.mm macro will be executed. This allows for option trees to do configuration, notification, etc.
  - RESULTS - Has better handling of deeper dot "." levels on Objects when inspecting objects using KeyObject, e.g. RESULTS x FILE(sv1).getDataTable(1).POS
  - SEDIT - Added JOIN function to complement SPLIT function.
  - TIMEX - Now supports specifying whole and fractional seconds as a "complex" value to maintain sub-microsecond precision. For example:
nM> timex (1.854534414E9,0.11199999999999999)
Time = 2008:10:07::12:26:54.112
Note that this same syntax is supported by the MA.getTime(..) calls so that any primitive that takes in a time value can make use of this.
  - MSGDEBUG - Added /MSGDEBUG=NAME|INFO|DATA|FROM|TO|FID|TID switch to display configurable information re: Messages sent and received.
  - MSGID - Added default /MSGID implementation for any Command (Intrinsic, Primitives, etc.). See Bug 1387 "Default /MSGID implementation requested" for more details.
NeXtOpt - Added support for 64-bit linux.
  - Added support for X-Midas 4.6.0 using the default classic piping system (dynamic pipes and other new features in X-Midas 4.6.0 are not supported yet). There is a BETA support for XMValue.
  - Added support for XM. syntax for all commands, not just MESSAGE and MessageQueue.
PANEL - Using the /JSETUP switch, user can override how widgets are handled in WidgetWrapper. This gives users the freedom to customize the interaction between their widgets and the macro language. See nxm.sys.inc.Widget for details.
  - THEME: added separate control of widget title color
  - Any exception thrown during the PANEL's process() method is now caught and will no longer crash the PANEL (i.e. any graphical macros).
  - Corrupt .mmp files, PANEL will no longer die with an unfriendly error message. Instead, it will print out a user-friendly warning and then just use the default PANEL setup.
  - GControl xVals with the /SLIDER switch now have the option to not create a message until the slider stops moving.
  - Sub-Panels as of 2.7.3., can attach sub-macro panels via the config popup menu.
PLOT - ALL - As of NeXtMidas 2.7.3., users can use additional mouse and keyboard shortcuts to ZOOM and PAN.
  - Feature menu - added "DeleteAll" menu item to PLOT - FEATURES menu to remove all features on the PLOT.
  - HoldRefresh - option mask or MESSAGE to PLOT to hold refreshing/painting FEATURES and/or LAYERS. See PLOT and/or FEATURE explain file for more details.
  - Layer2D - In NeXtMidas 2.7.3., added utility to create images (PNG,JPG,GIF) from type 2000 files.
  - LayerGeo - Grid Size for X and Y direction are now adjustable via the GridSizeX and GridSizeY properties either on LayerGeo's creation or dynamically when running on a live plot. See test_plot_layergeo.mm for an example.
  - LayerKML - Supports plotting of basic KML files. As of NeXtMidas 2.7.1, added support for polling of network resources, color blending of images/icons, placement of labels around points. See PLOT explain files for more details. As of 2.7.3., supports use if local files in URL hrefs.
  - LayerMulti2D - Allows plotting of static type 2000 files as multiple line traces (similar to xplot with a type 2000 file). For now, users of this functionality will need to add the "{LAYER={LT="Multi2d"}}" qualifier to the end of the Type 2000 file they wish to plot in this manner.
  - LayerShape - Can control brightness, contrast, and opacity.
  - LayerWMS - Add ability to convert maps and images to greyscale.
  - X-Cut - Add ability to do an X-Cut when user presses the 'X' key on a raster PLOT to launch a line PLOT of the values of that row.
POPUP - The default max character width (per line) of the text in a popup message is now 80 characters. This was doen to prevent very long text messages from being wider tan the screen. Users can also now change this width using the switch /POPWIDTH.
TABLE - Numerous Table and KeyVector performance increases.
  - Table now allows using any Java Collections as the backing store.
XBC - Numerous X-Midas Backwards Compatibility stability and enhancements including: BETA support for primitives.cfg to allow allow user to specify compile and link flags for whole option tree or per primitive command. Updated instructions in BUILD explain file on how to build libraries and link external libraries using *.[c,cpp,f]lib files and/or primitives.cfg.
  - Added BETA support for X-Midas C/C++ host primitives within XBC.
  - Added support for following API: M$ADDT6SUBREC, M$BYTES_REQD (XM44 API), M$FILENAME_IS_PIPE (XM46 API), M$GSUB, M$GSUBL, M$SUBS, and M$SUBSL.
  - M$TPICK now supports wsec|fsec input.
  - Add the following new commands: CONCATENATE, CONTROL, DETECT, ENDCONTROLS, FANIN, FANOUT, MFFT, MULTIPLY, NORMALIZE, RQFSHIFT, SINCOSINE, STARTCONTROLS
Libraries - Javadocs - Added support for @classification at all levels (class, method, fields).
- Message - Updated toString() to default to printing out more useful message info, e.g. name, info, fid, and tid. Added toString(String list) and toString(int maskList) to allow additional user customization (e.g. to add DATA to the output).
  - StateVector - Added Interpolation using a Cubic Hermite Spline algorithm. Also added copy() methods to Position and StateVector that will make a copy of the values in the object (excluding any file references).
  - StringUtil - new ltrim() and rtrim() methods to trim leading (left trim) or trailing (right trim) white spaces (spaces, tabs, newlines, carriage returns).
  - Transform - New eci2ecr (eci2ecef) and ecr2eci (ecef2eci) coordinate conversion.
ShellGUI - 2.7.4 added the switch /ADDPLUS [DEF=TRUE]. Setting this to FALSE will disable the adding of the "+" at the end of wrapped lines.

Known Third-Party Bugs

The following are known third-party bugs and limitations that may cause problems for NeXtMidas users.
GCONTROL - Can not see cursor or highlighted text in text-entry widgets when using Java 5.0 on Linux (Java Bug 6287895). This is fixed in Java 6.0, please upgrade to Java 6.0 to avoid this issue.
OS - There is a known Java bug (4052517) that prevents OS commands from being executed in Unix when the permissions are 750 and the user's default group does not match the group of the command. The result is either a "not found" or a "cannot execute" error. This bug is fixed in Java 6. (This bug can cause the NeXtMidas build to fail under Java 5 or Java 1.4.2 when gcc does not have 755 permissions.)
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 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 - There is a known Java bug related to garbage collection (Java Bug 6268279 and related bugs) that can cause a core dump when making extremely frequent M$... calls from a host primitive (typically seen if polling a results parameter with little or no pause between calls). Upgrade to Java 5.0 to avoid this.
  - 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, remove the "-i-static" flag from "ifort.comp" and "ifort.link" in $NMROOT/nxm/sys/cfg/build.props before building on a 64-bit platform with the Intel 9.1/10.x/11.x compilers. With this flag disabled, users will need to run with the LD_LIBRARY_PATH set to include the Intel libraries.
  - When using the Intel C/C++ 9.x/10.x/11.x to build the FANOUT C++ HOST primitive the compile fails with the following error message: "(0): internal error: 0_1561
... compilation aborted for ...nxm/xbc/host/fanout.cc (code 4). ". This is fixed by the Intel C++ 11.1 (update 3) version. See Intel issue DPD200138828 at http://software.intel.com/en-us/articles/intel-professional-edition-compilers-111-fixes-list/ If you do NOT need the FANOUT primitive, then you can continue to use the XBC as is or switch to gcc or the Intel C++ 11.1 update 3 or later compilers.
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

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.
  - May need to use the /MOD switch when opening large files.
  - Type 2000 files with large frame size may not load properly.
  - CLICKACTION={COL=...} does not work properly (Bug 1352).
   
NeXtOpt - Changes in X-Midas 4.5.x prevent NeXtOpt from running.
  - 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.
  - The qmessages.tbl created for use with NeXtOpt does not include comments. This is a workaround for Bug 1430 that will be fixed in the 2.7.0 release.
   
PLOT - A PLOT of a pipe on a hidden tab may discard data from the pipe while the tab is hidden (similar to use of the /NICE= switch).
  - Timecode readout for large Type 2000 may give t=00:00:00.
   
XBC - XBC does not support running two copies of the same command simultaneously.
  - The messages.tbl created for use with XBC does not include comments. This is a workaround for Bug 1430 that will be fixed in the 2.7.0 release.

Bugs Fixed

All NeXtMidas bugs and enhancements are tracked using Bugzilla. If you are connected to the Internet 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 appear only in pre-release snapshots of NeXtMidas (not publicly available).


Bugs Fixed in Release 2.7.4 (01 Mar 2010)
Bug Number GForge DR Description
980 762616-1 no fft output
1463 517958-3 WEBSTART: include does not find files without extensions
1738 786147-1 PLOT: Old SYMBOLs occasionally not cleared out when drawing new ones
1755 786156-1 DEBUG: Add "SuperTrace" option to DEBUG
1878 780214-1 PLOT: time-based features inaccurately positioned after zooms
1916 523299-3 DGNETSEND: wraps sequence numbers at 32767
1969 785659-1 SINKDG: dgnetsend library does not support unicast addresses
2003 524860-3 GCONTROL DIALOGs with GTEXT control do not size correctly
2008 524964-3 FEATURE: need to be able to control the text position
2023 525223-3 PATH: Add PUT function
2030 525361-3 can not use color string returned from POPUP color
2035 525455-3 PLOT /FEATURE / LAYER2D: getTimeAt in Feature.draw() not adjusting for offset.
2036 525482-3 FEATURE: must refresh/resize plot to remove a feature
2037 787964-1 MWindow/MidasDisplay: Mouse position is off
2038 666015-19 PLOT/FEATURE/VIEW: Cannot get a pixel loc from a time-based Abscissa Start
2039 525526-3 NMD: Fails with an option tree named "TOOLS"
2040 525507-3 Not a Bug: Can not control scrollbar width in Web Start
2041 525523-3 Need a remove all features items on PLOT FEATURES menu
2043 788070-1 ENVIRONMENT show props display in console while in SHELLGUI
2046 525539-3 DATAFILE: getSize() returns size in elements, not bytes
2047 525554-3 MFormat.convertFortranPattern(..) fails for "I4"
2049 788376-1 PLOT: Remembered User Bounds Changes adversely effect bounds after restarts
2051 525606-3 SOURCESPEEXAUDIO and SINKSPEEXAUDIO missing explain files
2053 525616-3 CONFIDENCE: Fails if write aux set to RAM
2054 525618-3 UNITTEST: buildOptionTestSuite does not handle paths starting with "file:"
2055 525641-3 NMDB: Valid SQL does not work (ROUND)
2056 788377-1 SHELL/MIDASBEAN/OTHER: Thread race condition with EDT
2057 788323-1 LIST2: Allow visibility of ScrollBar to bet set by user
2061 525663-3 UIMANAGER: Scrollbar too thin
2065 788795-1 HTTPGET;UCL httpgetdata debug option
2066 788792-1 SINKDG: add support for setting csrc0 in RTP header and input file format
2067 788794-1 SOURCEDG: DatagramData to support SDDS packets and other enhancements
2068 525828-3 RESULT: unable to set vector result (item in String array)
2069 789202-1 PLOT / FEATURE: Allow holdRefresh on Layers
2070 789203-1 PLOT: XCUT does not work if file has qualifiers
2071 n/a Duplicate of Bug 2038: PLOT / FEATURE / LAYER: YStart incrementing on files with large number of elements
2073 789204-1 PLOT / MWINDOW: Null Pointer Exceptions when setting/getting clip bounds
2075 525859-3 Table (library) needs a serialVersionUID
2076 525870-3 cannot create file when a directory of same name exist
2079 789205-1 PLOT: Exceptions when resizing PLOT off bottom panel
2080 525863-3 GCONTROL: /TEMP exit control
2081 525861-3 GControl: (Choice) /INPUT does not work with /TEMP
2084 789206-1 Command: would like a getVerbose() method to complement setVerbose(boolean)
2085 789207-1 SOURCEDG: would like various getter methods
2087 789208-1 GENERATE: jars func does not allow user option trees to override jnlp.file_filter property
2096 g526009-3 XBC does not build cleanly: NXM273, 64-bit RHEL 5.3, Intel 10.1

Bugs Fixed in Release 2.7.3 (29 Dec 2009)
Bug Number GForge DR Description
23 536921-1 RMIF: Improve handling of results parameters
72 510293-1 PLOT: Race condition in processing ZOOM message
940 513202-3 LIST2: flashes continuously when sorting
1352 767424-1 LIST2: CLICKACTION ignored for columns
1380 665009-19 LIST2: no autosizing after open file message
1459 768975-1 Add Accessor methods RMIF
1462 768977-1 RMIF: ping pong timeout
1496 785391-1 UPDATE: does not properly handle empty default arguments
1517 770198-1 Remove DBuffer from options menu
1520 770202-1 Can't set plot options from java
1521 770203-1 PLOT menu does not reflect reality
1528 518553-3 LIST2 mod=false does not behave as expected
1531 785650-1 RMIF: document msgname substitution for SET,ACK,GET,RET messages
1541 770634-1 RMIF: REOPEN not quite right
1548 770741-1 RMIF: Crosstalk
1554 518818-3 DataFile can not handle a detached file with -1 in header detach field
1561 518819-3 MidasDisplay Border
1592 784718-1 LIST2: display does not close when you hit <enter>
1593 785561-1 DATAFILE/DATA: LIST2 gives exception displaying SP data
1631 519567-3 RMIF: restarted remotes need to be reset
1633 519565-3 RMIF: closed remotes still send messages
1652 519980-3 LIST2: /LEGACY SELECT message missing CURRSEL for TYPE=CELL
1725 520630-3 LIST2: Need other methods besides updateRow to support primary key concept
1765 786550-1 Args: Add getSelection(..) and getMaskValue(..) that supports enumerated Java types.
1774 786163-1 FILE: COPY/F/L does not work but COPY/L/F does
1781 786165-1 PLOT: Zoom boxes don't draw on paused pipe plots
1857 522437-3 VERSION: Unexpected output from /VERBOSE
1860 522196-3 SINKAUDIO: does not play .WAV file clearly
1879 522638-3 RMIF (Fortran) Verbose and log messages print remote (ir).addr incorrectly
1880 522639-3 RMIF; NXM: invalid IR values cause errors
1905 781641-1 Plot: Wayne's app failing to paint due to improper status setting in plot.open
1914 523222-3 RMIF: (FORTRAN version) incorrect calling of openSocket (not 64-bit-safe)
1917 523223-3 RMIF: (FORTRAN version) using IPADDR2HEX is bad
1930 782405-1 PLOT: Keyboard& mouse shortcut support
1934 523539-1 GCONTROL: need option to only message on mouse RELEASE for xVal's
1935 785651-1 XBC: m$xfer_length with zero bpe causes SIGFPE
1946 785652-1 Exception during test_list_poll from GridSheet
1948 523973-3 UPDATE: kills dictionary entry if arrow key pressed
1950 524010-3 UPDATE: errors if command name abbreviated
1953 784108-1 Allow Macro Access to SWING UIManager
1954 785656-1 update nm.bat on Windows to support a JAVAHOME with spaces
1955 784275-1 LayerKML: Support for href's not in URL format (local files)
1956 785657-1 nm.bat: from Windows OS prompt: nm nonExistentCommand loops endlessly
1957 785658-1 update nmstart to display warning if JAVAHOME is not set or does not exist
1958 784478-1 CONVERT: convert type 2000 file to PNG image
1959 524160-3 Resizing of MidasDisplay broken in 2.7.2
1960 524105-3 GEODETICUTIL: MODE_TDOA and MODE_FDOA need to be public
1961 784577-1 MPLOT: DrawImage does not place images on maps accurately enough
1963 524093-3 POPUP: Remove deprecated functionality
1964 784582-1 POPUP: Blocking=MOUSE does not work.
1966 524196-3 PLOT: LayerGeo does not draw correctly
1967 785654-1 StringUtil.toHTML() skips conversion to HTML for special char right after less than char
1968 785655-1 MAKEDOCS: update userguide and training doc generation to NOT embed style.css
1969 785659-1 SINKDG: dgnetsend library does not support unicast addresses
1971 524292-3 MULTIPLOT: Push/Pop does not work.
1973 665846-19 LIST2: ClassCastException when sorting columns for data received from RMIF
1974 524289-3 File not created with proper extension when an extensionless file with same root name exists
1978 785236-1 PLOT: NullPointerException from drawAxis
1979 785660-1 ICEPacket constructor from byte array does not take in account rep field
1986 524537-3 HPage NPE running sd360/server and selecting Files link
1988 785562-1 DATAFILE/DATA: Rounding errors when using PACKED or NIBBLE data
1991 785994-1 RMSG;NXM: R2T function is not 64-bit safe
1993 665886-19 HTTPGET;UCL primitive should have a thread pool
1995 785593-1 THIN: issues with thinning Type 2000 files
1996 665881-19 NMPOST: should close out port on exiting
1997 665882-19 RMIF: should allow for special processing of individual messages
2000 785919-1 HPrimitive. java: throws random null pointer exceptions
2001 665911-19 NEXTOPT: cannot get nextopt to build cleanly in XMidas
2009 665942-19 THIN: change subframe thinning in realtime for Type 2000 files
2011 786595-1 MJPOPUP: Centering incorrect for widescreen displays
2013 525055-3 PANEL: Unable to attach a sub-Macro panel via config menu
2014 786751-1 PANEL: /PANES switch not working
2017 787082-1 RMIF: OPENED remote clients do not timeout sometimes
2019 525193-3 MJPOPUP: message text does not word wrap
2022 525219-3 GCONTROL (GFILES): filter, aux list, and oprions should be sticky
2024 787468-1 PLOT: provide ability to calculate azimuth between two points on a map
2025 666007-19 SYSTEM monitor/memory errors with ArrayIndexOutOfBoundsException
2026 TDB SINKDG: add support to send type 2000 and other format types
2032 TBD NeXtOpt: RMIF;NXM (Fortran) need to support quiet close
2033 TBD PROFILER: does not autoscale on all layers resulting in some data not displayed
2034 TBD NeXtOpt: SD360 macro learned window position are too wide on multihead xinerama displays

Bugs Fixed in Release 2.7.2 (09 Sep 2009)
Bug Number GForge DR Description
668 548550-1 PLOT: Flickering when plotting a piped type 5000
673 551179-1 GCONTROL: Monitoring a result parameter and gcontrol
907 760914-1 XBC: Add support for X-Midas C++ primitives
1004 759010-1 Closed - Not Worth Fixing: PLOT: crash in Java 5 with type 2000, fs=64k and XU=5, YU=5
ImagingOpException reported from Java 5 when plotting 2000 files with frame size > 32K (workaround: upgrade to Java 6)
1010 513853-3 TEXTDISPLAY: need a scroll bar on the textdisplay with the /scroll switch
1140 n/a Duplicate of Bug 1884: XRTDISPLAY
1233 515929-3 Features FLASH on MAP
1294 516705-3 Duplicate of Bug 1787: MPlot.drawCone() and Transform.clipAtEarth() are not returning valid results for low-altitude cones with large cone angles
1309 766628-1 broken links in LAYER and PANEL's generated HTML version of the explain file
1326 517082-3 PLOT: need individual ZMIN/ZMAX (Z1/Z2) control
1487 769411-1 LayerWMS needs to support 'dezoom'
1550 518774-3 NEXTOPT: nm/jvmoptions=s upcases all args
1561 518819-3 MidasDisplay Border
1589 518969-3 Setting window titles, no documentation for /WTITLE (and other switches)
1624 665187-19 Add push/pop support for SWING GUI builders
1696 775664-1 BUILD: add support for primitives.cfg for XBC builds
1733 665274-19 StringUtil: Add Support for HTML Entity Names
1782 783493-1 Nibble data compatibility
1787 665306-19 GeodeticUtil: Add geodetic utility methods to SYS
1813 778562-1 PLOT: need to turn off/on all features
1833 521878-3 LayerKML: Support Balloon Popups
1835 521898-3 MPlot: setAxis(0) and setReadout(0) do not work
1836 521899-3 MPlot: Convert vague method names
1841 521942-3 DATABASE: Derby jar throwing build warnings
1846 521935-3 POPUP/wpos=mouse does not work as expected
1854 523402-3 PLOT: ImageFile x/y start and x/y delta qualifer override
1868 783494-1 Args getFileName problem
1869 783495-1 plot RANGE parameter not working
1883 783715-1 SHELLGUI: GTerminal exit conditions
1884 501179-5 DISPLAY primitives
1886 787083-1 HTTPSERV: should set ""Last-Modified"" HTTP header field if available for served files
1889 522698-3 FILES: Add/LIST= and /NAMEONLY switches
1890 n/a Bad "build.props" link in BUILD help file
1892 783486-1 GMenu: need to be able to poll (/MON) by value, not just index.
1893 501548-5 SDDSPacket: Byte order issues
1900 522866-3 GCONTROL: /EDIT=F does not work for MENU, CHOICE, and BUTTON
1903 522866-3 PAUSE -2: should only accept <RETURN>
1905 781641-1 Plot: Wayne's app failing to paint due to improper status setting in plot.open
1906 523055-3 ERASE: /QUIET does not work
1907 783490-1 STATISTICS: PieceWise Mode
1908 783488-1 Background Macro terminals
1910 781778-1 MULTIPLOT: no longer works if files list surrounded by quotes (")
1911 783497-1 NMDB;DATABASE TABLE DESCRIBE, EXIT and other enhancements
1913 781823-1 PLOT: Files with very large values can cause tic mark delta to be 0, causing endless loop
1920 523225-3 RMIF: confusing warning when using /PRANGE=
1924 781904-1 PLOT / LAYER: Add /INDEX switch to avoid using START and DELTA values from metadata
1925 523383-3 PLOT: opening image (PNG) files via OPENFILE message causes complete UNZOOM
1926 523479-3 TABLE: Should warn when no output table given to CONVERT XML2 functions
1927 783498-1 HTTPGET does not return from open when response is null
1928 783499-1 NmMake: "nm make zip nxm" creates backup file with previous month in filename
1929 783065-1 PLOT: Race Condition when removing -> adding components
1930 782405-1 PLOT: Keyboard& mouse shortcut support
1932 783500-1 XBC: M$TEST_FORMAT does not support 'REAL', 'FLOAT', 'COMPLEX', 'R*04', 'I*04', 'F', etc. input formats
1933 783502-1 XBC: j2fstr(..) strips off last character when len of Java String is >= available len in Fortran string
1938 523675-3 HTTPSERV: HPage should decode the url before forming parameter table
1942 783662-1 KEYWORD: cannot get MAIN keywords from record-based BLUE files (type 3000/5000/6000) without /scope=MAIN|ALL
1943 783661-1 PLOT: Null Pointer exception from NULL Graphics Context (GC)
1944 665811-19 HTTPGET;UCL: httpgetdata would like ability to support proxy, timing debug, and misc fixes
1945 TODO PLOT: add "PATH|EXT" option for AddNew file dialog to existing plot should be enabled by default
1947 523972-3 STATUS: confusing comments regarding keywords
1949 523983-3 TIME: missing method and missing comment
1952 787084-1 HTTPSERV: does not return correct MIME type for .js and .css text files

Bugs Fixed in Release 2.7.1 (26 Jun 2009)
Bug Number GForge DR Description
176 501237-5 HTTP get using file command adds Midas .prm suffix
605 542916-1 PLOT issues when changing between line and raster types.
807 780418-1 PLOT: getXS/getXD fail in KeyObject but setXS/setXD work
910 513070-3 PLOT Distance readout in meters vs nmi option (when in DMS)
1091 n/a Midas: Missing get/set methods for debug and verify
1207 515821-3 Duplicate of Bug 1230: PLOT: Flashing displays
1251 516440-3 PLOT: returns wrong time for Layer2D files
1291 516709-3 Table Constructor needs fromBytes with range
1339 664985-19 LIST2: flashes badly on underlying file update
1340 767108-1 PLOT: Time readout incorrect when zoom used in plot for large files
1343 767851-1 Table: clear() and delete(..) need to check READONLY and FORCE flags.
1376 665003-19 Source file errata in SHELLGUI and FILES commands
1387 767878-1 Default /MSGID implementation requested
1421 768186-1 Table: null is not NULL
1455 517911-3 Would be nice to have a "Tablizable" interface
1488 769412-1 ImageFile: needs to support access to image meta-data
1575 780435-1x Explain WAVEFORM has some errors
1576 N/A MWindow.setTheme methods null and size checks are in wrong order
1637 665217-19 DataFile.readDataTable() does not return the correct data record
1642 773217-1 HTTPSERV: should have option to alias or serve out root dir
1648 780466-1 NXM JVM package file accessing does not allow for drilling down to sub-sub-directories
1663 665252-19 LAYER2D: produces a null pointer exception when pipe is full
1684 520310-3 PLOT: Layer2D throws ArrayIndexOutOfBoundsException in compressByte()
1704 780433-1 IF: Support IF with parenthesis
1721 520631-3 QUERY exception
1723 665321-19 BUILD: libdepend in primitives.cfg does not result in rpath entry
1724 776087-1 XBC does not support M$STRIM library call
1726 776021-1 PLOT: Falling raster renders two features with the same name
1728 520588-3 Not a Bug: Help search page in browser generates bad version number error
1730 776130-1 PLOT: LAYERSHAPE Coloring Mode of Mono not working
1732 775890-1 PLOT: LayerKml Icon headings wrong
1734 775324-1 KeyVector: Special Key Names Size and GetSize Could Confuse Users
1735 665318-19 FEATURE: Confusing message regarding TYPE=DATA with Layer2D
1736 665329-19 SYMBOL: NullPointerException From Setting Symbol in Layer for Plot
1737 776817-1 NeXtOpt: Support XM.<id> syntax for all commands, not just MESSAGE and MessageQueue.
1740 780435-1 WAVEFORM: default sinusoid is a cosine
1743 780468-1 KeyVector: Add merge(..) method to KeyVector similar to the one in Table
1746 780469-1 Data: castB(..) does not work for data of type 'D'
1747 776818-1 Data: Add castX(..) and copy() methods
1748 776814-1 Data: setSize(..) is inconsistent w.r.t. existing data.
1749 776584-1 TABLE: Deprecate mixed case values in getKey(String)
1751 776816-1 XMValue: Add support for XMValue
1759 520673-3 Need a recursive TABLE MERGE function.
1760 776815-1 RMSG: T2R does not support T:KEY=VAL syntax.
1762 776822-1 Allow Swing Double Buffering by Default in MJFrame
1763 776840-1 ExportImage: Override to remove file type requirement if filename has extension
1764 780429-1 UPDATE: when adding a new command, default OPTION tree should be first entry in path
1768 776983-1 LayerKML: Add support for Polling Network Files
1769 780436-1 HELP: Search Applet input text box area input is backwards
1770 780452-1 HELP: improve responsiveness of search by limiting search results
1775 780427-1 CALL: Can not call a SUBROUTINE from a SUBROUTINE more than once
1783 780462-1 CALC: Need factorial function
1785 520587-3 NEXTOPT: not building with XM 4.4.4 and NXM 2.7.0
1791 777557-1 TABLE / REMOVE: Default Table mode (SLHM) incompatible with table.remove when iterating
1793 780467-1 THEME: No setCWTI method causing test case error
1794 780422-1 TC abbreviation no longer works for TimeCode in STATUS and HEADERMOD
1797 780453-1 ASSERT: would like output message to always end with a period before test result
1798 780454-1 CONFIDENCE: would like FAILED test cases to be displayed instead of rolled into one entry
1799 778043-1 LayerKML: Add support for reducing Image Icon size when not zoomed in
1800 665407-19 LayerKML: Add support for color blending for Image Icons
1801 777959-1 FOREACH key intable tab error
1802 780455-1 Args.parseArgs() parsing for n+ parameters with /switch=def in commands.cnf fails
1803 n/a LayerKML: Allow users to alter position of point labels
1804 521493-3 LayerMap: Call to MColor.adjustImage has Contrast and Brightness reversed.
1806 778234-1 PATH REMOVE can corrupt path
1808 780434-1 DATA: setSize memory allocation error
1809 521553-3 Not a Bug: HTTPSERV appears to be limited to 2 simultaneous requests
1810 778404-1 CONVERT: default behavior of conver with tbl2xml (output to HttpResource)
1811 778676-1 Enable GWidgets to be drawn on SWING panels
1812 521532-3 Keyword unchecked HCB null references break existing code
1816 521507-3 Macro.java: add getFileName
1817 780456-1 HTTPSERV: during shutdown (closing) it may print ERROR HServer: Got SocketException
1818 521744-3 UTIL: Add method to translate enum name to enum value
1819 521773-3 FEATURE: Make method isType(int) public
1820 521566-3 PLOT/WMS cause EXCESSIVE network usage
1822 778811-1 IMPORT fails if any env var names contains dot
1823 780457-1 HTTPSERV: HPage provide access to request URI
1824 780459-1 Changes to FileResource.getUrl() breaks writing to ICE RamDisk
1825 521876-3 LayerKML: does not support color tag with carriage return or newline before color
1826 521817-3 LayerKML: Add support for kml files missing the kml tags
1827 780460-1 FILE COPY and LIST2 hangs for when using native file resource {usenative=true}
1828 780461-1 IOResource.getInstance(..) does not obey {usenative=false} file qualifier
1829 779169-1 LayerKML: Unnecessary refreshes of data causes 'blinking'
1832 521877-3 LayerKML: handle embedded STYLE tags in Placemarks
1834 521879-3 LayerKML: Add support for NetworkLink outside of Document/Folder tags
1837 779196-1 LayerKML: Allow users to restrict size of (zoomed) Image Icons
1838 521927-3 TABLE: Deserialized tables can contain multiple keys of same name
1839 521924-3 PLOT: TABLE HashMap default breaks setup file with multiple layers
1840 780463-1 RESULTS: nested FILE inline function with dots
1842 665526-19 Not a Bug: Table's size() and getSize() method return NULL when invoked from macro
1843 779293-1 CONVERT: error message is misleading for func=tbl2b
1844 779294-1 Enable getKey(String key) for lower-case keys.
1848 521900-3 MPLOT: internal documentation request
1849 665544-19 PLOT: size limit for 2-D files
1850 779592-1 nm make all EXITS with "args: Subscript out of range." on RHEL5.3
1856 779452-1 Update MA.getTable(String) to ERROR if input is an invalid Table
1858 522475-3 Support @classification in javadocs
1859 522065-3 Add Shell.getNmPID() method
1863 522438-3 Midas.java: Add logging support
1867 780464-1 Update Convert.packS(..) and Data.packS(..) to take in a CharSequence vs String type for value
1870 522183-3 REMOVE: Ignores /FORCE flag
1871 780117-1 Plot, Layer2D: display extra lines after zooms, unzooms, etc
1872 780465-1 CALC: CEIL operator
1875 522602-3 Easy Message Debug
1876 522601-3 Message: override .toString() to provide more useful feedback
1878 780214-1 PLOT: time-based features inaccurately positioned after zooms
1881 780209-1 PANEL: panel.Pane.delPane(int) leaves panel in bad state
1885 522657-3 User Guide: WebStartApp.html still uses "generate jar"
1887 780352-1 XBC: m$initialize does not initialize fields with "important defaults"
1896 665628-19 CONFIDENCE: should NOT require DAT aux when testing user option trees

Bugs Fixed in Release 2.7.0 (02 Jan 2009)
Bug Number GForge DR Description
73 510270-1 PLOT: grid does not show on static rasters
392 775707-1 IF: Want additional file comparison tests
467 770842 PLOT: Plotting an image alters axis options.
604 1668 510672-3 Need option specific startup (optstart.mm in cfg area)
871 516398-3 PLOT: Plotting of cones with ConeFlagVert is incorrect in GEODETIC view
884 773958-1 FEATURE: need to be able to give them an IMAGE (jpeg, png,...)
937 760578-1 PLOT: need type 2000 file treated as multiple lines with type=line
941 513204-3 XBC: missing m$addt6subrec call
944 513311-3 PLOT: Plot always displays axis labels in scientific notation - want option to display as a real number
1050 514430-3 KeyVector: Exception during table put
1168 763842-1 XBC: Can not link/load external libraries from XBC
1173 664915-19 MERGEFILE not producing correct number of elements
1174 770487-1 LayerShape: want to control brightness, contrast, opacity
1218 516154-3 Copying tables with members of type "A"
1219 516153-3 LIST2: getRow() problem
1234 516023-3 LIST2: LMB=MESSAGE option does not return useful information and a few issues
1235 516042-3 LIST2 /AUTOSELECT is incomplete
1274 766049-1 NEXTOPT: need support for 64-bit linux
1308 766627-1 ELSEIF: should error out if there are not test specified after that command
1317 775708-1 FFT allows cross-specturm with only one input
1321 501267-5 DATABASE: Need easy Oracle DB Interface
1329 770492-1 Deprecate MPoint, use java.awt.Point
1341 767118-1 NeXtOPT: Changes in X-Midas 4.5.x prevent NeXtOPT from running
1360 767453-1 Table performance
1361 767455-1 KeyVector: The power of a break
1362 767456-1 KeyVector: Use a Hashtable for indexing
1366 517344-3 PANEL: should never crash
1381 665012-19 Duplicate of Bug 73: PLOT: Grid fails to repaint
1382 665013-19 Not a Bug: GCONTROL: Erratic behavior of Dialog Gcontrol
1392 517472-3 Line feature on raster fails
1393 517474-3 Not a Bug: AutoScaling
1394 767975-1 NM won't start with a null pointer exception
1395 767976-1 TABLE: fbUnpack is not safe
1396 767977-1 Shell error output
1409 768099-1 WidgetWrapper: Change listener for JComboBox to ItemListener
1410 768100-1 Closed - Not Worth Fixing: WidgetWrapper: Only report JSlider changes when done adjusting
1417 768110-1 Shell: Does not always wait for open()
1419 775709-1 ARGS: CM conflict with CMAP in PLOT command. Abbeviation problem.
1420 775710-1 Plotter bug fixes
1429 517628-3 GENMSGTBL.TXT: does not place message table file in correct location
1430 517633-3 GENMSGTBL: does not generate comments correctly
1435 768473-1 Duplicate of Bug 73: PLOT: latlon grid repaint fails
1436 769392-1 Shell: Unfriendly error message when primitive class is declared wrong.
1438 769391-1 PANEL: Need better handling of corrupt .mmp files
1440 768679-1 Readout does not recognize a country when zoomed
1441 665043-19 ImageFile.readImage throws null pointer exception if BaseFile.open() hasn't been called yet.
1451 501362-5 RESULTS/SAVE creates non midas file
1452 501361-5 RESULTS/SAVE always saves all
1453 501359-5 RESULTS/PARENT does not work
1457 517927-3 Layer2D: Line 368 if check is unecessary or incorrect
1465 665052-19 Not a Bug: GCONTROL: NOEDIT is Editable
1473 769161-1 TextFile: Unable to read lines with length >8K
1474 518044-3 PLOT: OutOfMemoryError running in Windows
1478 775711-1 KEYWORD: Allow pattern matching with LIST function
1480 775712-1 GENMSG: Cleanup genmsg, move to XmUtil, to prepare for C/C++ support
1481 772639-1 SD360/JSETUP: Demo Swing panel for SD360 should use Sine not Sinusoid
1482 775713-1 PANEL/JSETUP: Need to be able to override how widgets are handled in WidgetWrapper
1483 775714-1 Should use Shell.warning(..) and Shell.info(..) rather than System.err and System.out
1493 772640-1 LIST2: GUI Template editor - combo box for column template is incorrect
1494 772641-1 LIST2: GUI Template editor - OK button has no effect, it should be renamed
1495 665064-19 XBC: Type 5000 functions not 64 bit clean
1497 775715-1 UPDATE: Does not properly handle * indicator for command abbreviation
1498 772642-1 GCONTROL: xVal SLIDER flag not documented in explain file
1499 518458-3 NeXtOpt AUX Problem
1500 665070-19 Closed - Not Worth Fixing: Feature Request: Include JAI and JAI ImageIO with NXM
1501 772643-1 NMEND on windows does not cleanup environment variables
1502 518475-3 PLOT does not scale correctly with /ALL switch
1503 770491-1 ASSERT does not complain if condition is badly formed
1505 770488-1 Table: Allow use of other Java collections, not just KeyVector or Hashtable
1506 665068-19 XBC: m$checkin doesn't call m$vinit
1507 665067-19 Enhancement Request: Endure consistent use of Type versus FormatType
1508 665077-19 Can not get NeXtMidas to start in VNC session
1510 518504-3 Capture Eclipse configuration notes in User's Guide
1512 770329-1 HTTPSERV: Problems serving up JNLP and JAR files
1513 518532-3 Layer2D: time readout not correct in 2.6.0
1514 518550-3 XBC: TPICK does not support wsec|fsec syntax
1515 518551-3 XBC: hcb.switch='OPTIONAL' does not work
1518 770199-1 Not a Bug: PLOT shifts data
1529 518554-3 LIST2: Leaves temp files
1538 770596-1 XBC: Need to add support for M$SUBS and M$GSUB
1539 775716-1 FFTDEMO.PRM has unsuitable XSTART, XDELTA
1542 770622-1 WidgetWrapper doesn't properly handle JTextArea
1544 770689-1 PLOT: skipping
1546 770703-1 PLOT: LayerImage does not close resources
1549 770775-1 TABLE: containsValue returns wrong result
1552 775717-1 MWindow.setKey cast of theme to string prevents set via table
1553 775718-1 THEME: need separate control of widget title color
1555 n/a Table: Merging empty table is broken
1557 772644-1 Generate jnlp/table not documented
1566 665111-19 MColor.toString(Color color) returns incorrect values
1567 518816-3 Enhancement: give Args class a factory for file handlers
1569 665128-19 LayerVehicle: label for overridden pointing position in wrong location
1570 775719-1 GCONTROL: need to support DEGREES/MINUTES/SECS (DMS) format with /FMT switch
1571 775720-1 CONFIDENCE: add /STOPAT switch to stop at a given command
1573 665146-19 Not a Bug: WAVEFORM primitive not behaving as expected
1574 518956-3 NEXTOPT: nm command will not run as nm;nxm
1577 775721-1 SEDIT: add JOIN function to complement SPLIT
1578 771445-1 FILES command ignores full path
1579 772645-1 HTTPSERV: needs capability to run on any open port
1580 519015-3 GWidget Issues: no getFlag and unnecessary updates
1583 501413-5 QUERY: locks up when displaying constructor.
1586 501414-5 FileName: want to be able to convert FileName to a URL
1587 501415-5 MAKE: allow "JARS" as alias for "JAR"
1591 772646-1 OPTION/CREATE without trailing directory separator creates option into a deep option tree structure
1595 1581 519019-3 XmlFile: logic error prevents proper cname setting
1596 772648-1 FFT/DBF gives incorrect results in NoNative mode on SUN machines
1599 771909-1 Table Type O for getX
1601 772062-1 Time.getGHA() is incorrect
1604 519373-3 nm command does not maintain case
1605 519143-3 GCONTROL: no way to set itemcolors using /wait switch
1606 665152-19 XBC: m$file doesn't open with -openmp
1607 771910-1 "nm make code <option-tree>" should not (?) build tools
1608 771911-1 MAKE: "nm make all" properties for option trees
1609 772534-1 SocketResource: seek(..) does not work, unable to set TIMEOUT
1610 665185-19 StateVector does not interpolate
1611 665184-19 Missing get/set methods in Position and StateVector classes
1612 772650-1 XBC's noop does not set the correct file size on type 2000 files
1613 775722-1 upgrade JUnit test library to 3.8.2
1614 772548-1 UCL: bug in httpgetdata in check for setFixedLengthStreamingMode (it is on HttpURLConnection)
1615 775723-1 OPTION/DELETE to logically remove defined option trees
1616 775724-1 XBC: m$allocate does not open output file in local machine rep after call to m$propagate
1617 775725-1 GWIDGET: VBOX does not always get drawn when added via setFlags
1618 506186-15 Transform.eci2ecr() implementation
1619 775726-1 XBC: xmlibc.c's getStackTrace() fails under 64-bit RHEL4
1620 665211-19 LayerWMS: WMS Configuation window does not go away with plot
1621 665212-19 LayerWMS: WMS layers do not support NXM ~ mask character
1622 772935-1 LayerWMS: Add ability to convert maps and images to greyscale.
1623 665188-19 PLOT: Add support for KML files
1627 665210-19 NEXTOPT: caret does not translate inside quotes
1628 519644-3 SEDIT: NFORM alters value of formated number
1634 775727-1 additional macros in native.h to have finer grain control of getting and releasing Java arrays via native C code
1635 773087-1 Time.fromJ1950(wsec,fsec) should add (move) integeral part of the fractional seconds to the whole seconds
1636 775728-1 IF: Numeric comparisons assume scalars without warning.
1637 665217-19 DataFile.readDataTable() does not return the correct data record
1639 773214-1 HTTPGET in UCL needs couple improvements
1640 773215-1 invoke with semi-colon ";" at the end can break stuff
1641 773216-1 HTTPSERV: add support for HTTP POST requests
1643 775729-1 ASSERT: Add switch to assert a failure
1644 775730-1 OPTION: /LINK falsely claims to modify an existing option tree link
1645 773422-1 XBC: a few 64-bit issues
1647 775731-1 RESULTS: would like KeyObject to handle deeper dot levels on Objects
1650 775732-1 Menu: Use dictionary.getSize() rather than dictionary.size
1651 775733-1 PLOT: Should show name of file not found, not name of result
1653 775734-1 KeyObject: Remove dead code
1654 665246-19 FileName.getQualifiersIndex(...) does not work with archives
1655 665247-19 LayerVehicle: need to support "non-standard" footprints
1656 665248-19 IOResource: make setURL(...) public; add check for null.
1657 774006-1 Position.getHeading() method does not work
1659 665251-19 PLOT: Non-geodetic coordinates are plotted incorrectly on map plots
1660 774206-1 Migrate to Java 5 with NeXtMidas 2.7.0
1661 n/a Fix Java 5 warnings
1662 775735-1 XGEOPLOT: needs to handle SETVIEW and REREAD messages
1664 774219-1 CsvFile: Need a way to set user header data in a CSV file.
1667 n/a XBC: Basic Fortran I/O from text file does not work in 2.7.0 snapshot
1671 775736-1 DataFile: Removed unused private methods for XBC
1672 775738-1 getTypeLeter method in results.java is badly named (spelling)
1674 775003-1 DataFile: Need to support long subrecord names
1675 774996-1 Macro: Catch "else if" in place of "elseif" and issue helpful error
1676 775739-1 Message: Missing getFromID() and getToID()
1677 775740-1 Removed unused JAR files from SYS
1679 775741-1 FileResource: getURL() does not return file:/ under Windows
1680 665273-19 Position, StateVector: Add copy() methods to Position and StateVector
1681 775742-1 XBC: types.incp is missing M$SUBS, M$SUBSL, M$GSUB, AND M$GSUBL
1682 775743-1 XBC BUILD: preprocessing of types.incp NOT handling #if _PGF77
1683 774997-1 XBC issues unnecessary warnings in cases where M$INOK is called on a reused HCB
1685 775002-1 Formalize support for MIME types
1686 775744-1 Remove SERVLET option tree
1687 774999-1 BaseFile: File handler updates
1690 775001-1 DATALIST: Use hexdump for unknown file types
1694 775745-1 StringUtil: would like a ltrim() and rtrim()
1695 775746-1 BUILD: would like to keep native (JNI) headers around after build
1697 775747-1 Midas.printStackTrace(Throwable, boolean forceTrace) does not use forceTrace
1698 520407-3 Layer2D custom Colormaps with less than 32 colors not rendering correctly.
1700 775748-1 DATA: substitutes string "unknownType" when constructor arg is not supported
1701 775126-1 Data does not equal Data
1705 520457-3 HTTPSERV: Add writeMidasFile method to HPage
1706 775749-1 Compile/Link warnings inadvertently suppressed using Intel compiler
1707 775750-1 PLOT: LayerWMS: reduce default number of download threads
1708 775751-1 GCONTROL: remove ROLLUP flag for BUTTON type gcontrols
1709 520515-3 TIMEX: DATE is computed wrong
1710 775778-1 NeXtOpt: NM - remove session_count variable which was not initialized and never worked right
1715 665149-19 Duplicate of Bug 1457:PLOT: Layer2D incorrect jx2 for zoom

Deprecated Functionality

The following functionality has been deprecated and will be removed from future versions:
Command Deprecated Item Replacement Deprecated
Since
FEATURE Use of LABEL= inside the table of options Use TEXT= 2.3.0
MENU ACT= FUNC= 2.3.0
PLOT ZOOM and DRAGBOX messages accessed with msg.data(0), msg.data(1), etc. Use 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. Inlcude 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
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)