You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2015/08/12 12:54:45 UTC

svn commit: r1695472 - in /commons/proper/bcel/trunk/src: changes/ main/java/org/apache/commons/bcel6/util/ main/java/org/apache/commons/bcel6/verifier/

Author: sebb
Date: Wed Aug 12 10:54:45 2015
New Revision: 1695472

URL: http://svn.apache.org/r1695472
Log:
BCEL-234 Code must not swallow Throwable

Modified:
    commons/proper/bcel/trunk/src/changes/changes.xml
    commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/ClassLoader.java
    commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/NativeVerifier.java
    commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/VerifyDialog.java

Modified: commons/proper/bcel/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/changes/changes.xml?rev=1695472&r1=1695471&r2=1695472&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/changes/changes.xml (original)
+++ commons/proper/bcel/trunk/src/changes/changes.xml Wed Aug 12 10:54:45 2015
@@ -63,6 +63,7 @@ The <action> type attribute can be add,u
 
   <body>
     <release version="6.0" date="TBA" description="Major release with Java 7 and 8 support">
+      <action issue="BCEL-234" type="fix">Code must not swallow Throwable</action>
       <action issue="BCEL-222" type="update">
         Major release of BCEL requires updating package name and maven coordinates.
       </action>

Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/ClassLoader.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/ClassLoader.java?rev=1695472&r1=1695471&r2=1695472&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/ClassLoader.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/util/ClassLoader.java Wed Aug 12 10:54:45 2015
@@ -18,6 +18,7 @@
 package org.apache.commons.bcel6.util;
 
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.util.Hashtable;
 
 import org.apache.commons.bcel6.Constants;
@@ -170,7 +171,7 @@ public class ClassLoader extends java.la
             byte[] bytes = Utility.decode(real_name, true);
             ClassParser parser = new ClassParser(new ByteArrayInputStream(bytes), "foo");
             clazz = parser.parse();
-        } catch (Throwable e) {
+        } catch (IOException e) {
             e.printStackTrace();
             return null;
         }

Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/NativeVerifier.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/NativeVerifier.java?rev=1695472&r1=1695471&r2=1695472&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/NativeVerifier.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/NativeVerifier.java Wed Aug 12 10:54:45 2015
@@ -63,9 +63,8 @@ public abstract class NativeVerifier {
         } catch (ClassNotFoundException cnfe) {
             System.out.println("NativeVerifier: FILE NOT FOUND: '" + args[0] + "'.");
             System.exit(1);
-        } catch (Throwable t) {
-            System.out.println("NativeVerifier: Unspecified verification error on'" + args[0]
-                    + "'.");
+        } catch (Throwable t) { // OK to catch Throwable here as we call exit.
+            System.out.println("NativeVerifier: Unspecified verification error on '" + args[0] + "'.");
             System.exit(1);
         }
         System.out.println("NativeVerifier: Class file '" + args[0] + "' seems to be okay.");

Modified: commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/VerifyDialog.java
URL: http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/VerifyDialog.java?rev=1695472&r1=1695471&r2=1695472&view=diff
==============================================================================
--- commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/VerifyDialog.java (original)
+++ commons/proper/bcel/trunk/src/main/java/org/apache/commons/bcel6/verifier/VerifyDialog.java Wed Aug 12 10:54:45 2015
@@ -422,6 +422,13 @@ public class VerifyDialog extends javax.
         /* Uncomment the following lines to print uncaught exceptions to stdout */
         System.out.println("--------- UNCAUGHT EXCEPTION ---------");
         exception.printStackTrace(System.out);
+        // manually added code
+        if (exception instanceof ThreadDeath) {
+            throw (ThreadDeath) exception;
+        }
+        if (exception instanceof VirtualMachineError) {
+            throw (VirtualMachineError) exception;
+        }
     }