Release Notes - Jazz - Version 3.1
(2026-01-13)
REMINDER: THIS RELEASE REQUIRES JAVA 21 OR LATER
If you're still using an older Java Runtime Environment version, this release will start to download, but will fail silently
and appear to hang. If this happens, check your version with:
java -version
and, if needed, update to Java 21 or later:
- on Linux - Set your JAVA_HOME environment variable to '/usr/local/jdk' and PATH to $JAVA_HOME/bin
- on Mac - Use the NRIT Self-service App to install "Amazon Corretto 21" and add this to your ~/.profile or ~/bashrc:
export JAVA_HOME=`/usr/libexec/java_home -v 21`
- on Windows - check with your system administrator
If this doesn't resolve the issue, please contact us for support.
Bug Fixes
-
CrossSections (XSECT) rendering where a single color is rendered over the entire vertical range
XSects were sometime rendered in a single color when one of the max or min elevations of a non-linear vertical coordinate system
(such as radar angles) could not be converted to a linear length, such as km. In that case, the invalid max or min was mistakenly
treated as a zero, resulting in a color rendering over the entire vertical range.
Fixed by checking for unconvertible elevations, and when detected, using the previous level's converted value instead.
This has the potential to ignore elevation levels that are unbounded on one end, but does not currupt the remaining
levels.
-
Saved Views failing to write when original views file is missing
When the Saved Views file referenced in the configuration is moved, the view manager responds with exceptions, and
cannot save new views to the original file path.
Fixed by checking for an empty or missing path and responding by creating a file in the path, rather than erroring out.
-
Saved Views failing when saving layers which are part of a synchronized group
When saving a view which has a synchronized group visible, all of the dependent Layers are saved as visible. This can
cause problems when reloading the saved view, as the synchronized Layers can disrupt the parent Layer.
Fixed by only saving the parent Layer when a synchronized group is visible.
-
Errors generated when repeatedly changing the Metar layer customizable rendering
The Metar feature layer was failing to properly re-initialize the clickable Metar Key in the "Customize" menu when
repeatedly modified. Also, errors were sometimes thrown when Metars were reloaded simultaneously while attributes
were being changed.
Fixed by not reloading the Metar Key image each time attributes were modified, and checking for concurrent modification
on the thread that re-renders the Metars, to handle changing the Metar list on the user interface event thread.
This should prevent unexpected multi-threading issues.
Improvements
-
Added multiple color thresholds and wind gusts to METAR WindBarbs
The SPDB-based METAR layer now allows coloring of the wind barbs based on an unlimited number of thresholds wind speeds.
The settings may be set in the Jazz config XML for the layer (see documentation) for startup, but may also be
changed during runtime from the Layer's "Customize" menu. These settings are also automatically saved and reloaded when
the Layer is saved as part of a saved View. If available, the wind gust value is automatically rendered at the end of the
staff.
In a <Layer type="SPDB" featureType="METAR" ...>, the following optional attributes are available:
subVars = a comma-separated list of the METAR variables to display. Any of
"alt", "barbs", "ceil", "vis", "temp", "dewp", "wx", and/or "stn"
If none are specified, only the obscuration/flight category symbols are shown.
density = the density of the METAR symbols to display, from 0 (all) to 1.5 (few) (Defaults to 1.0)
barbThresholdColors = the range of wind speeds in knots and color with which to render windbarbs (Defaults to black),
expressed as a semicolon-separated list of "min,max=color;" where color can be a name, R,G,B, or #hex.
-
Made the Inspect Tool be user-controlled from the Jazz config file
Promoted the Inspect Tool to be fully enabled and configured from the Jazz config file, rather than being a hard-wired tool
in the Jazz source code. The Tool can now be enabled by adding an <InspectTool> element in the config file. This enables
a tool which shows the value(s) of gridded field(s) under the mouse location as an in-map pop-up. If the element is not present,
the Inspect Tool will not be available in the Jazz session.
The optional XML attributes within the <InspectTool> element are:
ShowUnitLabels = (optional) renders the units of the value, if available. Defaults to "true".
ShowGridCellIndicies = (optional) renders the x,y indicies of the location in the data grid. Defaults to "false".
-
Made the Layer List Tool be configured from the Jazz config file
Promoted the Layer List Tool to be fully enabled and configured from the Jazz config file, rather than being a hard-wired tool
in the Jazz source code. The Tool can now be enabled by adding a <LayerListTool> element in the config file. This enables
the menu item for opening a new dialog with a nested list of the available Layers, for easily turning them on/off, even when
nested within Layer Groups. If the element is not present, the Layer List Tool will not be available in the Jazz session.
The optional XML attributes within the <LayerListTool> element are:
openOnStart = (optional) Set to 'true' to have the Layer List dialog open when Jazz starts.
-
Made the Grid Table Tool be configured from the Jazz config file
Promoted the Grid Table Tool to be fully enabled and configured from the Jazz config file, rather than being a hard-wired tool
in the Jazz source code. The Tool can now be enabled by adding a <GridTableTool> element in the config file. This enables
the menu item for opening a new dialog with a clickable list of the gridded Layers, for easily turning them on/off. Feature Layers
and Map Layers are not included. If the element is not present, the Grid Table Tool will not be available in the Jazz session.
The optional XML attributes within the <GridTableTool> element are:
openOnStart = (optional) Set to 'true' to have the Grid Table dialog open when Jazz starts.