44import java .util .Collections ;
55import java .util .List ;
66
7+ import lombok .extern .slf4j .Slf4j ;
78import org .springframework .beans .factory .annotation .Autowired ;
89import org .springframework .stereotype .Component ;
910
1213import fr .insee .genesis .infrastructure .utils .FileUtils ;
1314
1415@ Component
16+ @ Slf4j
1517public 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