code: private void handleUpdate(final TrackMetadataUpdate update) {
          if ((update.metadata == null) || (update.metadata.getArtworkId() == 0)) {
              // Either we have no metadata, or the track has no album art
              clearDeck(update);
          } else {
              // We can offer artwork for this device; check if we have already looked up this art
              final AlbumArt lastArt = hotCache.get(DeckReference.getDeckReference(update.player, 0));
              final DataReference artReference = new DataReference(update.metadata.trackReference.player,
                      update.metadata.trackReference.slot, update.metadata.getArtworkId());
              if (lastArt == null || !lastArt.artReference.equals(artReference)) {  // We have something new!
  
                  // First see if we can find the new track in one of our in-memory caches
                  AlbumArt cached = findArtInMemoryCaches(artReference);
                  if (cached != null) {  // Found a cue hit, use it.
                      updateArt(update, cached);
                      return;
                  }
  
                  // Not in either cache so try actually retrieving it.
                  if (activeRequests.add(update.player)) {
                      clearDeck(update);  // We won't know what it is until our request completes.
                      // We had to make sure we were not already asking for this track.
                      new Thread(new Runnable() {
                          @Override
                          public void run() {
                              try {
                                  AlbumArt art = requestArtworkInternal(artReference, update.metadata.trackType, true);
                                  if (art != null) {
                                      updateArt(update, art);
                                  }
                              } catch (Exception e) {
                                  logger.warn("Problem requesting album art from update" + update, e);
                              } finally {
                                  activeRequests.remove(update.player);
                              }
                          }
                      }).start();
                  }
              }
          }
      }
docs: Process a metadata update from the {@link MetadataFinder}, and see if it means the album art associated with
  any player has changed.
  
  @param update describes the new metadata we have for a player, if any