Bonjour,

je souhaiterais quitter proprement une tasklet si j'ai une erreur sur celle-ci et mettre et arrêter le batch sans avoir recour un System.exit().

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
/**
     * execution de la tasklet
     *
     */
    @Override
    public RepeatStatus execute(StepContribution arg0, ChunkContext arg1) throws IOException {
 
        if (suiviFluxDao.getNbFileDateTrt(FilenameUtils.getName(resource), Utils.getDateFromStringFormatUS(dateTraitement)) > 0) {
            LOGGER.info(PropertiesUtils.getLibelleExcep(Constantes.ERREUR_NB_FILE_SELECT,
                    new String[]{ConstantesNomsSql.TABLE_STCO_STAU_SUIVI_FLUX, FilenameUtils.getName(resource), dateTraitement, Constantes.NAME_TRT}));
            System.exit(1);
        } else {
            SuiviFluxBO suiviFluxBO = new SuiviFluxBO();
            suiviFluxBO.setDateSysteme(Utils.getDateTodayFormatUS());
            suiviFluxBO.setDateTrt(Utils.getDateFromStringFormatUS(dateTraitement));
            suiviFluxBO.setLibelleTrt("Batch_Java");
            suiviFluxBO.setNomficTrt(FilenameUtils.getName(resource));
            suiviFluxBO.setNbrrecTrt(Utils.countNbFile(resource));
            suiviFluxBO.setNomtabTrt(ConstantesNomsSql.TABLE_STCO_STAU_FIC_ADH);
            suiviFluxBO.setNbrlignesTrt(0);
            suiviFluxDao.insertSuiviBO(suiviFluxBO);
        }
        // fin de l'execution
        return RepeatStatus.FINISHED;
    }
La tasklet implémente StepExecutionListener mais comment indiquer dans le IF qui contient l'erreur de modifier le statuts d'exécution afin qu'il soit en FAILED ?

Merci pour vos pistes.

Cdt,