Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions src/main/java/com/google/genai/AsyncLive.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
Expand Down Expand Up @@ -241,16 +242,18 @@ public void onMessage(ByteBuffer message) {

@Override
public void onError(Exception ex) {
System.err.println("Error during live session: " + ex.getMessage());
ex.printStackTrace();
logger.log(Level.SEVERE, "Error during live session", ex);
if (!sessionFuture.isDone()) {
sessionFuture.completeExceptionally(ex);
}
}

@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("Live session closed with code: " + code + " and reason: " + reason);
logger.log(
Level.INFO,
"Live session closed with code: {0} and reason: {1}",
new Object[] {code, reason});
if (!sessionFuture.isDone()) {
sessionFuture.completeExceptionally(
new GenAiIOException("WebSocket closed unexpectedly: " + reason));
Expand All @@ -275,8 +278,7 @@ private void handleIncomingMessage(String message) {
"Initial message from WebSocket did not contain setupComplete: " + message));
}
} catch (RuntimeException e) {
System.err.println("Error deserializing message: " + e.getMessage());
e.printStackTrace();
logger.log(Level.SEVERE, "Error deserializing message", e);
sessionFuture.completeExceptionally(e);
}
return;
Expand All @@ -293,13 +295,12 @@ private void handleIncomingMessage(String message) {
JsonSerializable.fromJsonNode(responseNode, LiveServerMessage.class);
messageCallback.accept(serverMessage);
} catch (RuntimeException e) {
System.err.println("Error deserializing message: " + e.getMessage());
e.printStackTrace();
logger.log(Level.SEVERE, "Error deserializing message", e);
}
} else {
System.err.println(
"Received message from live session but no callback registered! Please call"
+ " `AsyncSession.receive()` to register a callback.");
logger.severe(
"Received message from live session, but no callback registered! Please call"
+ " `AsyncSession.receive()` to register a callback first.");
}
}
}
Expand Down