cstamas commented on a change in pull request #82:
URL: https://github.com/apache/jclouds/pull/82#discussion_r489376596



##########
File path: apis/sts/src/test/java/org/jclouds/aws/util/AWSUtilsTest.java
##########
@@ -88,6 +95,20 @@ public void testNoExceptionParsingTextPlain() {
       assertNull(utils.parseAWSErrorFromContent(command.getCurrentRequest(), 
response));
    }
 
+   /**
+    * Do not attempt to parse empty payload.
+    */
+   @Test
+   public void testNoExceptionEmptyPayload() {
+      utils.logger = mock(Logger.class);
+      utils.logger.warn(anyObject(Throwable.class), anyString());
+      expectLastCall().andThrow(new IllegalStateException("log spam"));
+      replay(utils.logger);
+      HttpResponse response = 
HttpResponse.builder().statusCode(NOT_FOUND.getStatusCode()).payload(new 
StringPayload("")).build();
+      
response.getPayload().getContentMetadata().setContentType("application/unknown");
+      assertNull(utils.parseAWSErrorFromContent(command.getCurrentRequest(), 
response));
+   }

Review comment:
       Hey, sorry for late response. Well yes, that could be made as well, 
but...
   
   I really wanted to make sure that execution does not end up in `catch` 
branch, and there logger is the only thing I could get hold of :) I mean, in 
future the code may change (for example the method `parseAWSErrorFromContent` 
may choose to reuse `actualPayload` byte[]), and then the mocked test would may 
become "false negative". This way, am sure my goal is achieve: there is no WARN 
log spam :smile: 
   
   But in general, am open to both changes.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to