From 01bd18b714c4c9c300e49546eb0ac104f49222c5 Mon Sep 17 00:00:00 2001 From: Rene Pfeuffer Date: Wed, 6 Mar 2024 13:23:55 +0100 Subject: [PATCH] Fix error for commits with SSH signatures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pushed-by: Rene Pfeuffer Co-authored-by: René Pfeuffer --- gradle/changelog/error_with_ssh_signature.yaml | 2 ++ .../v2/resources/DefaultChangesetToChangesetDtoMapper.java | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 gradle/changelog/error_with_ssh_signature.yaml diff --git a/gradle/changelog/error_with_ssh_signature.yaml b/gradle/changelog/error_with_ssh_signature.yaml new file mode 100644 index 0000000000..e94dcefda5 --- /dev/null +++ b/gradle/changelog/error_with_ssh_signature.yaml @@ -0,0 +1,2 @@ +- type: fixed + description: Internal server error for commits with SSH signatures 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 759ab18f30..ddebdc84c2 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 @@ -24,6 +24,7 @@ package sonia.scm.api.v2.resources; +import com.google.common.base.Strings; import de.otto.edison.hal.Embedded; import de.otto.edison.hal.Links; import jakarta.inject.Inject; @@ -51,9 +52,11 @@ import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; +import static com.google.common.base.Strings.emptyToNull; import static de.otto.edison.hal.Embedded.embeddedBuilder; import static de.otto.edison.hal.Link.link; import static de.otto.edison.hal.Links.linkingTo; +import static java.util.Optional.ofNullable; @Mapper public abstract class DefaultChangesetToChangesetDtoMapper extends HalAppenderMapper implements InstantAttributeMapper, ChangesetToChangesetDtoMapper { @@ -88,7 +91,7 @@ public abstract class DefaultChangesetToChangesetDtoMapper extends HalAppenderMa @ObjectFactory SignatureDto createDto(Signature signature) { - final Optional key = publicKeyStore.findById(signature.getKeyId()); + Optional key = ofNullable(emptyToNull(signature.getKeyId())).flatMap(publicKeyStore::findById); if (signature.getType().equals("gpg") && key.isPresent()) { final Links.Builder linkBuilder = linkingTo()