Skip to content

Commit 3acbf47

Browse files
committed
fix NPE when calling getPattern()
1 parent 944c129 commit 3acbf47

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

core/src/main/java/org/everit/json/schema/StringSchema.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,11 @@ Pattern getRE2JPattern() {
120120
}
121121

122122
public java.util.regex.Pattern getPattern() {
123-
return java.util.regex.Pattern.compile(pattern.toString());
123+
if (pattern == null) {
124+
return null;
125+
} else {
126+
return java.util.regex.Pattern.compile(pattern.toString());
127+
}
124128
}
125129

126130
@Override void accept(Visitor visitor) {

core/src/test/java/org/everit/json/schema/StringSchemaTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import java.util.Optional;
2727

2828
import static org.everit.json.schema.TestSupport.buildWithLocation;
29+
import static org.junit.Assert.assertEquals;
30+
import static org.junit.Assert.assertNull;
2931
import static org.junit.Assert.assertTrue;
3032

3133
public class StringSchemaTest {
@@ -166,4 +168,19 @@ public void requiresString_nullable() {
166168
Schema subject = StringSchema.builder().requiresString(true).nullable(true).build();
167169
subject.validate(JSONObject.NULL);
168170
}
171+
172+
@Test
173+
public void getConvertedPattern() {
174+
StringSchema subject = StringSchema.builder().pattern("my\\\\/[p]a[tt]ern").build();
175+
assertEquals("my\\\\/[p]a[tt]ern", subject.getRE2JPattern().toString());
176+
assertEquals("my\\\\/[p]a[tt]ern", subject.getPattern().toString());
177+
}
178+
179+
@Test
180+
public void getConvertedNullPattern() {
181+
StringSchema subject = StringSchema.builder().build();
182+
assertNull(subject.getRE2JPattern());
183+
assertNull(subject.getPattern());
184+
}
185+
169186
}

0 commit comments

Comments
 (0)