@Override
 public Object read(Type type, Class<?> contextClass, HttpInputMessage inputMessage)
     throws IOException, HttpMessageNotReadableException {
   try {
     TumblrResponse tumblrResponse =
         objectMapper.readValue(inputMessage.getBody(), TumblrResponse.class);
     checkResponse(tumblrResponse);
     Object result;
     if (TumblrResponse.class.equals(type)) {
       // don't parse the response json, callee is going to process is manually
       result = tumblrResponse;
     } else {
       // parse the response json into an instance of the given class
       JavaType javaType = getJavaType(type, contextClass);
       String response = tumblrResponse.getResponseJson();
       result = objectMapper.readValue(response, javaType);
     }
     return result;
   } catch (JsonParseException ex) {
     throw new HttpMessageNotReadableException("Could not read JSON: " + ex.getMessage(), ex);
   } catch (EOFException ex) {
     throw new HttpMessageNotReadableException("Could not read JSON: " + ex.getMessage(), ex);
   } catch (Exception e) {
     e.printStackTrace();
     throw new IOException(e);
   }
 }
 @Test
 public void testEndObject() throws Exception {
   JacksonParserWrapper parser = new JacksonParserWrapper(jsonFactory.createJsonParser("{}"));
   parser.startObject();
   parser.endObject();
   try {
     parser.endObject();
     fail("Where is the Exception");
   } catch (JsonParseException e) {
     assertThat(e.getMessage()).startsWith("Invalid token. Expected <END_OBJECT> but got <null>");
   }
 }
 public static Manifest readManifest(File file) throws IOException {
   String errorMessage = "";
   try {
     return mMapper.readValue(file, Manifest.class);
   } catch (JsonParseException jpe) {
     errorMessage = jpe.getMessage();
   } catch (JsonMappingException jme) {
     errorMessage = jme.getMessage();
   }
   LoggerFactory.getLogger("Bootloader")
       .error("Error while parsing manifest " + file.getName() + ": " + errorMessage);
   return null;
 }
  public JSONArray validateFields(MultivaluedMap<String, String> parameters) {
    JSONArray validationErrors = new JSONArray();

    // Dataset Validation ---------------------------------------------
    String datasetMetadata = parameters.get("meta").get(0);

    if (datasetMetadata != null) {
      datasetMetadata = URLDecoder.decode(datasetMetadata);
      try {
        if ((!datasetMetadata.equals("")) && (!datasetMetadata.equals("[]"))) {
          JSONObject metadataObject = JSONUtils.toJSONObject(datasetMetadata);
          JSONArray columnsMetadataArray = metadataObject.getJSONArray("columns");

          for (int j = 0; j < columnsMetadataArray.length(); j++) {
            JSONObject columnJsonObject = columnsMetadataArray.getJSONObject(j);
            String columnName = columnJsonObject.getString("column");
            if (columnJsonObject.getString("pname").equalsIgnoreCase("type")) {
              if (columnName == null) {
                validationErrors.put(
                    new JSONObject("{message: 'Validation error: Column name cannot be null'}"));
              } /* else if(Pattern.compile("\\s").matcher(columnName).find()){
                	validationErrors.put(new JSONObject("{message: 'Validation error: Space character not allowed for column name "+ columnName + "'}"));
                }else if(Pattern.compile("[ÀÈÌÒÙàèìòùÁÉÍÓÚÝáéíóúýÂÊÎÔÛâêîôûÃÑÕãñõÄËÏÖÜŸäëïöüŸ¡¿çÇŒœßØøÅåÆæÞþÐðÐð'.,&#@:?!()$\\/]").matcher(columnName).find()){
                	validationErrors.put(new JSONObject("{message: 'Validation error: Special characters not allowed for column name "+ columnName + "'}"));
                } */
            }
            String propertyName = columnJsonObject.getString("pname");
            if (propertyName == null) {
              validationErrors.put(
                  new JSONObject("{message: 'Validation error: Property name cannot be null'}"));
            } /* else if( Pattern.compile("\\s").matcher(propertyName).find()){
              	validationErrors.put(new JSONObject("{message: 'Validation error: Space character not allowed for Property name "+ propertyName + "'}"));
              }else if( Pattern.compile("[ÀÈÌÒÙàèìòùÁÉÍÓÚÝáéíóúýÂÊÎÔÛâêîôûÃÑÕãñõÄËÏÖÜŸäëïöüŸ¡¿çÇŒœßØøÅåÆæÞþÐðÐð'.,&#@:?!()$\\/]").matcher(propertyName).find()){
              	validationErrors.put(new JSONObject("{message: 'Validation error: Special characters not allowed for Property name "+ propertyName + "'}"));
              } */
            String propertyValue = columnJsonObject.getString("pvalue");
          }
        }

      } catch (JsonMappingException e1) {
        logger.error(e1.getMessage());
      } catch (JsonParseException e1) {
        logger.error(e1.getMessage());
      } catch (JSONException e1) {
        logger.error(e1.getMessage());
      } catch (IOException e1) {
        logger.error(e1.getMessage());
      }
    }
    return validationErrors;
  }
 @Override
 public List<JiveActivity> getActivites() {
   String jsonString = jiveRestClient.getActivities();
   ObjectMapper mapper = new ObjectMapper();
   List<JiveActivity> activities = null;
   try {
     activities = mapper.readValue(jsonString, new TypeReference<List<JiveActivity>>() {});
   } catch (JsonParseException e) {
     log.error(e.getMessage());
   } catch (JsonMappingException e) {
     log.error(e.getMessage());
   } catch (IOException e) {
     log.error(e.getMessage());
   }
   return activities;
 }
 private KafkaConfig deserializeKafkaSchemalDesc(StreamingRequest streamingRequest) {
   KafkaConfig desc = null;
   try {
     logger.debug("Saving KafkaConfig " + streamingRequest.getKafkaConfig());
     desc = JsonUtil.readValue(streamingRequest.getKafkaConfig(), KafkaConfig.class);
   } catch (JsonParseException e) {
     logger.error("The KafkaConfig definition is invalid.", e);
     updateRequest(streamingRequest, false, e.getMessage());
   } catch (JsonMappingException e) {
     logger.error("The data KafkaConfig definition is invalid.", e);
     updateRequest(streamingRequest, false, e.getMessage());
   } catch (IOException e) {
     logger.error("Failed to deal with the request.", e);
     throw new InternalErrorException("Failed to deal with the request:" + e.getMessage(), e);
   }
   return desc;
 }
  public Urllib login() throws LoginException, BankException {
    urlopen = new Urllib(CertificateReader.getCertificates(context, R.raw.cert_avanza));
    urlopen.addHeader("ctag", "1122334455");
    urlopen.setUserAgent("Avanza Bank 131 (iPhone; iPhone OS 6.1.4; sv_SE)");
    urlopen.addHeader(
        "Authorization",
        "Basic "
            + Base64.encodeToString(
                new String(username + ":" + password).getBytes(), Base64.NO_WRAP));

    try {
      HttpResponse httpResponse =
          urlopen.openAsHttpResponse(API_URL + "account/overview/all", null, false);
      if (httpResponse.getStatusLine().getStatusCode() == 401) {
        throw new LoginException(context.getText(R.string.invalid_username_password).toString());
      }
      ObjectMapper vObjectMapper = new ObjectMapper();
      AccountOverview r =
          vObjectMapper.readValue(httpResponse.getEntity().getContent(), AccountOverview.class);
      for (com.liato.bankdroid.banking.banks.avanza.model.Account account : r.getAccounts()) {
        Account a =
            new Account(
                account.getAccountName(),
                new BigDecimal(account.getBalance()),
                account.getAccountId());
        if (!account.getCurrencyAccounts().isEmpty()) {
          a.setCurrency(account.getCurrencyAccounts().get(0).getCurrency());
        }
        accounts.add(a);
      }
    } catch (JsonParseException e) {
      e.printStackTrace();
      throw new BankException(e.getMessage());
    } catch (ClientProtocolException e) {
      e.printStackTrace();
      throw new BankException(e.getMessage());
    } catch (IOException e) {
      e.printStackTrace();
      throw new BankException(e.getMessage());
    }
    return urlopen;
  }
  private TableDesc deserializeTableDesc(StreamingRequest streamingRequest) {
    TableDesc desc = null;
    try {
      logger.debug("Saving TableDesc " + streamingRequest.getTableData());
      desc = JsonUtil.readValue(streamingRequest.getTableData(), TableDesc.class);
    } catch (JsonParseException e) {
      logger.error("The TableDesc definition is invalid.", e);
      updateRequest(streamingRequest, false, e.getMessage());
    } catch (JsonMappingException e) {
      logger.error("The data TableDesc definition is invalid.", e);
      updateRequest(streamingRequest, false, e.getMessage());
    } catch (IOException e) {
      logger.error("Failed to deal with the request.", e);
      throw new InternalErrorException("Failed to deal with the request:" + e.getMessage(), e);
    }

    String[] dbTable = HadoopUtil.parseHiveTableName(desc.getName());
    desc.setName(dbTable[1]);
    desc.setDatabase(dbTable[0]);
    desc.getIdentity();
    return desc;
  }
 @Override
 public Response toResponse(final JsonParseException ex) {
   return status(BAD_REQUEST).entity(ex.getMessage()).build();
 }