[
https://issues.apache.org/jira/browse/AVRO-3560?focusedWorklogId=786982&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-786982
]
ASF GitHub Bot logged work on AVRO-3560:
----------------------------------------
Author: ASF GitHub Bot
Created on: 01/Jul/22 08:14
Start Date: 01/Jul/22 08:14
Worklog Time Spent: 10m
Work Description: KalleOlaviNiemitalo commented on code in PR #1748:
URL: https://github.com/apache/avro/pull/1748#discussion_r911727624
##########
lang/java/avro/src/main/java/org/apache/avro/Schema.java:
##########
@@ -1454,19 +1456,37 @@ public Schema parse(String s, String... more) {
*/
public Schema parse(String s) {
try {
- return parse(FACTORY.createParser(s));
+ return parse(FACTORY.createParser(s), false);
} catch (IOException e) {
throw new SchemaParseException(e);
}
}
- private Schema parse(JsonParser parser) throws IOException {
+ private Schema parse(JsonParser parser, boolean allowDanglingContent)
throws IOException {
boolean saved = validateNames.get();
boolean savedValidateDefaults = VALIDATE_DEFAULTS.get();
try {
validateNames.set(validate);
VALIDATE_DEFAULTS.set(validateDefaults);
- return Schema.parse(MAPPER.readTree(parser), names);
+ JsonNode jsonNode = MAPPER.readTree(parser);
+ Schema schema = Schema.parse(jsonNode, names);
+ if (!allowDanglingContent) {
+ StringWriter danglingWriter = new StringWriter();
+ parser.releaseBuffered(danglingWriter);
+ String dangling = danglingWriter.toString().trim();
+ if (dangling.isEmpty()) {
Review Comment:
Could perhaps optimise by doing the ByteArrayOutputStream stuff only if the
first releaseBuffered call returns exactly -1.
Issue Time Tracking
-------------------
Worklog Id: (was: 786982)
Time Spent: 1.5h (was: 1h 20m)
> avro ignores input after end of avsc json
> -----------------------------------------
>
> Key: AVRO-3560
> URL: https://issues.apache.org/jira/browse/AVRO-3560
> Project: Apache Avro
> Issue Type: Bug
> Components: java
> Affects Versions: 1.11.0
> Reporter: Radai Rosenblatt
> Assignee: Radai Rosenblatt
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> try the following unit test:
> {code}
> @Test
> public void littleBobbySchemas() throws Exception {
> Schema.Parser parser = new Schema.Parser();
> parser.setValidate(true);
> parser.setValidateDefaults(true);
> Schema schema = parser.parse("{\"type\": \"string\"}; DROP TABLE
> STUDENTS");
> Assert.assertNotNull(schema);
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)