Skip to content

Commit fcdfd30

Browse files
committed
fix: crash when unknown mode spec folder fix
1 parent c7fecc0 commit fcdfd30

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/main/java/fr/insee/genesis/controller/utils/ControllerUtils.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Collections;
55
import java.util.List;
66

7+
import lombok.extern.slf4j.Slf4j;
78
import org.springframework.beans.factory.annotation.Autowired;
89
import org.springframework.stereotype.Component;
910

@@ -12,6 +13,7 @@
1213
import fr.insee.genesis.infrastructure.utils.FileUtils;
1314

1415
@Component
16+
@Slf4j
1517
public class ControllerUtils {
1618

1719
private final FileUtils fileUtils;
@@ -30,11 +32,17 @@ public List<Mode> getModesList(String campaign, Mode modeSpecified) throws Genes
3032
}
3133
List<Mode> modes = new ArrayList<>();
3234
String specFolder = fileUtils.getSpecFolder(campaign);
33-
List<String> specFolders = fileUtils.listFolders(specFolder);
34-
if (specFolders.isEmpty()) {
35+
List<String> modeSpecFolders = fileUtils.listFolders(specFolder);
36+
if (modeSpecFolders.isEmpty()) {
3537
throw new GenesisException(404, "No specification folder found " + specFolder);
3638
}
37-
specFolders.forEach(modeLabel -> modes.add(Mode.getEnumFromModeName(modeLabel)));
39+
for(String modeSpecFolder : modeSpecFolders){
40+
if(Mode.getEnumFromModeName(modeSpecFolder) == null) {
41+
log.warn("There is an invalid mode folder name in spec folder : {}", modeSpecFolder);
42+
continue;
43+
}
44+
modes.add(Mode.getEnumFromModeName(modeSpecFolder));
45+
}
3846
if (modes.contains(Mode.F2F) && modes.contains(Mode.TEL)) {
3947
throw new GenesisException(409, "Cannot treat simultaneously TEL and FAF modes");
4048
}

0 commit comments

Comments
 (0)