[tor-commits] [metrics-lib/master] Fix a regression in parsing descriptors.

karsten at torproject.org karsten at torproject.org
Fri Jun 16 14:55:42 UTC 2017


commit 0917016f6b2ac6e383fa6862a3a530b4dcf777bc
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Fri Jun 16 14:43:20 2017 +0200

    Fix a regression in parsing descriptors.
---
 CHANGELOG.md                                                 |  7 ++++++-
 .../org/torproject/descriptor/impl/DescriptorParserImpl.java | 12 +++++++++---
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 44420bf..409d0e8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,9 @@
-# Changes in version 1.9.0 - 2017-06-??
+# Changes in version 1.8.2 - 2017-06-16
+
+ * Medium changes
+   - Fix a regression where any DescriptorParseException thrown while
+     parsing a descriptor is encapsulated and rethrown as
+     RuntimeException.
 
 
 # Changes in version 1.8.1 - 2017-06-08
diff --git a/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java b/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java
index 6317597..ad0d512 100644
--- a/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java
@@ -195,9 +195,15 @@ public class DescriptorParserImpl implements DescriptorParser {
     try {
       return constructor.newInstance(rawDescriptorBytes,
           offsetAndLength, failUnrecognizedDescriptorLines);
-    } catch (InstantiationException | IllegalAccessException
-        | InvocationTargetException e) {
-      throw new RuntimeException();
+    } catch (InvocationTargetException e) {
+      if (null != e.getCause()
+          && e.getCause() instanceof DescriptorParseException) {
+        throw (DescriptorParseException) e.getCause();
+      } else {
+        throw new RuntimeException(e);
+      }
+    } catch (InstantiationException | IllegalAccessException e) {
+      throw new RuntimeException(e);
     }
   }
 





More information about the tor-commits mailing list