Skip to content

Commit 039c6e9

Browse files
committed
Do not report RejectedExecutionException when closing DeviceStateHandler
1 parent 757f514 commit 039c6e9

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

player/src/main/java/xyz/gianlu/librespot/player/state/DeviceStateHandler.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public final class DeviceStateHandler implements Closeable, DealerClient.Message
6666
private final Connect.PutStateRequest.Builder putState;
6767
private final AsyncWorker<Connect.PutStateRequest> putStateWorker;
6868
private volatile String connectionId = null;
69+
private volatile boolean closing = false;
6970

7071
public DeviceStateHandler(@NotNull Session session, @NotNull PlayerConfiguration conf) {
7172
this.session = session;
@@ -228,9 +229,9 @@ public synchronized void updateState(@NotNull Connect.PutStateReason reason, int
228229
.getDeviceBuilder().setDeviceInfo(deviceInfo).setPlayerState(state);
229230

230231
try {
231-
putStateWorker.submit(putState.build());
232-
} catch (RejectedExecutionException e){
233-
LOGGER.debug("Failed to update state, ignoring.", e);
232+
putStateWorker.submit(putState.build());
233+
} catch (RejectedExecutionException ex) {
234+
if (!closing) LOGGER.error("Failed to submit update state task.", ex);
234235
}
235236
}
236237

@@ -249,6 +250,8 @@ public void setVolume(int val) {
249250

250251
@Override
251252
public void close() {
253+
closing = true;
254+
252255
session.dealer().removeMessageListener(this);
253256
session.dealer().removeRequestListener(this);
254257

0 commit comments

Comments
 (0)