code: public void setItem(int index) {
          if (index < 0 || index >= items.size()) {
              return;
          }
          stop();
          currentItemIndex = index;
          try {
              PlayItemEntry entry = items.get(currentItemIndex);
              if (entry != null) {
                  IPlayItem item = entry.item;
                  engine.play(item);
                  entry.played = true;
              }
          } catch (IOException e) {
              log.warn("setItem caught a IOException", e);
          } catch (StreamNotFoundException e) {
              // let the engine retain the STOPPED stateand wait for control from outside
              log.debug("setItem caught a StreamNotFoundException");
          } catch (IllegalStateException e) {
              log.warn("Illegal state exception on playlist item setup", e);
          }
      }
docs: {@inheritDoc}