From 4fbf01f8a0ef5c45d9d1180e9d7b97f02a35a7bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Clermont=C3=A9?= Date: Sun, 22 May 2016 21:47:41 +0200 Subject: [PATCH] updated all exceptions --- .settings/org.eclipse.jdt.ui.prefs | 2 +- lib/Siba.jar | Bin 3508697 -> 3507606 bytes src/org/dclermonte/siba/Siba.java | 9 - .../SibaBackupSourceMissingException.java | 24 -- ...SibaBackupSourceNotDirectoryException.java | 24 -- .../SibaBackupTargetMissingException.java | 26 -- src/org/dclermonte/siba/SibaException.java | 5 + src/org/dclermonte/siba/cli/SibaCLI.java | 162 +++++------- .../dclermonte/siba/cli/messages.properties | 3 +- .../siba/cli/messages_fr_FR.properties | 3 +- src/org/dclermonte/siba/gui/AboutDialog.java | 2 +- src/org/dclermonte/siba/gui/BackupPanel.java | 6 +- src/org/dclermonte/siba/gui/CheckPanel.java | 13 +- src/org/dclermonte/siba/gui/SibaGUI.java | 11 +- .../dclermonte/siba/gui/utils/GUIToolBox.java | 4 +- .../dclermonte/siba/model/SibaManager.java | 249 ++++++++++-------- .../dclermonte/siba/model/messages.properties | 10 + .../siba/model/messages_fr_FR.properties | 10 + 18 files changed, 252 insertions(+), 311 deletions(-) delete mode 100644 src/org/dclermonte/siba/SibaBackupSourceMissingException.java delete mode 100644 src/org/dclermonte/siba/SibaBackupSourceNotDirectoryException.java delete mode 100644 src/org/dclermonte/siba/SibaBackupTargetMissingException.java create mode 100644 src/org/dclermonte/siba/model/messages.properties create mode 100644 src/org/dclermonte/siba/model/messages_fr_FR.properties diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs index ace80d3..2f18184 100644 --- a/.settings/org.eclipse.jdt.ui.prefs +++ b/.settings/org.eclipse.jdt.ui.prefs @@ -66,7 +66,7 @@ org.eclipse.jdt.ui.gettersetter.use.is=true org.eclipse.jdt.ui.javadoc=false org.eclipse.jdt.ui.keywordthis=true org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates= +org.eclipse.jdt.ui.text.custom_code_templates= sp_cleanup.add_default_serial_version_id=true sp_cleanup.add_generated_serial_version_id=false sp_cleanup.add_missing_annotations=true diff --git a/lib/Siba.jar b/lib/Siba.jar index a0a02bfe5ef91214198e435c085e9155bb79a32c..f9ca61f00c2ebebb20d61b8fae47cd64f923ce56 100644 GIT binary patch delta 19214 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

