langtools/test/tools/javac/failover/CheckAttributedTree.java
changeset 15385 ee1eebe7e210
parent 15384 5a8d00abf076
child 26264 a09fedde76be
--- a/langtools/test/tools/javac/failover/CheckAttributedTree.java	Wed Jan 23 20:57:40 2013 +0000
+++ b/langtools/test/tools/javac/failover/CheckAttributedTree.java	Wed Jan 23 13:27:24 2013 -0800
@@ -362,11 +362,18 @@
             }
 
             Info self = new Info(tree, endPosTable);
-            check(!mandatoryType(tree) ||
-                    (tree.type != null &&
-                    checkFields(tree)),
-                    "'null' found in tree ",
-                    self);
+            if (mandatoryType(tree)) {
+                check(tree.type != null,
+                        "'null' field 'type' found in tree ", self);
+                if (tree.type==null)
+                    new Throwable().printStackTrace();
+            }
+
+            Field errField = checkFields(tree);
+            if (errField!=null) {
+                check(false,
+                        "'null' field '" + errField.getName() + "' found in tree ", self);
+            }
 
             Info prevEncl = encl;
             encl = self;
@@ -395,7 +402,7 @@
             }
         }
 
-        boolean checkFields(JCTree t) {
+        Field checkFields(JCTree t) {
             List<Field> fieldsToCheck = treeUtil.getFieldsOfType(t,
                     excludedFields,
                     Symbol.class,
@@ -403,7 +410,7 @@
             for (Field f : fieldsToCheck) {
                 try {
                     if (f.get(t) == null) {
-                        return false;
+                        return f;
                     }
                 }
                 catch (IllegalAccessException e) {
@@ -411,7 +418,7 @@
                     //swallow it
                 }
             }
-            return true;
+            return null;
         }
 
         @Override