Skip to content

Commit 169397b

Browse files
committed
fix: handle response send errors
1 parent 72ecbc1 commit 169397b

6 files changed

Lines changed: 45 additions & 17 deletions

File tree

pojos/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>java-crowd-control</artifactId>
77
<groupId>dev.qixils.crowdcontrol</groupId>
8-
<version>3.9.1</version>
8+
<version>3.9.2-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -19,7 +19,7 @@
1919
<developerConnection>scm:git:https://github.com/qixils/java-crowd-control
2020
</developerConnection>
2121
<url>https://github.com/qixils/java-crowd-control.git</url>
22-
<tag>v3.9.1</tag>
22+
<tag>v3.9.2</tag>
2323
</scm>
2424
<licenses>
2525
<license>

pojos/src/main/java/dev/qixils/crowdcontrol/TimedEffect.java

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -265,15 +265,23 @@ public void queue() throws IllegalStateException {
265265
// check if a global effect is running
266266
TimedEffect globalActiveEffect = ACTIVE_EFFECTS.get(globalKey);
267267
if (globalActiveEffect != null && !globalActiveEffect.isComplete()) {
268-
request.buildResponse().type(Response.ResultType.RETRY).message("Timed effect is already running").send();
268+
try {
269+
request.buildResponse().type(Response.ResultType.RETRY).message("Timed effect is already running").send();
270+
} catch (Exception e) {
271+
logger.error("Failed to send retry response", e);
272+
}
269273
return;
270274
}
271275

272276
// check if a per-streamer effect is running (on any targeted streamer)
273277
for (MapKey mapKey : mapKeys) {
274278
TimedEffect activeEffect = ACTIVE_EFFECTS.get(mapKey);
275279
if (activeEffect != null && !activeEffect.isComplete()) {
276-
request.buildResponse().type(Response.ResultType.RETRY).message("Timed effect is already running").send();
280+
try {
281+
request.buildResponse().type(Response.ResultType.RETRY).message("Timed effect is already running").send();
282+
} catch (Exception e) {
283+
logger.error("Failed to send retry response", e);
284+
}
277285
return;
278286
}
279287
}
@@ -301,7 +309,11 @@ private void start() {
301309
response = callback.apply(this);
302310
} catch (Throwable exception) {
303311
logger.error("Exception occurred during starting callback", exception);
304-
request.buildResponse().type(Response.ResultType.FAILURE).message("Requested effect failed to execute").send();
312+
try {
313+
request.buildResponse().type(Response.ResultType.FAILURE).message("Requested effect failed to execute").send();
314+
} catch (Exception e) {
315+
logger.error("Failed to send failure response", e);
316+
}
305317

306318
duration = -1;
307319
if (blocksOthers) {
@@ -330,7 +342,11 @@ private void start() {
330342
future = EXECUTOR.schedule(() -> complete(), duration, TimeUnit.MILLISECONDS);
331343
}
332344

333-
response.send();
345+
try {
346+
response.send();
347+
} catch (Exception e) {
348+
logger.error("Failed to send start response", e);
349+
}
334350
}
335351

336352
/**
@@ -364,7 +380,11 @@ public void pause() throws IllegalStateException { // TODO: change to boolean re
364380
}
365381

366382
paused = true;
367-
request.buildResponse().type(Response.ResultType.PAUSED).timeRemaining(duration).send();
383+
try {
384+
request.buildResponse().type(Response.ResultType.PAUSED).timeRemaining(duration).send();
385+
} catch (Exception e) {
386+
logger.error("Failed to send pause response", e);
387+
}
368388
}
369389

370390
/**
@@ -391,7 +411,11 @@ public void resume() throws IllegalStateException {
391411

392412
paused = false;
393413
startedAt = System.currentTimeMillis();
394-
request.buildResponse().type(Response.ResultType.RESUMED).timeRemaining(duration).send();
414+
try {
415+
request.buildResponse().type(Response.ResultType.RESUMED).timeRemaining(duration).send();
416+
} catch (Exception e) {
417+
logger.error("Failed to send resumed response", e);
418+
}
395419
future = EXECUTOR.schedule(() -> complete(), duration, TimeUnit.MILLISECONDS);
396420
}
397421

@@ -439,7 +463,11 @@ public boolean complete(boolean executeCompletionCallback) throws IllegalStateEx
439463
}
440464
}
441465

442-
request.buildResponse().type(Response.ResultType.FINISHED).send();
466+
try {
467+
request.buildResponse().type(Response.ResultType.FINISHED).send();
468+
} catch (Exception e) {
469+
logger.error("Failed to send finished response", e);
470+
}
443471
if (executeCompletionCallback && completionCallback != null) {
444472
try {
445473
completionCallback.accept(this);

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<groupId>dev.qixils.crowdcontrol</groupId>
99
<artifactId>java-crowd-control</artifactId>
10-
<version>3.9.1</version> <!-- don't forget to update scm tags & submodule versions -->
10+
<version>3.9.2-SNAPSHOT</version> <!-- don't forget to update scm tags & submodule versions -->
1111
<packaging>pom</packaging>
1212

1313
<modules>
@@ -25,7 +25,7 @@
2525
<developerConnection>scm:git:https://github.com/qixils/java-crowd-control
2626
</developerConnection>
2727
<url>https://github.com/qixils/java-crowd-control.git</url>
28-
<tag>v3.9.1</tag>
28+
<tag>v3.9.2</tag>
2929
</scm>
3030
<licenses>
3131
<license>

receiver/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>java-crowd-control</artifactId>
77
<groupId>dev.qixils.crowdcontrol</groupId>
8-
<version>3.9.1</version>
8+
<version>3.9.2-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -20,7 +20,7 @@
2020
<developerConnection>scm:git:https://github.com/qixils/java-crowd-control
2121
</developerConnection>
2222
<url>https://github.com/qixils/java-crowd-control.git</url>
23-
<tag>v3.9.1</tag>
23+
<tag>v3.9.2</tag>
2424
</scm>
2525
<licenses>
2626
<license>

sender/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>java-crowd-control</artifactId>
77
<groupId>dev.qixils.crowdcontrol</groupId>
8-
<version>3.9.1</version>
8+
<version>3.9.2-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -20,7 +20,7 @@
2020
<developerConnection>scm:git:https://github.com/qixils/java-crowd-control
2121
</developerConnection>
2222
<url>https://github.com/qixils/java-crowd-control.git</url>
23-
<tag>v3.9.1</tag>
23+
<tag>v3.9.2</tag>
2424
</scm>
2525
<licenses>
2626
<license>

tests/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>java-crowd-control</artifactId>
77
<groupId>dev.qixils.crowdcontrol</groupId>
8-
<version>3.9.1</version>
8+
<version>3.9.2-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -20,7 +20,7 @@
2020
<developerConnection>scm:git:https://github.com/qixils/java-crowd-control
2121
</developerConnection>
2222
<url>https://github.com/qixils/java-crowd-control.git</url>
23-
<tag>v3.9.1</tag>
23+
<tag>v3.9.2</tag>
2424
</scm>
2525
<licenses>
2626
<license>

0 commit comments

Comments
 (0)