diff --git a/src/main/java/org/springframework/hateoas/Links.java b/src/main/java/org/springframework/hateoas/Links.java index 7c2b99b1..f0c57021 100644 --- a/src/main/java/org/springframework/hateoas/Links.java +++ b/src/main/java/org/springframework/hateoas/Links.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.function.Supplier; -import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collector; import java.util.stream.Collectors; @@ -45,7 +44,7 @@ import com.fasterxml.jackson.annotation.JsonValue; public class Links implements Iterable { public static final Links NONE = new Links(Collections.emptyList()); - private static final Pattern LINK_HEADER_PATTERN = Pattern.compile("(<[^>]*>(;\\s*\\w+=\"?[^\"]*\"?)+)"); + private static final Pattern LINK_HEADER_PATTERN = Pattern.compile("(<[^>]*>(;\\s*\\w+=\"?[^\",]*\"?)+)"); private final List links; @@ -91,12 +90,12 @@ public class Links implements Iterable { return NONE; } - Matcher matcher = LINK_HEADER_PATTERN.matcher(source); - List links = new ArrayList<>(); + var links = new ArrayList(); + var matcher = LINK_HEADER_PATTERN.matcher(source); while (matcher.find()) { - Link link = Link.valueOf(matcher.group()); + var link = Link.valueOf(matcher.group()); if (link != null) { links.add(link); diff --git a/src/test/java/org/springframework/hateoas/LinksUnitTest.java b/src/test/java/org/springframework/hateoas/LinksUnitTest.java index 79c9d503..5864e000 100755 --- a/src/test/java/org/springframework/hateoas/LinksUnitTest.java +++ b/src/test/java/org/springframework/hateoas/LinksUnitTest.java @@ -55,10 +55,13 @@ class LinksUnitTest { Link.of("/somethingElse", "bar").withHreflang("de")); // #1899 - static final String FIVE = ";rel=boo"; + static final String FIVE = ";rel=boo"; static final String SIX = "; rel=bee"; - static final String LINKS3 = StringUtils.collectionToCommaDelimitedString(Arrays.asList(FIVE, SIX)); - static final Links reference3 = Links.of(Link.of("/somethingElse", "boo"), Link.of("/somethingElse", "bee")); + static final String SEVEN = ";rel=beeboo;title=sometitle"; + static final String LINKS3 = StringUtils.collectionToCommaDelimitedString(Arrays.asList(FIVE, SIX, SEVEN)); + static final Links reference3 = Links.of(Link.of("/somethingElse?foo=one,two", "boo"), // + Link.of("/somethingElse", "bee"), + Link.of("/somethingElse", "beeboo").withTitle("sometitle")); @Test void parsesLinkHeaderLinks() {