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() {