Errors during parsing of the error-message are wrapped
[facebook-errors] / src / main / java / de / juplo / facebook / errors / GraphApiException.java
index 1b7eaaa..636b3d2 100644 (file)
@@ -1,12 +1,11 @@
 package de.juplo.facebook.errors;
 
 
-import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import org.slf4j.Logger;
@@ -48,12 +47,15 @@ public class GraphApiException extends RuntimeException
       HttpHeaders headers,
       InputStream in
       )
-      throws
-        IOException,
-        JsonParseException,
-        JsonMappingException
   {
-    return create(status, headers, OBJECT_MAPPER.readValue(in, FacebookErrorMessage.class));
+    try
+    {
+      return create(status, headers, OBJECT_MAPPER.readValue(in, FacebookErrorMessage.class));
+    }
+    catch (IOException | RuntimeException e)
+    {
+      return new ErrorResponseParsingErrorException(status, headers, e);
+    }
   }
 
   public static GraphApiException create(
@@ -61,12 +63,8 @@ public class GraphApiException extends RuntimeException
       HttpHeaders headers,
       byte[] message
       )
-      throws
-        IOException,
-        JsonParseException,
-        JsonMappingException
   {
-    return create(status, headers, OBJECT_MAPPER.readValue(message, FacebookErrorMessage.class));
+    return create(status, headers, new ByteArrayInputStream(message));
   }
 
   public static GraphApiException create(