diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryImportResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryImportResource.java index 27aacd1005..879e3dd558 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryImportResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryImportResource.java @@ -44,6 +44,7 @@ import org.slf4j.LoggerFactory; import sonia.scm.NotSupportedFeatuerException; import sonia.scm.Type; +import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryHandler; import sonia.scm.repository.RepositoryManager; import sonia.scm.util.SecurityUtil; @@ -111,19 +112,38 @@ public class RepositoryImportResource @POST @Path("{type}") @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - public GenericEntity> importRepositories( + public GenericEntity> importRepositories( @PathParam("type") String type) { SecurityUtil.assertIsAdmin(securityContextProvider); - List repositories = null; + List repositories = new ArrayList(); RepositoryHandler handler = manager.getHandler(type); if (handler != null) { try { - repositories = handler.getImportHandler().importRepositories(manager); + List repositoryNames = + handler.getImportHandler().importRepositories(manager); + + if (repositoryNames != null) + { + for (String repositoryName : repositoryNames) + { + Repository repository = manager.get(type, repositoryName); + + if (repository != null) + { + repositories.add(repository); + } + else if (logger.isWarnEnabled()) + { + logger.warn("could not find imported repository {}", + repositoryName); + } + } + } } catch (Exception ex) { @@ -135,12 +155,7 @@ public class RepositoryImportResource logger.warn("could not find handler for type {}", type); } - if (repositories == null) - { - repositories = new ArrayList(); - } - - return new GenericEntity>(repositories) {} + return new GenericEntity>(repositories) {} ; }