DATAREST-1274 - JsonPatch paths now properly verify multi-digit indexes.

This commit is contained in:
Oliver Gierke
2018-08-08 08:44:43 +02:00
parent 5635479dd1
commit 88b73de3b7
2 changed files with 12 additions and 1 deletions

View File

@@ -450,7 +450,7 @@ class SpelPath {
Assert.notNull(type, "Type must not be null!");
String pathSource = Arrays.stream(path.split("/"))//
.filter(it -> !it.matches("\\d")) // no digits
.filter(it -> !it.matches("\\d+")) // no digits
.filter(it -> !it.equals("-")) // no "last element"s
.filter(it -> !it.isEmpty()) //
.collect(Collectors.joining("."));

View File

@@ -15,6 +15,7 @@
*/
package org.springframework.data.rest.webmvc.json.patch;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.*;
import java.util.ArrayList;
@@ -23,6 +24,11 @@ import java.util.List;
import org.junit.Test;
import org.springframework.data.rest.webmvc.json.patch.SpelPath.TypedSpelPath;
/**
* Unit tests for {@link SpelPath}.
*
* @author Oliver Gierke
*/
public class SpelPathUnitTests {
@Test
@@ -69,4 +75,9 @@ public class SpelPathUnitTests {
assertSame(left, right);
}
@Test // DATAREST-1274
public void supportsMultiDigitCollectionIndex() {
assertThat(SpelPath.of("/11/description").getLeafType(Todo.class)).isEqualTo(String.class);
}
}