guiyanakuang commented on code in PR #1402:
URL: https://github.com/apache/orc/pull/1402#discussion_r1102235138


##########
java/core/src/java/org/apache/orc/impl/ReaderImpl.java:
##########
@@ -1035,11 +1037,15 @@ private static List<OrcProto.StripeStatistics> 
deserializeStripeStats(
       long offset,
       int length,
       InStream.StreamOptions options) throws IOException {
-    InStream stream = InStream.create("stripe stats", tailBuffer, offset,
-        length, options);
-    OrcProto.Metadata meta = OrcProto.Metadata.parseFrom(
-        InStream.createCodedInputStream(stream));
-    return meta.getStripeStatsList();
+    try (InStream stream = InStream.create("stripe stats", tailBuffer, offset,
+        length, options)) {
+      OrcProto.Metadata meta = OrcProto.Metadata.parseFrom(
+          InStream.createCodedInputStream(stream));
+      return meta.getStripeStatsList();
+    } catch (InvalidProtocolBufferException e) {
+      LOG.warn("Failed to parse stripe statistics; check ORC-1361 for more 
details.", e);

Review Comment:
   Maybe we just need to change the title to catch 
`InvalidProtocolBufferException` and let the program continue to run.
   Reading large bars of statistical information is one of the causes of the 
exception. But throw any InvalidProtocolBufferException and this pr will allow 
the program to continue to run.



-- 
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