diff --git a/.github/workflows/emulate.yml b/.github/workflows/emulate.yml index 79a8df080..64eda9500 100644 --- a/.github/workflows/emulate.yml +++ b/.github/workflows/emulate.yml @@ -8,14 +8,21 @@ on: jobs: check: - runs-on: macos-latest + runs-on: ubuntu-latest strategy: fail-fast: false matrix: android-api-level: [ 19, 21, 24, 29 ] steps: - - uses: actions/checkout@v3 + - name: checkout + uses: actions/checkout@v4 + + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm - uses: reactivecircus/android-emulator-runner@v2 with: diff --git a/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java b/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java index f22789c78..6af23fccb 100644 --- a/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java +++ b/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java @@ -266,7 +266,11 @@ public void transferToChannelQueue(List queuedM for (Channel channel : map.values()) { if (channel.state.isReattachable()) { Log.d(TAG, "reAttach(); channel = " + channel.name); - channel.transferQueuedPresenceMessages(channelQueueMap.getOrDefault(channel.name, null)); + if (channelQueueMap.containsKey(channel.name)){ + channel.transferQueuedPresenceMessages(channelQueueMap.get(channel.name)); + } else { + channel.transferQueuedPresenceMessages(null); + } } } } diff --git a/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelTest.java b/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelTest.java index 4a77a08a9..8108ae6df 100644 --- a/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelTest.java +++ b/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelTest.java @@ -1675,7 +1675,7 @@ public void channel_invalid_resume_reattach_channels() throws AblyException { AblyRealtime finalAbly = ably; Exception conditionError = new Helpers.ConditionalWaiter(). - wait(() -> finalAbly.connection.connectionManager.msgSerial == 0, 5000); + wait(() -> finalAbly.connection.connectionManager.msgSerial == 0, 10000); assertNull(conditionError); attachedChannelWaiter.waitFor(ChannelState.attaching, ChannelState.attached);