Skip to content

Commit 884cf89

Browse files
committed
Fix intermittent failure in Balking pattern describe in iluwatar#699
1 parent db33cc5 commit 884cf89

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

balking/src/test/java/com/iluwatar/balking/WashingMachineTest.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,36 @@
2222
*/
2323
package com.iluwatar.balking;
2424

25-
import org.junit.jupiter.api.Disabled;
26-
import org.junit.jupiter.api.Test;
25+
import static org.junit.jupiter.api.Assertions.assertEquals;
2726

2827
import java.util.concurrent.ExecutorService;
2928
import java.util.concurrent.Executors;
3029
import java.util.concurrent.TimeUnit;
3130

32-
import static org.junit.jupiter.api.Assertions.assertEquals;
31+
import org.junit.jupiter.api.Test;
3332

3433
/**
3534
* Tests for {@link WashingMachine}
3635
*/
3736
public class WashingMachineTest {
3837

39-
private volatile WashingMachineState machineStateGlobal;
38+
private WashingMachineState machineStateGlobal;
4039

41-
@Disabled
4240
@Test
4341
public void wash() throws Exception {
4442
WashingMachine washingMachine = new WashingMachine();
4543
ExecutorService executorService = Executors.newFixedThreadPool(2);
46-
executorService.execute(washingMachine::wash);
4744
executorService.execute(() -> {
4845
washingMachine.wash();
49-
machineStateGlobal = washingMachine.getWashingMachineState();
46+
if(machineStateGlobal==null) {
47+
machineStateGlobal = washingMachine.getWashingMachineState();
48+
}
49+
});
50+
executorService.execute(() -> {
51+
washingMachine.wash();
52+
if(machineStateGlobal==null) {
53+
machineStateGlobal = washingMachine.getWashingMachineState();
54+
}
5055
});
5156
executorService.shutdown();
5257
try {

0 commit comments

Comments
 (0)