Release Notes for JMRI 4.5.2 release
Date: August 15, 2016
From: Bob Jacobsen
Subject: Test version 4.5.2 of JMRI/DecoderPro is available for download.
This is a test release. Please post a note if you encounter any new or old bugs!
And please back up your JMRI files before installing this, in case you want to go
back to an earlier version.
This is the next in a series of test versions. We expect this series
to end in the next JMRI production release around the end of 2016.
(See the tentative release schedule)
Some of the changes involved are quite extensive.
They may require a certain amount of experience before they are working well.
Therefore, this test version should be considered experimental.
JMRI is now only available under the
GNU General Public License. For more information, please
copyright and licensing page.
On OS X, the JMRI application launchers cannot launch unless a Java Development Kit is installed.
This is fixed in the next release.
None at release time.
New warnings for this version:
- This and future versions of JMRI may not function on OS X if the Java SE 6 provided by Apple is installed. OS X
operating system updates routinely remove this version of Java SE 6. Please raise any issues concerning this on the
To remove Java SE 6 from OS X, follow these steps (these steps assume
JMRI is installed in the folder /Applications/JMRI, if not,
adjust the following paths as needed):
- Open Terminal.app.
El Capitan only: Reboot into Recovery Mode by restarting your
Mac and pressing Cmd-R until the Apple logo appears. Once in Recovery Mode,
select Terminal from the Utilities menu.
- Run the command
/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.sh It can take
up to a half hour to complete. Wait for the message Removed Apple Java SE6.
El Capitan only: Run the command
bash /Volumes/Macintosh\ HD/Applications/JMRI/PanelPro.app/Contents/Resources/uninstall-java6.sh /Volumes/Macintosh\ HD
It can take up to a half hour to complete. Wait for the message Removed Apple Java SE6.
- El Capitan only: Restart your Mac.
- Support for directly executing AppleScript within JMRI has been removed
due to changes in macOS and Java outside our control. If you require the
ability to use AppleScript, you may be able to add this capability on your
own by visiting JMRI
AppleScript Support, but please be aware that this may not work
on upcoming releases of macOS or Java.
See the JMRI 4.4 release note
for warnings predating the 4.4 development series.
These may be relevant to you if you're updating from an earlier version.
(Since JMRI 4.5.1)LocoTools, no longer supported since JMRI 2.10, has been removed from the Linux and OS X distributions.
(Since JMRI 4.5.1)Internal turnouts and sensors need to have complete, individual system names.
The names "IT" and "IS" (without any suffix) are no longer permitted:
"IT12" is fine, but just "IT" is not. Most panel files that contain these should
automatically migrate them to new names when saved, but in some cases you might need to manually update them.
(Since JMRI 4.3.5) When sharing a configuration between this version and JMRI 4.3.4 or older, the older version of JMRI will not
reflect changes in preferences, window position, table sorting, column order, or other user interface state. This is due to
changes in how user preferences and interface state are stored.
(Since JMRI 4.3.3) You can now set the order of your startup items: If you're opening panel files, running scripts, etc as
the program starts up, there's a preferences pane that lets you easily set the order in which those happen.
If you've set the order manually (e.g. by editing configuration files) in the past, please check this
preference to make sure it's set the way you want.
(Since JMRI 4.1.2) Jython has been upgraded to version 2.7.0 with the following potentially breaking changes:
- The decodeJmriFilename() function is no longer available by default. Use the FileUtil.getExternalFilename() method instead.
- The simple propertyListener object is no longer available by default. Create your own, following the examples provided in the jython folder in the JMRI distribution.
- jmri_defaults.py included in the JMRI distribution is no longer executed by default, but will be executed before any other Jython scipts if included in your User Files location.
- The default behavior of python.cachedir.skip is now true. If using a custom python.properties file, include "python.cachedir.skip=false" in that file.
- Certain Python scripts are too large to be evaluated in Jython. If a script fails with the
java.io.IOException: Mark invalid error, set "jython.exec=true" in a custom python.properties file or rewrite the script to be less than 100,000 characters per file. Note that when using "jython.exec=true" it may be desirable to run the included script jmri_bindings.py as a startup action to emulate the evaluation environment used when jython.exec=false.
(Since JMRI 4.1.1) Decoder definitions that use the "ivariable" form are now deprecated. Definitions
included with this release have been converted to the new form.
If you have decoder definitions with the older "ivariable" form, they will no longer
validate, but can still be used for the first couple of test releases in this series.
Please ask on the JMRI Users group
for help converting them, or just drop them and use the current definitions.
Please use these links for downloading:
Mac OS X: https://sourceforge.net/projects/jmri/files/test%20files/JMRI.4.5.2-R288026f.dmg/download
The list of included commits
is available from our
GitHub code repository
New / Updated decoder definitions
- Added ESU Digital LED lighting strip with integrated Digital decoder
- Michael Mosher fixed sound selection for TSU-2200 and TSU-PNP models
(missing Bell and Prime Mover selections)
and fixed Lighting effect direction selection: CV57 & 58 bit 6 and 7
set to 1 permanently though not being in use.
- Michael Mosher updated some TCS Steam decoder definitions
- Mark Waters updated the Zimo MX644 and MX600 definitions
- Jay Jantzen provided some improvements to Dispatcher
- New Restart feature for AutoActiveTrains.
- New Simulator Script for AutoActiveTrains.
- New Actions to Hold and Release specified signal.
- New flag to reload train(s) at Dispatcher startup.
- Updated the Section code to set blocks' values instead of just memories,
needed when the new BlockContentIcons are used instead of memoryIcons.
- Improvements were made to the Conductor and Yardmaster windows.
- Improved the RWE feature when the car's load is removed and the car is already at the
RWE address, the program will not set the RWE address as the final destination.
- Fixed a bug where the RFID tag selected wouldn't save from the car and loco edit windows.
- New feature for RFID users, the Cars and Locomotives windows now show the last
"Reported Location" and "Reported Date" when passing a reader.
- Several sample scripts received necessary updates to work with the current version of the
JMRI code: AllocateRosterEntryToBlock.py, AutoDispatcher2.py, LocoSelectorDropBox.py, RobotThrottle2.py,
RobotThrottle3.py, RosterCreateExample.py, RosterCsvExport.py, RosterLoop.py, RosterMigrate.py, RosterMigrate2.py,
SampleWriteRosterAttribute.py, Zimo_function_programmer.py, Zimo_pseudo_programmer.py
- Greg McCartney provided a new set based on the B&O 1980 rules.
Routes (Logix Routes)
- Egbert Broerse expanded the i18n (internationalization) of the LRoutes > Add LRoute pane
and fixed running Logix Conditionals under a non-English locale. Opening these after switching
locale may cause errors. Manually correct and save them to fix this for now.
- Client-side layouteditor panels now show actual track color, not just occupied.
- Occupancy-based coloring for drawn track has been turned off
- Fixed two spurious SRCP messages at startup.
used to find and connect to resources on the Internet (e.g. to allow
WiThrottle and Engine Driver to find JMRI) was updated to
jmDNS version 3.5.0.
- Sonnys Hansen improved the Danish translation
- Fixed problems with the formatting of many help pages
- Fixed an issue preventing JMRI from detecting a JRE on OS X (#1679).
- Fixed an issue preventing the JMRI launcher on Linux or OS X from correctly passing Java System Properties to JMRI (#1692).
- It is now possible to use portable paths in jmri.jmrit.Sound when using that class from a script (#1738).
- Tables now save their settings much more efficiently as they're closed, which should make closing a table window
much quicker on some computers
- Fixes to several crashes associated with starting up with older preferences, changing preferences (particularly connections)
and when configured hardware isn't present at startup.