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;
}
+
public static GraphApiException create(
HttpStatus status,
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(
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(
case 104: return new AccessTokenRequiredException(status, headers, error);
case 190: return new AccessTokenExpiredException(status, headers, error);
// 200..299: permission errors
- case 200:
+ case 200: return new ApplicationNotAuthorizedByUserException(status, headers, error);
case 201:
case 202:
case 203:
case 2200: return new CallbackVerificationFailedException(status, headers, error);
default:
- LOG.info("unmapped error: {}", error);
- return new UnmappedErrorException(status, headers, error);
+ GraphApiException e = new UnmappedErrorException(status, headers, error);
+ LOG.info("unmapped error: {}", e.toString());
+ return e;
}
}