[jboss-svn-commits] JBL Code SVN: r29568 - labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 9 05:02:06 EDT 2009


Author: adinn
Date: 2009-10-09 05:02:05 -0400 (Fri, 09 Oct 2009)
New Revision: 29568

Modified:
   labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ThrowExpression.java
Log:
avoided NPE in ThrowExpression.typecheck when a class for the thrown type is not found -- fixes BYTEMAN-44

Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ThrowExpression.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ThrowExpression.java	2009-10-08 22:05:18 UTC (rev 29567)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/rule/expression/ThrowExpression.java	2009-10-09 09:02:05 UTC (rev 29568)
@@ -101,7 +101,7 @@
 
         type = Type.dereference(typeGroup.create(typeName));
 
-        if (type.isUndefined()) {
+        if (type == null || type.isUndefined()) {
             throw new TypeException("ThrowExpression.typeCheck : unknown exception type " + typeName + getPos());
         }
 
@@ -153,11 +153,11 @@
         }
 
         if (candidates.isEmpty()) {
-            throw new TypeException("ThrowExpression.typeCheck : invalid method for target class " + typeName + getPos());
+            throw new TypeException("ThrowExpression.typeCheck : invalid constructor for target class " + typeName + getPos());
         }
 
         if (candidates.size() > 1) {
-            throw new TypeException("ThrowExpression.typeCheck : ambiguous method signature for target class " + typeName + getPos());
+            throw new TypeException("ThrowExpression.typeCheck : ambiguous constructor signature for target class " + typeName + getPos());
         }
 
         constructor = candidates.get(0);
@@ -340,7 +340,7 @@
     }
 
     public void writeTo(StringWriter stringWriter) {
-        stringWriter.write("throw " + type.getName() + "(");
+        stringWriter.write("throw " + (type != null ? type.getName() : typeName) + "(");
         for (Expression argument : arguments) {
             argument.writeTo(stringWriter);
         }



More information about the jboss-svn-commits mailing list