Skip to content

Commit f534a65

Browse files
committed
Drop usage of throwOnError body handler
1 parent 3e5a29c commit f534a65

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

rdf4j/src/main/java/com/inrupt/client/rdf4j/RDF4JBodyHandlers.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@
2020
*/
2121
package com.inrupt.client.rdf4j;
2222

23+
import com.inrupt.client.ClientHttpException;
2324
import com.inrupt.client.Response;
2425

2526
import java.io.ByteArrayInputStream;
2627
import java.io.IOException;
2728
import java.io.InputStream;
2829
import java.io.UncheckedIOException;
30+
import java.nio.charset.StandardCharsets;
2931

3032
import org.eclipse.rdf4j.model.Model;
3133
import org.eclipse.rdf4j.model.impl.DynamicModelFactory;
@@ -41,6 +43,18 @@
4143
*/
4244
public final class RDF4JBodyHandlers {
4345

46+
private static void throwOnError(final Response.ResponseInfo responseInfo) {
47+
if (!Response.isSuccess(responseInfo.statusCode())) {
48+
throw new ClientHttpException(
49+
"Could not map to a Jena entity.",
50+
responseInfo.uri(),
51+
responseInfo.statusCode(),
52+
responseInfo.headers(),
53+
new String(responseInfo.body().array(), StandardCharsets.UTF_8)
54+
);
55+
}
56+
}
57+
4458
private static Model responseToModel(final Response.ResponseInfo responseInfo) {
4559
return responseInfo.headers().firstValue("Content-Type")
4660
.map(RDF4JBodyHandlers::toRDF4JFormat).map(format -> {
@@ -70,10 +84,10 @@ public static Response.BodyHandler<Model> ofModel() {
7084
* @return an HTTP body handler
7185
*/
7286
public static Response.BodyHandler<Model> ofRDF4JModel() {
73-
return Response.BodyHandlers.throwOnError(
74-
RDF4JBodyHandlers::responseToModel,
75-
(r) -> Response.isSuccess(r.statusCode())
76-
);
87+
return responseInfo -> {
88+
RDF4JBodyHandlers.throwOnError(responseInfo);
89+
return RDF4JBodyHandlers.responseToModel(responseInfo);
90+
};
7791
}
7892

7993
private static Repository responseToRepository(final Response.ResponseInfo responseInfo) {
@@ -108,10 +122,10 @@ public static Response.BodyHandler<Repository> ofRepository() {
108122
* @return an HTTP body handler
109123
*/
110124
public static Response.BodyHandler<Repository> ofRDF4JRepository() {
111-
return Response.BodyHandlers.throwOnError(
112-
RDF4JBodyHandlers::responseToRepository,
113-
(r) -> Response.isSuccess(r.statusCode())
114-
);
125+
return responseInfo -> {
126+
RDF4JBodyHandlers.throwOnError(responseInfo);
127+
return RDF4JBodyHandlers.responseToRepository(responseInfo);
128+
};
115129
}
116130

117131
static RDFFormat toRDF4JFormat(final String mediaType) {

0 commit comments

Comments
 (0)