Skip to content

Commit 16086d8

Browse files
authored
Merge pull request eugenp#9345 from musibs/BAEL-4064
BAEL 4064 Out of Memory Error
2 parents 71b0dab + b4072a8 commit 16086d8

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.baeldung.error.oom;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.CoreMatchers.is;
5+
import static org.junit.Assert.assertThat;
6+
7+
import java.util.concurrent.ExecutorService;
8+
import java.util.concurrent.Executors;
9+
import java.util.concurrent.ThreadPoolExecutor;
10+
import java.util.concurrent.TimeUnit;
11+
import java.util.stream.IntStream;
12+
13+
import org.junit.jupiter.api.Test;
14+
15+
public class ExecutorServiceUnitTest {
16+
17+
@Test
18+
public void givenAnExecutorService_WhenMoreTasksSubmitted_ThenAdditionalTasksWait() {
19+
20+
// Given
21+
int noOfThreads = 5;
22+
ExecutorService executorService = Executors.newFixedThreadPool(noOfThreads);
23+
24+
Runnable runnableTask = () -> {
25+
try {
26+
TimeUnit.HOURS.sleep(1);
27+
} catch (InterruptedException e) {
28+
e.printStackTrace();
29+
}
30+
};
31+
32+
// When
33+
IntStream.rangeClosed(1, 10)
34+
.forEach(i -> executorService.submit(runnableTask));
35+
36+
// Then
37+
assertThat(((ThreadPoolExecutor) executorService).getQueue()
38+
.size(), is(equalTo(5)));
39+
}
40+
}

0 commit comments

Comments
 (0)