Ejemplo n.º 1
0
 /**
  * Each operation can have one or many error responses Concatenate all the error responses and
  * create on string
  *
  * @return
  */
 private String calculateExceptionMessage() {
   StringBuilder errorMessage = new StringBuilder();
   if (this.getErrorResponses() != null) {
     for (ErrorResponse errorResponse : this.getErrorResponses()) {
       errorMessage.append(errorResponse.getCode() + " - " + errorResponse.getReason() + " ");
     }
   }
   return errorMessage.toString();
 }
Ejemplo n.º 2
0
  /** {@inheritDoc} */
  public void testMessageMarshall() {
    QName qname = new QName(OpenIDConstants.OPENID_20_NS, expectedMode);
    ErrorResponse response = (ErrorResponse) buildMessage(qname);

    response.setError(expectedError);
    response.setContact(expectedContact);
    response.setReference(expectedReference);

    assertEquals(expectedParameters, response);
  }
Ejemplo n.º 3
0
  @Test
  public void canBeCreatedAroundMessage() {
    // Arrange:
    final ErrorResponse response = new ErrorResponse(new TimeInstant(29), "badness", 500);

    // Assert:
    Assert.assertThat(response.getTimeStamp(), IsEqual.equalTo(new TimeInstant(29)));
    Assert.assertThat(response.getError(), IsEqual.equalTo("Internal Server Error"));
    Assert.assertThat(response.getMessage(), IsEqual.equalTo("badness"));
    Assert.assertThat(response.getStatus(), IsEqual.equalTo(500));
  }
Ejemplo n.º 4
0
  @Test
  public void responseWithoutDescriptionsCanBeRoundTripped() {
    // Act:
    final ErrorResponse response =
        createRoundTrippedResponse(new ErrorResponse(new TimeInstant(54), null, 890));

    // Assert:
    Assert.assertThat(response.getTimeStamp(), IsEqual.equalTo(new TimeInstant(54)));
    Assert.assertThat(response.getError(), IsNull.nullValue());
    Assert.assertThat(response.getMessage(), IsNull.nullValue());
    Assert.assertThat(response.getStatus(), IsEqual.equalTo(890));
  }
Ejemplo n.º 5
0
  @Test
  public void responseCanBeRoundTripped() {
    // Act:
    final ErrorResponse response =
        createRoundTrippedResponse(new ErrorResponse(new TimeInstant(18), "badness", 500));

    // Assert:
    Assert.assertThat(response.getTimeStamp(), IsEqual.equalTo(new TimeInstant(18)));
    Assert.assertThat(response.getError(), IsEqual.equalTo("Internal Server Error"));
    Assert.assertThat(response.getMessage(), IsEqual.equalTo("badness"));
    Assert.assertThat(response.getStatus(), IsEqual.equalTo(500));
  }
Ejemplo n.º 6
0
  @Test
  public void canBeCreatedAroundUnknownHttpStatus() {
    // Arrange:
    final ErrorResponse response =
        new ErrorResponse(new TimeInstant(18), "exception message", -123);

    // Assert:
    Assert.assertThat(response.getTimeStamp(), IsEqual.equalTo(new TimeInstant(18)));
    Assert.assertThat(response.getError(), IsNull.nullValue());
    Assert.assertThat(response.getMessage(), IsEqual.equalTo("exception message"));
    Assert.assertThat(response.getStatus(), IsEqual.equalTo(-123));
  }
Ejemplo n.º 7
0
  @Test
  public void canBeCreatedAroundException() {
    // Arrange:
    final ErrorResponse response =
        new ErrorResponse(
            new TimeInstant(18), new RuntimeException("exception message"), HttpStatus.NOT_FOUND);

    // Assert:
    Assert.assertThat(response.getTimeStamp(), IsEqual.equalTo(new TimeInstant(18)));
    Assert.assertThat(response.getError(), IsEqual.equalTo("Not Found"));
    Assert.assertThat(response.getMessage(), IsEqual.equalTo("exception message"));
    Assert.assertThat(response.getStatus(), IsEqual.equalTo(404));
  }
Ejemplo n.º 8
0
  @Test
  public void responseCanBeSerialized() {
    // Arrange:
    final JsonSerializer serializer = new JsonSerializer();
    final ErrorResponse response = new ErrorResponse(new TimeInstant(18), "badness", 500);

    // Act:
    response.serialize(serializer);
    final JSONObject jsonObject = serializer.getObject();

    // Assert:
    Assert.assertThat(jsonObject.get("timeStamp"), IsEqual.equalTo(18));
    Assert.assertThat(jsonObject.get("error"), IsEqual.equalTo("Internal Server Error"));
    Assert.assertThat(jsonObject.get("message"), IsEqual.equalTo("badness"));
    Assert.assertThat(jsonObject.get("status"), IsEqual.equalTo(500));
  }
