protected Entity deserializeEntity(HttpServletRequest request, EntityType entityType)
      throws IOException, FalconException {

    EntityParser<?> entityParser = EntityParserFactory.getParser(entityType);
    InputStream xmlStream = request.getInputStream();
    if (xmlStream.markSupported()) {
      xmlStream.mark(XML_DEBUG_LEN); // mark up to debug len
    }
    try {
      return entityParser.parse(xmlStream);
    } catch (FalconException e) {
      if (LOG.isDebugEnabled() && xmlStream.markSupported()) {
        try {
          xmlStream.reset();
          String xmlData = getAsString(xmlStream);
          LOG.debug("XML DUMP for ({}): {}", entityType, xmlData, e);
        } catch (IOException ignore) {
          // ignore
        }
      }
      throw e;
    }
  }
 @SuppressWarnings({"unchecked", "rawtypes"})
 private void validate(Entity entity) throws FalconException {
   EntityParser entityParser = EntityParserFactory.getParser(entity.getEntityType());
   entityParser.validate(entity);
 }