java.lang.Error running build from ecj compiler

Deneau, Tom tom.deneau at amd.com
Thu Mar 20 19:52:05 UTC 2014


Widening beyond just Doug and Gilles...

I was cleaning up warnings from a webrev using the following sequence:
(My webrev was based off of 5f5e2711dc24 although I'm not sure that matters)


mx clean
mx eclipseinit      # has a side effect of preparing the annotation processor jars
mx build --vm server --vmbuild product --jdt /path/to/ecj-4.3.2.jar --jdt-warning-as-error
mx checkstyle
repeat build...


So eventually I got a build with no compiler errors or warnings.
Then I wanted to run our junit tests, I used the ecj produced bytecodes
and I got


java.lang.Error: Unresolved compilation problem: 
	The method getId() from the type Node is deprecated

	at com.oracle.graal.phases.common.GuardLoweringPhase$LowerGuards.lowerToIf(GuardLoweringPhase.java:153)
	at com.oracle.graal.phases.common.GuardLoweringPhase$LowerGuards.processNode(GuardLoweringPhase.java:144)
	at com.oracle.graal.phases.graph.ScheduledNodeIterator.processNodes(ScheduledNodeIterator.java:63)
	at com.oracle.graal.phases.common.GuardLoweringPhase.processBlock(GuardLoweringPhase.java:200)
	at com.oracle.graal.phases.common.GuardLoweringPhase.run(GuardLoweringPhase.java:188)
	at com.oracle.graal.phases.common.GuardLoweringPhase.run(GuardLoweringPhase.java:1)

I went back and did a javac build using
   mx clean
  mx build --vm server --vmbuild product 

This javac build ran the junits fine.

I can see that Node.getId() was indeed marked @Deprecated, and that GuardLoweringPhase had a @SuppressWarnings("deprecation") before it's call to getId()

Is this just because --jdt-warning-as-error is fighting against @SuppressWarnings here or it this a problem in the ecj compiler?

-- Tom


More information about the graal-dev mailing list