Ejemplo n.º 9
0
  @Override
  public void processError(ODataServerError error, ErrorResponse response) {
    int logLevel = error.getStatusCode() >= 500 ? MessageLevel.ERROR : MessageLevel.WARNING;
    Throwable ex = getRoot(error.getException());
    // many exceptions in TeiidServiceHandler default as INTERNAL_SERVER_ERROR
    // so we make a better check for codes here
    if (ex instanceof TeiidNotImplementedException) {
      error.setException((TeiidNotImplementedException) ex);
      error.setCode(((TeiidNotImplementedException) ex).getCode());
      error.setStatusCode(501);
      logLevel = MessageLevel.DETAIL;
    } else if (ex instanceof TeiidProcessingException) {
      error.setException((TeiidProcessingException) ex);
      error.setCode(((TeiidProcessingException) ex).getCode());
      error.setStatusCode(400);
      logLevel = MessageLevel.WARNING;
    } else if (ex instanceof TeiidException) {
      error.setException((TeiidException) ex);
      error.setCode(((TeiidException) ex).getCode());
      error.setStatusCode(500);
      logLevel = MessageLevel.ERROR;
    } else if (ex instanceof TeiidRuntimeException) {
      error.setException((TeiidRuntimeException) ex);
      error.setCode(((TeiidRuntimeException) ex).getCode());
      error.setStatusCode(500);
      logLevel = MessageLevel.ERROR;
    }

    if (ex != error.getException() && ex.getMessage() != null) {
      if (LogManager.isMessageToBeRecorded(LogConstants.CTX_ODATA, MessageLevel.DETAIL)
          || logLevel <= MessageLevel.ERROR) {
        LogManager.log(
            logLevel,
            LogConstants.CTX_ODATA,
            error.getException(),
            ODataPlugin.Util.gs(ODataPlugin.Event.TEIID16050, error.getMessage(), ex.getMessage()));
      } else {
        LogManager.log(
            logLevel,
            LogConstants.CTX_DQP,
            ODataPlugin.Util.gs(ODataPlugin.Event.TEIID16051, error.getMessage(), ex.getMessage()));
      }
    } else {
      if (LogManager.isMessageToBeRecorded(LogConstants.CTX_ODATA, MessageLevel.DETAIL)
          || logLevel <= MessageLevel.ERROR) {
        LogManager.log(
            logLevel,
            LogConstants.CTX_ODATA,
            error.getException(),
            ODataPlugin.Util.gs(ODataPlugin.Event.TEIID16052, error.getMessage()));
      } else {
        LogManager.log(
            logLevel,
            LogConstants.CTX_DQP,
            ODataPlugin.Util.gs(ODataPlugin.Event.TEIID16053, error.getMessage()));
      }
    }
    response.writeError(error);
  }
Ejemplo n.º 10
0
  @Test
  public void shouldReturn500OnGatewayException() throws Exception {
    mockFdaGateway.exception = new GatewayException();
    final MvcResult mvcResult =
        mvc.perform(
                MockMvcRequestBuilders.get("/api/events")
                    .contentType(MediaType.APPLICATION_JSON)
                    .accept(MediaType.APPLICATION_JSON)
                    .param("productNdc", MockOpenFdaGateway.ASPIRIN_NDC))
            .andExpect(MockMvcResultMatchers.status().isInternalServerError())
            .andReturn();

    final ErrorResponse response =
        SimpleObjectMapper.mapResponse(mvcResult.getResponse(), ErrorResponse.class);

    assertThat(response.getMessage(), equalTo("Error communicating with OpenFDA API"));
  }
Ejemplo n.º 11
0
  /** {@inheritDoc} */
  public void testMessageUnmarshall() {
    ErrorResponse response = (ErrorResponse) unmarshallMessage(messageFile);

    String mode = response.getMode();
    assertEquals(
        "NegativeAssertion mode was " + mode + ", expected " + expectedMode, expectedMode, mode);

    String error = response.getError();
    assertEquals(
        "ErrorResponse error was " + error + ", expected " + expectedError, expectedError, error);

    String contact = response.getContact();
    assertEquals(
        "ErrorResponse contact was " + contact + ", expected " + expectedContact,
        expectedContact,
        contact);

    String reference = response.getReference();
    assertEquals(
        "ErrorResponse reference was " + reference + ", expected " + expectedReference,
        expectedReference,
        reference);
  }
Ejemplo n.º 12
0
 int getUserID(String sessioID, HttpServletResponse response) {
   int userID;
   try {
     userID = SessionManager.getUserID(sessioID);
   }
   // Illegal session id
   catch (IllegalArgumentException e) {
     Helper.answerError(
         response,
         HttpStatics.HTTP_STATUS_INVALID_PARAMS,
         ErrorResponse.build(ErrorCodes.ErrorCode.REQUEST_SESSION_ID_INVALID).toByteArray());
     return -1;
   }
   // Session is expired
   if (userID < 0) {
     Helper.answerError(
         response,
         HttpStatics.HTTP_STATUS_INVALID_PARAMS,
         ErrorResponse.build(ErrorCodes.ErrorCode.REQUEST_SESSION_EXPIRED).toByteArray());
     return -1;
   }
   return userID;
 }
Ejemplo n.º 13
0
 private void respondErrorAndClose(HttpExchange exchange, ErrorResponse errorResponse)
     throws IOException {
   respondWithXmlDocumentAndClose(
       exchange, errorResponse.getStatusCode(), new ErrorResponseXmlDocument(errorResponse));
 }