@Override public void run() { if (log.isLoggable(LogLevel.DEBUG)) { log.log(LogLevel.DEBUG, "Visitor session " + sessionName + ": Received message " + message); } try { if (message instanceof VisitorInfoMessage) { handleVisitorInfoMessage((VisitorInfoMessage)message); // always replies } else { handleDocumentMessage((DocumentMessage)message); // always replies on error } } catch (Throwable t) { com.yahoo.protect.Process.logAndDie("Caught unhandled error when processing message", t); } } }