From d5cec1c0004d33bd247af4c4071d496e6c45f3a6 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 30 Nov 2020 16:22:39 +0100 Subject: [PATCH 1/3] Fixed unexpected mercurial server pool stop --- CHANGELOG.md | 1 + .../DefaultChangesetToChangesetDtoMapper.java | 18 +----------------- .../v2/resources/TagCollectionToDtoMapper.java | 13 ++++++++++++- .../sonia/scm/api/v2/resources/TagDto.java | 4 ++++ .../api/v2/resources/TagToTagDtoMapper.java | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 015ace6975..2239789610 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Language detection of files with interpreter parameters e.g.: `#!/usr/bin/make -f` ([#1450](https://github.com/scm-manager/scm-manager/issues/1450)) +- Unexpected mercurial server pool stop ([#1446](https://github.com/scm-manager/scm-manager/issues/1446) and [#1457](https://github.com/scm-manager/scm-manager/issues/1457)) ## [2.10.1] - 2020-11-24 ### Fixed diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java index 53e6d52c0a..f7de21cc6f 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java @@ -29,15 +29,12 @@ import de.otto.edison.hal.Links; import org.mapstruct.Context; import org.mapstruct.Mapper; import org.mapstruct.ObjectFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import sonia.scm.repository.Branch; import sonia.scm.repository.Changeset; import sonia.scm.repository.Contributor; import sonia.scm.repository.Person; import sonia.scm.repository.Repository; import sonia.scm.repository.Signature; -import sonia.scm.repository.Tags; import sonia.scm.repository.api.Command; import sonia.scm.repository.api.RepositoryService; import sonia.scm.repository.api.RepositoryServiceFactory; @@ -47,7 +44,6 @@ import sonia.scm.security.gpg.RawGpgKey; import sonia.scm.web.EdisonHalAppender; import javax.inject.Inject; -import java.io.IOException; import java.util.List; import java.util.Optional; import java.util.function.Function; @@ -60,8 +56,6 @@ import static de.otto.edison.hal.Links.linkingTo; @Mapper public abstract class DefaultChangesetToChangesetDtoMapper extends HalAppenderMapper implements InstantAttributeMapper, ChangesetToChangesetDtoMapper { - private static Logger LOG = LoggerFactory.getLogger(DefaultChangesetToChangesetDtoMapper.class); - @Inject private RepositoryServiceFactory serviceFactory; @@ -120,22 +114,12 @@ public abstract class DefaultChangesetToChangesetDtoMapper extends HalAppenderMa try (RepositoryService repositoryService = serviceFactory.create(repository)) { if (repositoryService.isSupported(Command.TAGS)) { - Tags tags = null; - try { - tags = repositoryService.getTagsCommand().getTags(); - } catch (IOException e) { - LOG.error("Error while retrieving tags from repository", e); - } - if (tags != null) { - embeddedBuilder.with("tags", tagCollectionToDtoMapper.getTagDtoList(namespace, name, - getListOfObjects(source.getTags(), tags::getTagByName))); - } + embeddedBuilder.with("tags", tagCollectionToDtoMapper.getEmbeddedTagDtoList(namespace, name, source.getTags())); } if (repositoryService.isSupported(Command.BRANCHES)) { embeddedBuilder.with("branches", branchCollectionToDtoMapper.getBranchDtoList(repository, getListOfObjects(source.getBranches(), branchName -> Branch.normalBranch(branchName, source.getId())))); } - if (repositoryService.isSupported(Command.DIFF_RESULT)) { linksBuilder.single(link("diffParsed", resourceLinks.diff().parsed(namespace, name, source.getId()))); } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java index 625a4eda0f..b8f4144f51 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.api.v2.resources; import com.google.inject.Inject; @@ -58,6 +58,17 @@ public class TagCollectionToDtoMapper { return tags.stream().map(tag -> tagToTagDtoMapper.map(tag, new NamespaceAndName(namespace, name))).collect(toList()); } + public List getEmbeddedTagDtoList(String namespace, String name, Collection tags) { + return tags.stream() + .map(tag -> { + Links links = linkingTo().self(resourceLinks.tag().self(namespace, name, tag)).build(); + TagDto dto = new TagDto(links); + dto.setName(tag); + return dto; + }) + .collect(toList()); + } + private Links createLinks(String namespace, String name) { return linkingTo() diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagDto.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagDto.java index 7d4fd6dada..bd26bb8807 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagDto.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagDto.java @@ -46,6 +46,10 @@ public class TagDto extends HalRepresentation { @JsonInclude(JsonInclude.Include.NON_NULL) private Instant date; + TagDto(Links links) { + super(links); + } + TagDto(Links links, Embedded embedded) { super(links, embedded); } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagToTagDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagToTagDtoMapper.java index 940b33dd05..4788ee9595 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagToTagDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagToTagDtoMapper.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.api.v2.resources; import de.otto.edison.hal.Embedded; From 7a02f4e48f9926f638121da3a98c1528b593af9d Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 1 Dec 2020 01:35:50 +0000 Subject: [PATCH 2/3] fix: upgrade org.apache.shiro:shiro-guice from 1.6.0 to 1.7.0 Snyk has created this PR to upgrade org.apache.shiro:shiro-guice from 1.6.0 to 1.7.0. See this package in Maven Repository: https://mvnrepository.com/artifact/org.apache.shiro/shiro-guice/ See this project in Snyk: https://app.snyk.io/org/scm-manager/project/e67572ee-5940-4f2b-93b0-dced62d7ed85?utm_source=github&utm_medium=upgrade-pr --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 534bbceff0..5a33f024c4 100644 --- a/pom.xml +++ b/pom.xml @@ -930,7 +930,7 @@ 1.2.0 - 1.6.0 + 1.7.0 5.6.1.202002131546-r-scm1 From f0f9aad8dee1202e0807f43940404c5fe6d3f99f Mon Sep 17 00:00:00 2001 From: Konstantin Schaper Date: Tue, 1 Dec 2020 09:12:47 +0100 Subject: [PATCH 3/3] make method name clearer --- .../api/v2/resources/DefaultChangesetToChangesetDtoMapper.java | 2 +- .../sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java index f7de21cc6f..0dc9e4310a 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/DefaultChangesetToChangesetDtoMapper.java @@ -114,7 +114,7 @@ public abstract class DefaultChangesetToChangesetDtoMapper extends HalAppenderMa try (RepositoryService repositoryService = serviceFactory.create(repository)) { if (repositoryService.isSupported(Command.TAGS)) { - embeddedBuilder.with("tags", tagCollectionToDtoMapper.getEmbeddedTagDtoList(namespace, name, source.getTags())); + embeddedBuilder.with("tags", tagCollectionToDtoMapper.getMinimalEmbeddedTagDtoList(namespace, name, source.getTags())); } if (repositoryService.isSupported(Command.BRANCHES)) { embeddedBuilder.with("branches", branchCollectionToDtoMapper.getBranchDtoList(repository, diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java index b8f4144f51..fb1ca05d5a 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/TagCollectionToDtoMapper.java @@ -58,7 +58,7 @@ public class TagCollectionToDtoMapper { return tags.stream().map(tag -> tagToTagDtoMapper.map(tag, new NamespaceAndName(namespace, name))).collect(toList()); } - public List getEmbeddedTagDtoList(String namespace, String name, Collection tags) { + public List getMinimalEmbeddedTagDtoList(String namespace, String name, Collection tags) { return tags.stream() .map(tag -> { Links links = linkingTo().self(resourceLinks.tag().self(namespace, name, tag)).build();