@Test(timeOut = 1000) public void circularReferencingDuringValidationIsDetected() throws IOException, ProcessingException, JsonPointerException { final JsonNode schemaNode = JsonLoader.fromResource("/other/issue102.json"); final JsonSchemaFactory factory = JsonSchemaFactory.byDefault(); final JsonValidator validator = factory.getValidator(); final MessageBundle bundle = MessageBundles.getBundle(JsonSchemaValidationBundle.class); try { validator.validate(schemaNode, JacksonUtils.nodeFactory().nullNode()); fail("No exception thrown!"); } catch (ProcessingException e) { final URI uri = URI.create("#/oneOf/1"); final ProcessingMessage message = e.getProcessingMessage(); final String expectedMessage = bundle.printf("err.common.validationLoop", uri, ""); assertMessage(message) .hasMessage(expectedMessage) .hasField("alreadyVisited", uri) .hasField("instancePointer", JsonPointer.empty().toString()) .hasField("validationPath", Arrays.asList("#", "#/oneOf/1")); } assertTrue(true); }
public ProcessingReport validate(String jsonText) throws IOException { ProcessingReport report; JsonNode toValidate = JsonLoader.fromString(jsonText); try { report = this.schema.validate(toValidate); } catch (ProcessingException e) { throw new IOException("Error validating json text : " + e.getMessage()); } return report; } }
@Override public KeywordValidator getKeywordValidator(JsonNode node) throws ProcessingException { try { return constructor.newInstance(node); } catch (InstantiationException e) { throw new ProcessingException(ERRMSG, e); } catch (IllegalAccessException e) { throw new ProcessingException(ERRMSG, e); } catch (InvocationTargetException e) { throw new ProcessingException(ERRMSG, e); } }
@Test public void innerExceptionClassAndMessageAreReported() { final Exception inner = new Foo(FOO); final ProcessingException exception = new ProcessingException("", inner); final ProcessingMessage message = exception.getProcessingMessage(); assertMessage(message).hasField("exceptionClass", Foo.class.getName()) .hasField("exceptionMessage", inner.getMessage()); }
@Test public void processingExceptionMessageIsSameAsProcessingMessage() { final ProcessingMessage message = new ProcessingMessage() .setMessage(FOO); final ProcessingException exception = new ProcessingException(message); assertEquals(exception.getMessage(), message.toString()); }
public ProcessingReport validateSubSchema(JsonNode document, String schemaPointer) { JsonSchema jsonSchema = null; try { jsonSchema = factory.getJsonSchema(schema, schemaPointer); } catch (ProcessingException e) { Activator.getDefault().logError(e.getLocalizedMessage(), e); return null; } try { return jsonSchema.validate(document, true); } catch (ProcessingException e) { Activator.getDefault().logError(e.getLocalizedMessage(), e); return null; } } }
private boolean validateInput() { try { final JsonSchemaFactory factory = JsonSchemaFactory.byDefault(); String schemaString = Slurpie.slurp(INPUT_SCHEMA); final JsonNode jsonSchema = JsonLoader.fromString(schemaString); final JsonNode instance = JsonLoader.fromString(this.json); final JsonSchema schema = factory.getJsonSchema(jsonSchema); ProcessingReport report = schema.validate(instance); LOGGER.info(report.toString()); return true; } catch (IOException io) { LOGGER.fatal(io.getStackTrace()); return false; } catch (ProcessingException pe) { LOGGER.fatal(pe.getStackTrace()); return false; } }
public JsonSchemaViolationCause(ProcessingException exception) { messages = singletonList(exception.getProcessingMessage()); }
@Override void doIt(final ProcessingReport report, final ProcessingMessage message) throws ProcessingException { throw new ProcessingException(); } };
private final ValidationResult getValidationResult(JsonNode jsonNode) throws IOException { try { ProcessingReport processingReport = schema.validate(jsonNode); if (processingReport != null) { return new ValidationResult(processingReport.isSuccess(), processingReport.toString()); } else { return new ValidationResult(false, null); } } catch (ProcessingException e) { throw new IOException(e.getMessage()); } }
public JsonSchemaViolationCause(ProcessingException exception) { messages = singletonList(exception.getProcessingMessage()); }
@Override void doIt(final ProcessingReport report) throws ProcessingException { throw new ProcessingException(); } };
public final void validate(final MessageBuilder builder, final JsonNode input) { final ProcessingReport report; try { report = validator.validate(input); if (!fillMessages(report, builder)) { builder.append(new Message("", "JSON Schema validation failed", Severity.ERROR)); } } catch (ProcessingException e) { builder.append(new Message("", e.getMessage(), Severity.ERROR)); } }
private ConnectJsonSchemaValidationResult validate(JsonNode descriptorNode, JsonSchema schema) { ConnectJsonSchemaValidationResult result; try { ListProcessingReport report = (ListProcessingReport) schema.validate(descriptorNode); result = new DescriptorValidationResult(report); } catch (ProcessingException e) { result = new DescriptorValidationResult(true, false, e.getProcessingMessage().asJson().toString(), e.getProcessingMessage().toString()); } return result; }
@Override void doIt(final ProcessingReport report) throws ProcessingException { throw new ProcessingException(); } };
@Override public void validate(Reader content, Reader schema, RamlViolations violations, Message message) { init(); try (final Reader s = schema) { final JsonSchema jsonSchema = factory.getJsonSchema(JsonLoader.fromReader(schema)); final ProcessingReport report = jsonSchema.validate(JsonLoader.fromReader(content)); if (!report.isSuccess()) { String msg = ""; for (final ProcessingMessage reportLine : report) { msg += new Message("jsonSchemaValidator.message", reportLine.toString()); } violations.add(message.withParam(msg), new JsonSchemaViolationCause(report)); } } catch (ProcessingException e) { violations.add(message.withMessageParam("schema.invalid", e.getMessage()), new JsonSchemaViolationCause(e)); } catch (IOException e) { violations.add(message.withMessageParam("schema.invalid", e.getMessage())); } } }
private ConnectJsonSchemaValidationResult validate(JsonNode descriptorNode, JsonSchema schema) { ConnectJsonSchemaValidationResult result; try { ListProcessingReport report = (ListProcessingReport) schema.validate(descriptorNode); result = new DescriptorValidationResult(report); } catch (ProcessingException e) { result = new DescriptorValidationResult(true, false, e.getProcessingMessage().asJson().toString(), e.getProcessingMessage().toString()); } return result; }
throw new ProcessingException(validationLoopMessage(data)); schemaURIs.addLast(schemaURI); return;
@Override public void validate(Reader content, Reader schema, RamlViolations violations, Message message) { init(); try (final Reader s = schema) { final JsonSchemaFactory factory = this.factory == null ? JsonSchemaFactory.byDefault() : this.factory; final JsonSchema jsonSchema = factory.getJsonSchema(JsonLoader.fromReader(schema)); final ProcessingReport report = jsonSchema.validate(JsonLoader.fromReader(content)); if (!report.isSuccess()) { String msg = ""; for (final ProcessingMessage reportLine : report) { msg += new Message("jsonSchemaValidator.message", reportLine.toString()); } violations.add(message.withParam(msg), new JsonSchemaViolationCause(report)); } } catch (ProcessingException e) { violations.add(message.withMessageParam("schema.invalid", e.getMessage()), new JsonSchemaViolationCause(e)); } catch (IOException e) { violations.add(message.withMessageParam("schema.invalid", e.getMessage())); } } }
public Set<SwaggerError> validate(JsonDocument document) { final ErrorProcessor processor = new ErrorProcessor(document.getYaml(), schema); final Set<SwaggerError> errors = new HashSet<>(); JsonSchema jsonSchema = null; try { jsonSchema = factory.getJsonSchema(schema); } catch (ProcessingException e) { YEditLog.logException(e); return errors; } try { errors.addAll(processor.processReport(jsonSchema.validate(document.asJson(), true))); } catch (ProcessingException e) { errors.addAll(processor.processMessage(e.getProcessingMessage())); } return errors; }