Les composantes d'une formation sont obligatoires, dans certains cas, on obtient donc une liste avec un tableau avec un élément vide lors de program.getRemoteOrgUnits().
Il faudrait donc tester si les éléments renvoyés par cette méthode sont vides avant de les traiter, par exemple ligne 328 de DefaultApogeeSynchronizationHelper :
for (String id : oldOrgUnits) { if (!ouReferences.contains(id)) { OrgUnit orgUnit = _resolver.resolveById(id); String warn = "La composante : " + orgUnit.getCode() + ", n'est plus liée à la formation : " + program.getCode() + ", elle devra être supprimée manuellement."; report.warn(warn); logger.warn(warn); } }
L'appel au resolver Ametys provoque l'erreur :
org.ametys.plugins.repository.AmetysRepositoryException: An object id must conform to the <protocol>://<protocol-specific-part> syntax:
at org.ametys.plugins.repository.AmetysObjectResolver.resolveById(AmetysObjectResolver.java:227)
at org.ametys.plugins.odfsync.apogee.DefaultApogeeSynchronizationHelper.synchronizeProgramOrgUnits(DefaultApogeeSynchronizationHelper.java:332)
[...]