Critical memory leak fixed!

Well, this week saw some important bug fixes, notably a critical memory leak in logging and deeplearning4j now working on Windows. See below for details.

Fixes

  • Fixed memory leak in the logging framework: Java's logging facility doesn't garbage collected Logger instances and slowly gobbles up memory. Reimplemented the functionality to avoid this issue. Thanks to Sam for uncovering that!
  • Fixed passing on of data for control actors CallableActorScreenshot and ClearCallableDisplay.
  • adams-spreadsheet:
    • NewSpreadSheet now accepts an empty initial column list.
    • SpreadSheetInsertColumn and SpreadSheetInsertRow now ignore the position if the spreadsheet coming through is empty (they simply add a row).
  • adams-dl4j: Fixed the java.lang.UnsatisfiedLinkError: no jnind4j in java.library.path exception on Windows - correct inclusion of native artifacts.

Changes

  • Data container reader/writer classes now state the supported file extensions and the default file extension under "additional information" in the help.
  • Spreadsheet reader/writer classes now state the supported file extensions and the default file extension under "additional information" in the help.
  • Added Open in file browser to directory panel of the Preview Browser.
  • adams-spreadsheet: The SpreadSheetFileViewer now allows the user to paste a spreadsheet from the system clipboard (gets prompted how to read in the data).
  • Added Copy ID(s) to popup menu of container lists.
  • Centralized shortening of strings in adams.core.Shortening and adams.core.ShorteningType.
  • Spectrum Explorer now allows reloading of spectral files, not just from database.
  • The adams.core.management.Launcher class now allows the collapse of the classpath when launching the actual process, i.e., instead of listing every single jar explicitly, only the directory with /* appended is used. This dramatically reduces the length of the commandline string. Should also help with Windows' restriction of only allowing 260 characters in a classpath (Linux filesystems usually handle 4096 characters). The startup scripts, run and run.bat, got updated accordingly.
  • AppendName, DirName and PrependDir can output paths with forward slashes now as well, when processing strings.
  • adams-dl4j: upgraded deeplearning4j/nd4j to 0.4.0 and canova to 0.0.0.17.

Additions

  • Added global switch for anti-aliasing (enable/disable), available from the Visualization menu.
  • Added preview handler to the Preview browser for basic file information: FileInfoHandler
  • MapToVariables transformer turns the key-value pairs into variables and associated values, useful when loading in YAML config files.
  • adams-nlp:
    • added EditDistance transformer for computing the edit distance between strings (supplied base and ones received).
    • added Stemmer transformer for performing word stemming, single words or arrays of words.

Have a good weekend!