From 8ebe2b4909bd17a422c853778e2924f264b94a23 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Tue, 1 Dec 2020 11:09:42 -0700 Subject: [PATCH 1/3] Don't crash SDK is socket.close() fails --- firebase-database/CHANGELOG.md | 6 +++++- .../com/google/firebase/database/tubesock/WebSocket.java | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/firebase-database/CHANGELOG.md b/firebase-database/CHANGELOG.md index beadcdad905..208e413cf94 100644 --- a/firebase-database/CHANGELOG.md +++ b/firebase-database/CHANGELOG.md @@ -1,4 +1,8 @@ -# 19.5.1 (Unreleased) +# Unreleased +- [fixed] Fixed a crash on some Pixel devices that occurred when closing the + network connection. + +# 19.5.1 - [fixed] Fixes a regression in v19.4 that may cause assertion failures, especially when persistence is enabled. diff --git a/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java b/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java index 526b6a6dba3..ba26b2c9465 100644 --- a/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java +++ b/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java @@ -261,8 +261,8 @@ private synchronized void closeSocket() { if (socket != null) { try { socket.close(); - } catch (IOException e) { - throw new RuntimeException(e); + } catch (Throwable e) { + eventHandler.onError(new WebSocketException("Failed to close", e)); } } state = State.DISCONNECTED; From f0904b8c9243ba907dcc93aa4f306a4a6f450a85 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Tue, 1 Dec 2020 11:16:53 -0700 Subject: [PATCH 2/3] Add Changelog for Query.get() --- firebase-database/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/firebase-database/CHANGELOG.md b/firebase-database/CHANGELOG.md index 208e413cf94..5752c7b83df 100644 --- a/firebase-database/CHANGELOG.md +++ b/firebase-database/CHANGELOG.md @@ -1,6 +1,9 @@ # Unreleased - [fixed] Fixed a crash on some Pixel devices that occurred when closing the network connection. +- [added] Added `Query.get()`, which allows users to receive a single data + snapshot. `Query.get()` returns the latest value even if an older value + already exists in cache. # 19.5.1 - [fixed] Fixes a regression in v19.4 that may cause assertion failures, From eb4f8f8f539b69c0e9da467f3f182ef6c62416fb Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Wed, 2 Dec 2020 09:08:36 -0700 Subject: [PATCH 3/3] s/Throwable/Exception --- .../java/com/google/firebase/database/tubesock/WebSocket.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java b/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java index ba26b2c9465..532cfce1b17 100644 --- a/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java +++ b/firebase-database/src/main/java/com/google/firebase/database/tubesock/WebSocket.java @@ -261,7 +261,7 @@ private synchronized void closeSocket() { if (socket != null) { try { socket.close(); - } catch (Throwable e) { + } catch (Exception e) { eventHandler.onError(new WebSocketException("Failed to close", e)); } }