Release 20150811

After a bit of a break, here's a new release with some important bug fixes and also some significant speed improvements!

Database engine improvements

The first main bug fix relates to how bliss can sometimes react when changing settings. A few months back I changed bliss's database engine to a different library. This fixed some data corruption issues, but, as often happens, some different problems were introduced.

Specifically, the way the new database engine updates files on your computer's storage is a bit different; when bliss interrupts an update, sometimes the database engine gives up and won't write again. This means certain operations like changing rules or rescanning can sometimes lead to a bliss database that can't be used, causing error messages like:

Exception occured while processing /index.html
Message: java.lang.IllegalAccessError: already closed
    org.mapdb.EngineWrapper$1.get(EngineWrapper.java:472)
    org.mapdb.EngineWrapper.get(EngineWrapper.java:58)
	...

Or:

Exception occured while processing /Message: java.io.IOError: java.nio.channels.ClosedChannelException
    org.mapdb.Volume$FileChannelVol.getLong(Volume.java:878)
    org.mapdb.StoreDirect.get2(StoreDirect.java:440)
	...

We've fixed this in this release, and so hopefully changing settings and rescanning won't cause the same issues. These errors didn't always occur, but there was the possibility and we received a number of reports, so we fixed it.

OS X users

We've downgraded the version of Java shipped with bliss to Java 1.7.0_025. This is because of a number of reports of bliss failing to start. When started from Terminal, the following error message would be shown:

2014-07-27 20:17:47.441 TUER[400:1303] *** NSInvocation: warning: object 0x107ef53c0 of class 'ThreadUtilities' does not implement methodSignatureForSelector: -- trouble ahead
2014-07-27 20:17:47.444 TUER[400:1303] *** NSInvocation: warning: object 0x107ef53c0 of class 'ThreadUtilities' does not implement doesNotRecognizeSelector: -- abort

We believe the issue was that the version of Java we shipped was too recent and earlier versions of OS X (Snow Leopard and Lion mainly, it seemed) did not properly support it. So we have downgraded for now.

Performance improvements

We've implemented a number of performance improvements. In general, these seek to minimise storage access. We noticed this makes the biggest improvement when paging through lists of albums, but there should be a general improvement as well.

Further improvements

We've also worked on:

  • Ignore 'LP' and 'EP' in case rules
  • Fixed the label on the "Fix all visible" button for fixing tag types
  • The UI now runs in "production mode" to avoid nasty "comet" errors
  • Fixed a rare problem: NotSerializableException: com.elsten.bliss.music.conceptual.model.ImmutableTrack
  • Fixed the "Use" button on the cover art alternatives page being displayed off screen
  • Tested on Windows 10

Downloading and installing

You can download from the downloads page. After you click through, installation instructions are available on the page following download.

If you are updating from a version older than 20141027, in app update is not recommended for this release, because of a fixed Java 8 incompatibility which is only resolved with a full re-installation.

Thanks to cogdogblogfor the image above.
tags: release

The Music Library Management blog

Dan Gravell

I'm Dan, the founder and programmer of bliss. I write bliss to solve my own problems with my digital music collection.