diff --git a/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/GlobalInstallationContext.java b/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/GlobalInstallationContext.java index 6241839e7f77a716574e2188ffdae94a1b636951..b98debcf604a2c26529eb1043e665c7bcc2fad56 100644 --- a/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/GlobalInstallationContext.java +++ b/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/GlobalInstallationContext.java @@ -79,8 +79,8 @@ public class GlobalInstallationContext { String installPath = data.getInstallPath(); installDir = new File(installPath); - isFirstTimeInstallation = (installDir.exists() == false); - isUpdateInstallation = installDir.exists(); + isUpdateInstallation = installationExists(); + isFirstTimeInstallation = isUpdateInstallation == false; String postgresBinPath = ""; if (isFirstTimeInstallation == false) @@ -99,6 +99,33 @@ public class GlobalInstallationContext } } + private static boolean installationExists() + { + if (installDir.exists() == false) + { + return false; + } + File[] files = installDir.listFiles(); + boolean binExists = false; + boolean serversExists = false; + if (files != null) + { + for (File file : files) + { + String fileName = file.getName(); + if (fileName.equals("bin")) + { + binExists = true; + } + if (fileName.equals("servers")) + { + serversExists = true; + } + } + } + return binExists && serversExists; + } + /** * Return the data directory chosen for this installation. */