diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java index fc2dec12a6..f33f4200c4 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java @@ -148,8 +148,6 @@ public class MigrateVerbsToPermissionRoles implements UpdateStep { private String name; @XmlElement(name = "permission") private final Set permissions = new HashSet<>(); - @XmlElement(name = "public") - private boolean publicReadable = false; private boolean archived = false; private String type; } diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/V1RepositoryHelper.java b/scm-webapp/src/main/java/sonia/scm/update/repository/V1RepositoryHelper.java index 43ddb2671b..10cf343cff 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/V1RepositoryHelper.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/V1RepositoryHelper.java @@ -19,21 +19,26 @@ import static java.util.Optional.of; class V1RepositoryHelper { - static File resolveV1File(SCMContextProvider contextProvider, String filename) { - return contextProvider - .resolve( - Paths.get(StoreConstants.CONFIG_DIRECTORY_NAME).resolve(filename) - ).toFile(); + static Optional resolveV1File(SCMContextProvider contextProvider, String filename) { + File v1XmlFile = contextProvider.resolve(Paths.get(StoreConstants.CONFIG_DIRECTORY_NAME).resolve(filename)).toFile(); + if (v1XmlFile.exists()) { + return Optional.of(v1XmlFile); + } + return Optional.empty(); } static Optional readV1Database(SCMContextProvider contextProvider, String filename) throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(V1RepositoryDatabase.class); - Object unmarshal = jaxbContext.createUnmarshaller().unmarshal(resolveV1File(contextProvider, filename)); - if (unmarshal instanceof V1RepositoryHelper.V1RepositoryDatabase) { - return of((V1RepositoryHelper.V1RepositoryDatabase) unmarshal); - } else { - return empty(); + Optional file = resolveV1File(contextProvider, filename); + if (file.isPresent()) { + Object unmarshal = jaxbContext.createUnmarshaller().unmarshal(file.get()); + if (unmarshal instanceof V1RepositoryHelper.V1RepositoryDatabase) { + return of((V1RepositoryHelper.V1RepositoryDatabase) unmarshal); + } else { + return empty(); + } } + return empty(); } static class RepositoryList { diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/XmlRepositoryV1UpdateStep.java b/scm-webapp/src/main/java/sonia/scm/update/repository/XmlRepositoryV1UpdateStep.java index 6230919503..dd1284492b 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/XmlRepositoryV1UpdateStep.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/XmlRepositoryV1UpdateStep.java @@ -91,7 +91,7 @@ public class XmlRepositoryV1UpdateStep implements CoreUpdateStep { @Override public void doUpdate() throws JAXBException { - if (!resolveV1File(contextProvider, V1_REPOSITORY_FILENAME).exists()) { + if (!resolveV1File(contextProvider, V1_REPOSITORY_FILENAME).isPresent()) { LOG.info("no v1 repositories database file found"); return; } @@ -105,7 +105,7 @@ public class XmlRepositoryV1UpdateStep implements CoreUpdateStep { } public List getRepositoriesWithoutMigrationStrategies() { - if (!resolveV1File(contextProvider, V1_REPOSITORY_FILENAME).exists()) { + if (!resolveV1File(contextProvider, V1_REPOSITORY_FILENAME).isPresent()) { LOG.info("no v1 repositories database file found"); return emptyList(); } diff --git a/scm-webapp/src/test/java/sonia/scm/it/RepositorySimplePermissionITCase.java b/scm-webapp/src/test/java/sonia/scm/it/RepositorySimplePermissionITCase.java index 7900f11096..5a0ca8fc38 100644 --- a/scm-webapp/src/test/java/sonia/scm/it/RepositorySimplePermissionITCase.java +++ b/scm-webapp/src/test/java/sonia/scm/it/RepositorySimplePermissionITCase.java @@ -94,7 +94,6 @@ public class RepositorySimplePermissionITCase repository.setName("test-repo"); repository.setType("git"); -// repository.setPublicReadable(false); ScmClient client = createAdminClient();