Skip to content

Commit 59cac0f

Browse files
committed
Minor Code cleanup
1 parent 95b9544 commit 59cac0f

File tree

3 files changed

+26
-31
lines changed

3 files changed

+26
-31
lines changed

core/src/main/java/com/sap/ai/sdk/core/common/ClientResponseHandler.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,10 @@ private T parseSuccess(@Nonnull final ClassicHttpResponse response) throws E {
8282
throw exceptionFactory.build("The HTTP Response is empty").setHttpResponse(response);
8383
}
8484

85+
val message = "Failed to parse response entity.";
8586
val content =
8687
tryGetContent(responseEntity)
87-
.getOrElseThrow(
88-
e ->
89-
exceptionFactory
90-
.build("Failed to parse response entity.", e)
91-
.setHttpResponse(response));
88+
.getOrElseThrow(e -> exceptionFactory.build(message, e).setHttpResponse(response));
9289
try {
9390
return objectMapper.readValue(content, successType);
9491
} catch (final JsonProcessingException e) {

core/src/main/java/com/sap/ai/sdk/core/common/ClientStreamingHandler.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ public Stream<D> handleStreamingResponse(@Nonnull final ClassicHttpResponse resp
8080
return objectMapper.readValue(data, successType);
8181
} catch (final IOException e) { // exception message e gets lost
8282
log.error("Failed to parse delta chunk to type {}", successType);
83-
throw exceptionFactory
84-
.build("Failed to parse delta chunk", e)
85-
.setHttpResponse(response);
83+
final String message = "Failed to parse delta chunk";
84+
throw exceptionFactory.build(message, e).setHttpResponse(response);
8685
}
8786
});
8887
}

core/src/main/java/com/sap/ai/sdk/core/common/IterableStreamConverter.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
import io.vavr.control.Try;
88
import java.io.BufferedReader;
9-
import java.io.IOException;
10-
import java.io.InputStream;
119
import java.io.InputStreamReader;
1210
import java.util.Iterator;
1311
import java.util.NoSuchElementException;
@@ -36,14 +34,18 @@ class IterableStreamConverter<T> implements Iterator<T> {
3634
/** see DEFAULT_CHAR_BUFFER_SIZE in {@link BufferedReader} * */
3735
static final int BUFFER_SIZE = 8192;
3836

37+
private static final String ERR_CONTENT = "Failed to read response content.";
38+
private static final String ERR_INTERRUPTED = "Parsing response content was interrupted";
39+
private static final String ERR_CLOSE = "Could not close input stream with error: {} (ignored)";
40+
3941
/** Read next entry for Stream or {@code null} when no further entry can be read. */
4042
private final Callable<T> readHandler;
4143

4244
/** Close handler to be called when Stream terminated. */
4345
private final Runnable stopHandler;
4446

4547
/** Error handler to be called when Stream is interrupted. */
46-
private final Function<Exception, RuntimeException> errorHandler;
48+
private final Function<Throwable, RuntimeException> errorHandler;
4749

4850
private boolean isDone = false;
4951
private boolean isNextFetched = false;
@@ -85,8 +87,8 @@ public T next() {
8587

8688
/**
8789
* Create a sequential Stream of lines from an HTTP response string (UTF-8). The underlying {@link
88-
* InputStream} is closed, when the resulting Stream is closed (e.g. via try-with-resources) or
89-
* when an exception occurred.
90+
* java.io.InputStream} is closed, when the resulting Stream is closed (e.g. via
91+
* try-with-resources) or when an exception occurred.
9092
*
9193
* @param response The HTTP response object.
9294
* @param exceptionFactory The exception factory to use for creating exceptions.
@@ -103,29 +105,26 @@ static <R extends ClientError> Stream<String> lines(
103105
throw exceptionFactory.build("The HTTP Response is empty").setHttpResponse(response);
104106
}
105107

106-
final InputStream inputStream;
107-
try {
108-
inputStream = response.getEntity().getContent();
109-
} catch (final IOException e) {
110-
throw exceptionFactory.build("Failed to read response content.", e).setHttpResponse(response);
111-
}
108+
// access input stream
109+
final var inputStream =
110+
Try.of(() -> response.getEntity().getContent())
111+
.getOrElseThrow(e -> exceptionFactory.build(ERR_CONTENT, e).setHttpResponse(response));
112112

113+
// initialize buffered reader
113114
final var reader = new BufferedReader(new InputStreamReader(inputStream, UTF_8), BUFFER_SIZE);
115+
116+
// define close handler
114117
final Runnable closeHandler =
115-
() ->
116-
Try.run(reader::close)
117-
.onFailure(
118-
e ->
119-
log.debug(
120-
"Could not close input stream with error: {} (ignored)",
121-
e.getClass().getSimpleName()));
122-
final Function<Exception, RuntimeException> errHandler =
123-
e ->
124-
exceptionFactory
125-
.build("Parsing response content was interrupted", e)
126-
.setHttpResponse(response);
118+
() -> Try.run(reader::close).onFailure(e -> log.debug(ERR_CLOSE, e.getClass()));
119+
120+
// define error handler
121+
final Function<Throwable, RuntimeException> errHandler =
122+
e -> exceptionFactory.build(ERR_INTERRUPTED, e).setHttpResponse(response);
127123

124+
// initialize lazy stream iterator
128125
final var iterator = new IterableStreamConverter<>(reader::readLine, closeHandler, errHandler);
126+
127+
// create lazy stream as output
129128
final var spliterator = Spliterators.spliteratorUnknownSize(iterator, ORDERED | NONNULL);
130129
return StreamSupport.stream(spliterator, /* NOT PARALLEL */ false).onClose(closeHandler);
131130
}

0 commit comments

Comments
 (0)