diff --git a/src/main/java/ch/uzh/ifi/hase/soprafs24/Application.java b/src/main/java/ch/uzh/ifi/hase/soprafs24/Application.java index 83d18e9..bd4236c 100644 --- a/src/main/java/ch/uzh/ifi/hase/soprafs24/Application.java +++ b/src/main/java/ch/uzh/ifi/hase/soprafs24/Application.java @@ -44,7 +44,7 @@ public void addCorsMappings(@SuppressWarnings("null") CorsRegistry registry) { @Bean(name = "taskExecutor") public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(5); + executor.setCorePoolSize(10); executor.setMaxPoolSize(10); executor.setQueueCapacity(25); executor.setThreadNamePrefix("Async-"); diff --git a/src/main/java/ch/uzh/ifi/hase/soprafs24/service/RoomService.java b/src/main/java/ch/uzh/ifi/hase/soprafs24/service/RoomService.java index a6dfb8f..a85b1da 100644 --- a/src/main/java/ch/uzh/ifi/hase/soprafs24/service/RoomService.java +++ b/src/main/java/ch/uzh/ifi/hase/soprafs24/service/RoomService.java @@ -104,7 +104,18 @@ public Room createRoom(Room newRoom) { // Async fetch words for the theme while creating the room CompletableFuture> wordsFuture = CompletableFuture.supplyAsync(() -> { try { - return getWords(theme); + List words; + int retryCount = 0; + while (true) { + words = getWords(theme); + if(words != null){ + return words; + } + retryCount++; + if (retryCount >= 3) { + return new ArrayList<>(Arrays.asList("sopra", "group", "milestone", "sprint", "task", "client", "server")); + } + } } catch (IOException e) { System.err.println("Error while getting words: " + e.getMessage()); throw new RuntimeException(e); @@ -208,7 +219,7 @@ public List getWords(String theme) throws IOException { throw new IOException("Failed to extract JSON from message content"); } } catch (Exception e) { - e.printStackTrace(); + // e.printStackTrace(); throw new IOException("Failed to parse JSON response", e); } } else {