protected Object reportUnhandledCfaslOpcode(int cfaslOpcode) {
    String errorMessage;

    if (cfaslOpcode == -1) {
      throw new CfaslInputStreamClosedException("Cfasl connection closed by peer because of bad opcode: " + cfaslOpcode);
    } else {
      errorMessage = "Unknown cfasl opcode: " + cfaslOpcode;
    }

    if (reportCfaslErrors) {
      debugWarn(errorMessage);

      return Integer.toString(cfaslOpcode);
    } else {
      //TODO create a new exception class for this case.
      throw new RuntimeException(errorMessage);
    }
  }