oD2U^5(< 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 32)) + { + FileReader fileReader = new FileReader(choosenFile); + char[] md5 = new char[32]; + byte[] md5byte = new byte[32]; + char[] fileToCheck = new char[(int) (choosenFile.length()) - 32]; + String md5String = new String(); + for (int index = 0; index < 32; index++) + { + md5[index] = (char) fileReader.read(); + md5byte[index] = (byte) md5[index]; + md5String = md5String + md5[index]; + } + fileReader.read(); + String fileNameToString = new String(); + for (int index = 36; index < (choosenFile.length() + 2); index++) + { + fileToCheck[index - 36] = (char) fileReader.read(); + fileNameToString = fileNameToString + fileToCheck[index - 36]; + } - fileReader.close(); - File fileToCheck1 = new File(choosenFile.getParent() + "/" + fileNameToString); + fileReader.close(); + File fileToCheck1; + if (choosenFile.isAbsolute()) + { + fileToCheck1 = new File(choosenFile.getParent() + "/" + fileNameToString); + } + else + { + String path = System.getProperty("user.dir"); + fileToCheck1 = new File(path + "/" + fileNameToString); + } - if (StringUtils.equals(md5String, md5(fileToCheck1))) - { - result = true; + if (StringUtils.equals(md5String, md5(fileToCheck1))) + { + result = true; + } + else + { + result = false; + } + } + else + { + throw new SibaException(BUNDLE.getString("NotExistFileToCheck.text")); + } } - else + catch (IOException ioExceptionCheck) { - result = false; + throw new SibaException(BUNDLE.getString("ioExceptionCheck.text"), ioExceptionCheck); //$NON-NLS-1$ } return result; } @@ -155,42 +183,48 @@ public class SibaManager * @param directory * @param outputStream * @param pathLength - * @throws IOException + * @throws SibaException */ public static void directoryToSave(final File directory, final TarArchiveOutputStream outputStream, - final int pathLength) throws IOException + final int pathLength) throws SibaException { - for (File file : directory.listFiles()) + try { - - if (file.isDirectory()) + for (File file : directory.listFiles()) { - if (file.listFiles().length == 0) + + if (file.isDirectory()) + { + if (file.listFiles().length == 0) + { + TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); + String pathPartiel = file.getPath().substring(pathLength); + tarArchiveEntry.setName(pathPartiel); + outputStream.putArchiveEntry(tarArchiveEntry); + outputStream.closeArchiveEntry(); + } + else + { + directoryToSave(file, outputStream, pathLength); + } + + } + else { TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); String pathPartiel = file.getPath().substring(pathLength); tarArchiveEntry.setName(pathPartiel); outputStream.putArchiveEntry(tarArchiveEntry); + IOUtils.copy(new FileInputStream(file), outputStream); outputStream.closeArchiveEntry(); - } - else - { - directoryToSave(file, outputStream, pathLength); - } - - } - else - { - TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); - String pathPartiel = file.getPath().substring(pathLength); - tarArchiveEntry.setName(pathPartiel); - outputStream.putArchiveEntry(tarArchiveEntry); - IOUtils.copy(new FileInputStream(file), outputStream); - outputStream.closeArchiveEntry(); + } } } - + catch (IOException ioExceptionTarEntry) + { + throw new SibaException(BUNDLE.getString("ioExceptionTarEntry.text"), ioExceptionTarEntry); //$NON-NLS-1$ + } } /** @@ -200,19 +234,24 @@ public class SibaManager * @param directoryToSave * @param destination * @return - * @throws IOException + * @throws SibaException */ - public static File fileCheckMD5(final File directoryToSave, final String destination) throws IOException + public static File fileCheckMD5(final File directoryToSave, final String destination) throws SibaException { File result; - - result = new File(destination); - - FileWriter fileWriter = new FileWriter(result); - fileWriter.write(md5(directoryToSave)); - String newLine = System.getProperty("line.separator"); - fileWriter.append(" " + directoryToSave.getName() + newLine); - fileWriter.close(); + try + { + result = new File(destination); + FileWriter fileWriter = new FileWriter(result); + fileWriter.write(md5(directoryToSave)); + String newLine = System.getProperty("line.separator"); + fileWriter.append(" " + directoryToSave.getName() + newLine); + fileWriter.close(); + } + catch (IOException ioExceptionFileMD5) + { + throw new SibaException(BUNDLE.getString("ioExceptionFileMD5.text"), ioExceptionFileMD5); //$NON-NLS-1$ + } return result; } @@ -222,9 +261,9 @@ public class SibaManager * * @param input * @return - * @throws IOException + * @throws SibaException */ - public static String md5(final File input) throws IOException + public static String md5(final File input) throws SibaException { String result; StringBuilder hashString = new StringBuilder(); @@ -236,7 +275,6 @@ public class SibaManager { byteInput[index1] = (byte) fileInputStream.read(); } - byte[] hash = null; MessageDigest messageDigest = MessageDigest.getInstance("MD5"); hash = messageDigest.digest(byteInput); @@ -256,10 +294,13 @@ public class SibaManager } fileInputStream.close(); } - catch (NoSuchAlgorithmException e) + catch (NoSuchAlgorithmException noSuchAlgorithmException) { - // TODO Auto-generated catch block - e.printStackTrace(); + throw new SibaException(BUNDLE.getString("noSuchAlgorithm.text"), noSuchAlgorithmException); //$NON-NLS-1$ + } + catch (IOException ioException) + { + throw new SibaException(BUNDLE.getString("ioExceptionMD5.text"), ioException); //$NON-NLS-1$ } result = hashString.toString(); return result; diff --git a/src/org/dclermonte/siba/model/messages.properties b/src/org/dclermonte/siba/model/messages.properties new file mode 100644 index 0000000..c2448af --- /dev/null +++ b/src/org/dclermonte/siba/model/messages.properties @@ -0,0 +1,10 @@ +NotDirectorySource.text= Source is not a directory +sourceNotExist.text= The source does not exist +NotDirectoryTarget.text=The target is not a directory +noSuchAlgorithm.text= no such algorithm +ioExceptionMD5.text= Input/output Exception in MD5 +ioExceptionFileMD5.text = Input/output Exception during creating File MD5 +ioExceptionTarEntry.text= Input/output Exception during creating Tar Entry +ioExceptionCheck.text = Input/output Exception in Check +ioExceptionBackup.text = Input/output Exception in Backup +NotExistFileToCheck.text = The file to check do not exist or is not correct \ No newline at end of file diff --git a/src/org/dclermonte/siba/model/messages_fr_FR.properties b/src/org/dclermonte/siba/model/messages_fr_FR.properties new file mode 100644 index 0000000..caf0ccf --- /dev/null +++ b/src/org/dclermonte/siba/model/messages_fr_FR.properties @@ -0,0 +1,10 @@ +NotDirectorySource.text=La source n'est pas un répertoire +sourceNotExist.text= La source n'existe pas +NotDirectoryTarget.text= La destination n'est pas un répertoire +noSuchAlgorithm.text = Mauvais choix d'algorithm +ioExceptionMD5.text = Erreur d'entrée-sortie dans MD5 +ioExceptionFileMD5.text= Erreur d'entrée sortie dans la création du fichier MD5 +ioExceptionTarEntry.text= Erreur d'entrée sortie dans la génération des Tar Entry +ioExceptionCheck.text = Erreur d'entrée sortie dans Check +ioExceptionBackup.text= Erreur d'entrée sortie dans Backup +NotExistFileToCheck.text= Le fichier à vérifier n'existe pas ou n'est pas valable \ No newline at end of file