/** @see org.squale.squalix.util.process.ProcessErrorHandler#processError(java.lang.String) */ public void processError(String pErrorMessage) { // cette méthode n'est effectué que si le message n'est pas à ignorer if (!mConfiguration.ignoreMsg(pErrorMessage)) { LOGGER.error(McCabeMessages.getString("logs.error.tools_error") + pErrorMessage); // Certaines erreurs sonst connues, on va alors essayer de les mapper avec // un message plus explicite ErrorBO error = new ErrorBO(); error.setInitialMessage(pErrorMessage); // On modifie le message en remplaçant par un message plus explicite si il est défini error.setMessage(mConfiguration.getReplacingMsg(pErrorMessage)); // sinon on met un message générique if (pErrorMessage.equals(error.getMessage())) { error.setMessage(McCabeMessages.getString("error.processing")); } error.setLevel(ErrorBO.CRITICITY_FATAL); if (!mConfiguration.ignoreMsg(pErrorMessage) && !mConfiguration.changeErrorMsgToWarning(pErrorMessage)) { mErrors.add(error); } // Et on insère la chaîne dans le fichir de log des erreurs si le buffer a été crée if (mErrorWriter != null) { try { mErrorWriter.write(pErrorMessage + "\n"); } catch (IOException e) { // On log juste l'erreur LOGGER.warn(e); } } } }
/** @see org.squale.squalix.util.process.ProcessOutputHandler#processOutput(java.lang.String) */ public void processOutput(String pOutputLine) { // On filtre une erreur connue "Can't create directory '/OUTILS/McCabe/current/repos'." // qui ne gêne en rien le bon déroulement de McCabe. if (mConfiguration != null && !mConfiguration.ignoreMsg(pOutputLine)) { // On ajoute le nom du fichier au message s'il le faut mConfiguration.addFileNameToMsg(pOutputLine, mCurrentComponent); // CAS ERREUR if (pOutputLine.startsWith("ERR")) { // On teste si le message d'erreur ne fait pas parti des messages à considérer comme warning if (mConfiguration.changeErrorMsgToWarning(pOutputLine)) { // On log un warning initError(pOutputLine, ErrorBO.CRITICITY_WARNING); } else { // Il s'agit d'une erreur initError(pOutputLine, ErrorBO.CRITICITY_FATAL); mStatus = FAILED; } // CAS WARNING } else if (pOutputLine.startsWith("WARN")) { initError(pOutputLine, ErrorBO.CRITICITY_WARNING); } else if (pOutputLine.matches( "cli: Processing " + (String) mData.getData(TaskData.VIEW_PATH) + ".*")) { // On récupère le nom du fichier en coupant la chaîne du début et le viewPath mCurrentComponent = pOutputLine.replaceFirst( "cli: Processing " + (String) mData.getData(TaskData.VIEW_PATH), ""); } // On ne récupère pas les autres traces } }