Skip to content

Commit

Permalink
Fix PatternValidator to not log for fail fast (#1106)
Browse files Browse the repository at this point in the history
  • Loading branch information
justin-tay authored Aug 26, 2024
1 parent 12807f3 commit ab23378
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/com/networknt/schema/PatternValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public Set<ValidationMessage> validate(ExecutionContext executionContext, JsonNo
.locale(executionContext.getExecutionConfig().getLocale())
.failFast(executionContext.isFailFast()).arguments(this.pattern).build());
}
} catch (JsonSchemaException e) {
} catch (JsonSchemaException | FailFastAssertionException e) {
throw e;
} catch (RuntimeException e) {
logger.error("Failed to apply pattern '{}' at {}: {}", this.pattern, instanceLocation, e.getMessage());
Expand Down
40 changes: 40 additions & 0 deletions src/test/java/com/networknt/schema/PatternValidatorTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright (c) 2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.networknt.schema;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

import com.networknt.schema.SpecVersion.VersionFlag;

/**
* PatternValidatorTest.
*/
class PatternValidatorTest {
@Test
void failFast() {
String schemaData = "{\r\n"
+ " \"type\": \"string\",\r\n"
+ " \"pattern\": \"^(\\\\([0-9]{3}\\\\))?[0-9]{3}-[0-9]{4}$\"\r\n"
+ "}";
String inputData = "\"hello\"";
JsonSchema schema = JsonSchemaFactory.getInstance(VersionFlag.V202012).getSchema(schemaData);
boolean result = schema.validate(inputData, InputFormat.JSON, OutputFormat.BOOLEAN);
assertFalse(result);
}

}

0 comments on commit ab23378

Please sign in to comment.