dongjoon-hyun commented on a change in pull request #874:
URL: https://github.com/apache/orc/pull/874#discussion_r692265967



##########
File path: java/tools/src/java/org/apache/orc/tools/json/JsonSchemaFinder.java
##########
@@ -247,15 +249,41 @@ public void addFile(String filename) throws IOException {
     } else {
       reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
     }
-    addFile(reader);
+    addFile(reader, filename);
   }
 
-  public void addFile(java.io.Reader reader) throws IOException {
+  public void addFile(java.io.Reader reader, String filename) {
     JsonStreamParser parser = new JsonStreamParser(reader);
-    while (parser.hasNext()) {
-      records += 1;
-      mergedType = mergeType(mergedType, pickType(parser.next()));
+    try {
+      while (parser.hasNext()) {
+        mergedType = mergeType(mergedType, pickType(parser.next()));
+        records += 1;
+      }
+    } catch (JsonParseException e) {
+      printParseExceptionMsg(e, filename);
+    }
+  }
+
+  private void printParseExceptionMsg(JsonParseException e, String filename) {
+    System.err.printf(
+        "A JsonParseException was thrown while processing the %dth record of 
file %s.%n",
+        records + 1, filename);
+
+    String pattern = "at line (\\d+) column (\\d+)";
+    Pattern r = Pattern.compile(pattern);
+    Matcher m = r.matcher(e.getMessage());
+    int line;
+    int column;
+    if (m.find( )) {
+      line = Integer.parseInt(m.group(1));
+      column = Integer.parseInt(m.group(2));
+      if (line == 1 && column == 1) {
+        System.err.printf("File %s is empty.", filename);

Review comment:
       Please add a new line at the end.
   ```
   -        System.err.printf("File %s is empty.", filename);
   +        System.err.printf("File %s is empty.\n", filename);
   ```
   
   Otherwise, it looks like the following.
   ```
   $ java -jar tools/target/orc-tools-1.8.0-SNAPSHOT-uber.jar json-schema 
~/empty.json
   Reading file /Users/dongjoon/empty.json
   A JsonParseException was thrown while processing the 1th record of file 
/Users/dongjoon/empty.json.
   File /Users/dongjoon/empty.json is empty.%
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to