NeXtMidas 3.3.0 Release Notes

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

Please see an important note regarding Oracle CVE-2010-4476 (Java floating point vulnerability)

NeXtMidas SYS Option Tree Tested on:
Platform OS Version Java Version(1) Native
Compiler
Web Browser
(WebStart/Applet)
Linux (x86) RedHat Enterprise 5u7 6.0_29 gcc 4.1.2
Intel 9.1.053(3)
Intel 10.1.025(3)
Firefox 3.6.24(5)
Linux (x86_64) RedHat Enterprise 5u8 6.0_31 (64-bit)(2) gcc 4.1.2
Intel 9.1.053(3)
Intel 10.1.026(3)
Firefox 10.0.3 64-bit (Java 6 64-bit plug-in)(5)
Linux (x86_64) RedHat Enterprise 6u3 6.0_33 (64-bit)(2)
7.0_05
gcc 4.4.5
Intel 12.0.1.107(3)
Firefox 3.6.26 64-bit (Java 6 64-bit plug-in)(5)
Sun/SPARC Solaris 10 6.0_30 (32-bit) gcc 3.4.6 Firefox 2.0.0.9
Windows (x86) Windows XP SP3 6.0_24 MinGW/gcc 3.4.5 Firefox 3.6.26 (Java 6 plug-in)
Internet Explorer 8.0.6001 (Java 6 plug-in)
Windows (x86) Windows 7 SP1 6.0_24 MinGW/gcc 3.4.5 Chrome 11.0.696 (Java 6 plug-in)
Internet Explorer 8.0.7600 (Java 6 plug-in)
(1) 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) Not all versions of Java support 64-bit systems. Please see http://java.sun.com/j2se/1.5.0/system-configurations.html for more details.
(3) $NM_CC and $NM_CXX was set to point to the Intel C/C++ compiler (icc and icpc).
(4) As of RHEL5u5, there is no standard 64-bit version of Mozilla Firefox available (it comes with the 32-bit version of Firefox). Oracle (formerly Sun Microsystems) suggests using the 32-bit (Java plugin) for Java applet support for 32-bit versions of Firefox.
(5) Note: As of Firefox 3.6.x, the new (Next-Generation) Java plugin (included with Java 6 update 10 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.
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
"32Bit" Linux (x86) RedHat Enterprise 5u8 6.0_32 gcc 4.1.2 PGF 9.0.3
"CLASSIC" 32Bit Linux (x86) RedHat Enterprise 5u8 6.0_32 gcc 4.1.2 Intel 10.1.026
"64Bit" Linux (x86_64) RedHat Enterprise 5u8 6.0_24 (64-bit) Intel 9.1.052(2)
Intel 10.1.026(2)
gcc 4.1.2
Intel 9.1.052
Intel 10.1.026(2)
"64Bit" Linux (x86_64) RedHat Enterprise 6u3 6.0_31 (64-bit) Intel 11.1(2)
gcc 4.4.4
Intel 11.1(2)
(1) Not all versions of Java support 64-bit systems. Please see http://java.sun.com/j2se/1.5.0/system-configurations.html for more details.
(2) $NM_CC and $NM_CXX was set to point to the Intel C/C++ compiler (icc and icpc).
(3) $NM_FORTRAN was set to point to the Intel Fortran compiler (ifort).

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.8.0 Linux (x86) RedHat Enterprise 5u8 (WS) 6.0_32 gcc 4.1.2 PGF 9.0.3
4.8.3 Linux (x86_64) RedHat Enterprise 5u8 (WS) 6.0_31 gcc 4.1.2 PGF 8.0.4
4.10.2 Linux (x86_64) RedHat Enterprise 5u3 (ES) 6.0_31 Intel 11.1.064 Intel 11.1.064
4.10.2 Linux (x86_64) RedHat Enterprise 6 (ES) 6.0_24 gcc 4.4.4
Intel 11.1
Intel 11.1
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 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.
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).
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.
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.
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) behaviour. This is considered unlikely.
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.0, Layer2D was updated to allow it to have a lines per screen larger than the lines per buffer (if the user used /LPB=). Some users may notice more lines plotted. This can be countered by using the /LPS= switch to set the lines as desired.
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.
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 behaviour of returning '{}' remains. Set the new Table flag CheckMalformed to false to revert the behavior.
Theme Changes - 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 behaviour, 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).
WAVEFORM Changes - 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.
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.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()
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.
Macro/Shell Enhancements - GUI Title Text - in NeXtMidas 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 officialy 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 peformance reasons, but can override this using the existing "/WTHEME=" switch. See nxm.sys.test.test_plot_theme.mm for example usuage. Note: This behaviour can be reverted by using the /ShareTheme switch at the top of a macro.
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.
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.
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.
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.
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 NeXtMidas 3.3.1, the PEAKPICK command was enhanced to enable it to process input files with complex data.
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.
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 NeXtMidas 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.
TIMEX - TIMEX now recognizes ISO 8061 time strings automatically.
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.
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.
- 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.
- 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 writting (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.
ALL - 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 the latest Java Development Kit, version 6u24 or later release.
OpenJDK - Some users have experienced minor graphical glitches in NeXtMidas GUIs when using OpenJDK.
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.
  - 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. 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 - 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.
   
  - 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.

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.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
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/NF/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
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()
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 831305-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

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