[Checkers] Checkers are still crashing on FreePastry

Michael Ernst mernst at csail.mit.edu
Mon Mar 17 19:13:10 EDT 2008


Matt and Mahmood-

The distributed version of FreePastry contains only a subset of all the
files that the developers compile daily.

The Interned checker (and possibly others?) fails on the full FreePastry
codebase.  I'd like to correct this in order to proceed with our case
study.

Here are three steps to reproduce the problem:

# 1. Create a "pastry" directory
svn co https://svn.mpi-sb.mpg.de/DS/freepastry/trunk/pastry

# 2. Edit pastry/build.xml to fix the hard-coded paths in the "interned"
# target.  (They would probably accept a patch that cleaned up the
# buildfile...)

# 3. Run interned checker
ant interned

The output appears at the end of this message.

                    -Mike


Here is a replacement for the target currently in the build.xml file, but
it still has hard-coded paths.


  <property environment="env"/>
  <!-- The classpath -->
  <path id="interned.classpath">
    <fileset dir="${lib.dir}">
      <include name="**/*.jar"/>
    </fileset>
    <fileset dir="/DS/home-0/mernst/research/typequals/annotations/checkers">
      <include name="checkers.jar"/>
    </fileset>
    <pathelement path="${build.dir}"/>
  </path>
  <property name="jsr308.javac" value="/DS/home-0/mernst/research/typequals/annotations/langtools/dist/bin/javac"/>
  <!-- "clean" target is necessary or else this won't re-compile if .class
  files already exist.
  "executable" and "fork" fields ensure we call an external program, not
  just run javac via a Java method call. -->
  <target name="interned" depends="clean,init">
    <javac srcdir="${src.dir}"
	   destdir="${build.dir}"
	   classpathref="interned.classpath"
	   includes="**/*.java"
	   deprecation="no"
	   debuglevel="lines,vars,source"
	   fork="yes"
	   executable="${jsr308.javac}"
	   debug="true">
      <compilerarg value="-version"/>
      <compilerarg line="-processor checkers.interned.InternedChecker"/>
    </javac>
  </target>


Here is the output when Mike ran "ant interned":


-*- mode: compilation; default-directory: "~/tmp/try-freepastry/pastry/" -*-
Compilation started at Tue Mar 18 00:05:18

ant interned

Buildfile: build.xml

clean:

init:
    [mkdir] Created dir: /DS/home-0/mernst/tmp/try-freepastry/pastry/classes

interned:
    [javac] Compiling 1082 source files to /DS/home-0/mernst/tmp/try-freepastry/pastry/classes
    [javac] javac 1.7.0-jsr308-dev-20080314
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/filetransfer/FileTransferImpl.java:271: comparison requires two @Interned types
    [javac]     if (wrapper != messageThatIsBeingWritten) throw new IllegalArgumentException("Wrapper:"+wrapper+" messageThatIsBeingWritten:"+messageThatIsBeingWritten);
    [javac]                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/testing/transportlayer/MagicNumberTest.java:386: comparison requires two @Interned types
    [javac]     assertTrue(sentList.get(0) == handle); // it is the buffer we sent        
    [javac]                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/testing/transportlayer/MagicNumberTest.java:387: comparison requires two @Interned types
    [javac]     assertTrue(handle.getMessage() == sentBuffer); // it is the buffer we sent        
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/testing/transportlayer/TLTest.java:393: comparison requires two @Interned types
    [javac]     assertTrue(sentList.get(0) == handle); // it is the buffer we sent        
    [javac]                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/testing/transportlayer/TLTest.java:394: comparison requires two @Interned types
    [javac]     assertTrue("handle.getMessage():"+handle.getMessage()+" sentBuffer:"+sentBuffer,handle.getMessage() == sentBuffer); // it is the buffer we sent        
    [javac]                                                                                                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/testing/transportlayer/TLTest.java:447: comparison requires two @Interned types
    [javac]     assertTrue(failedList.get(0) == cancellable);
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/testing/transportlayer/TLTest.java:448: comparison requires two @Interned types
    [javac]     assertTrue(cancellable.getMessage() == sentBuffer);
    [javac]                                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/commonapi/CommonAPITransportLayerImpl.java:198: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/commonapi/CommonAPITransportLayerImpl.java:210: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/direct/DirectAppSocket.java:154: comparison requires two @Interned types
    [javac]         if (byteDeliveries.getFirst() == EOF) {
    [javac]                                       ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/direct/DirectAppSocket.java:269: comparison requires two @Interned types
    [javac]           if (msg == EOF) {
    [javac]                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/identity/IdentityImpl.java:759: comparison requires two @Interned types
    [javac]               if (ret.getSubCancellable() != null && msg != ret.getSubCancellable()) 
    [javac]                                                          ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/identity/IdentityImpl.java:766: comparison requires two @Interned types
    [javac]               if (ret.getSubCancellable() != null && msg != ret.getSubCancellable()) 
    [javac]                                                          ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/liveness/LivenessTransportLayerImpl.java:324: comparison requires two @Interned types
    [javac]         if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != handle.getSubCancelable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                       ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/liveness/LivenessTransportLayerImpl.java:328: comparison requires two @Interned types
    [javac]         if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != handle.getSubCancelable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                       ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/liveness/LivenessTransportLayerImpl.java:1100: comparison requires two @Interned types
    [javac]               if (livenessCheckerTimer == this) livenessCheckerTimer = null;
    [javac]                                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/multiaddress/MultiInetAddressTransportLayerImpl.java:150: comparison requires two @Interned types
    [javac]         if (handle.getSubCancellable() != null && c != handle.getSubCancellable()) throw new RuntimeException("c != cancellable.getSubCancellable() (indicates a bug in the code) c:"+c+" sub:"+handle.getSubCancellable());
    [javac]                                                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/multiaddress/MultiInetAddressTransportLayerImpl.java:191: comparison requires two @Interned types
    [javac]         if (handle.getSubCancellable() != null && c != handle.getSubCancellable()) throw new RuntimeException("c != cancellable.getSubCancellable() (indicates a bug in the code) c:"+c+" sub:"+handle.getSubCancellable());
    [javac]                                                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/multiaddress/MultiInetAddressTransportLayerImpl.java:269: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/multiaddress/MultiInetAddressTransportLayerImpl.java:274: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/Verifier.java:645: comparison requires two @Interned types
    [javac]       if (callback != eventCallback.get(eventType)) throw new IllegalStateException("Event #"+eventType+" registered twice");
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/Verifier.java:932: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]         Constructor ctor = c.getConstructor(parameterTypes);
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/Verifier.java:940: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]           Constructor ctor = c.getConstructor(new Class[0]);
    [javac]                                               ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/replay/playback/ReplaySocket.java:105: comparison requires two @Interned types
    [javac]         if (writer != receiver) throw new IllegalStateException("Already registered "+writer+" for writing, you can't register "+receiver+" for writing as well!"); 
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/replay/playback/ReplaySocket.java:111: comparison requires two @Interned types
    [javac]         if (reader != receiver) throw new IllegalStateException("Already registered "+reader+" for reading, you can't register "+receiver+" for reading as well!"); 
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/replay/playback/ReplaySocket.java:126: comparison requires two @Interned types
    [javac]       if (writer != reader) throw new IllegalStateException("weader != writer canRead:"+canRead+" canWrite:"+canWrite);
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/peerreview/replay/playback/ReplaySocket.java:180: comparison requires two @Interned types
    [javac]       if (writer == reader) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:156: comparison requires two @Interned types
    [javac]         if (socket != s) throw new IllegalArgumentException("Sockets not equal!!! s:"+s+" socket:"+socket);
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:232: comparison requires two @Interned types
    [javac]         if (handle.getSubCancellable() != null && s != handle.getSubCancellable()) throw new IllegalArgumentException("s != handle.getSubCancellable() must be a bug. s:"+s+" sub:"+handle.getSubCancellable());
    [javac]                                                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:504: comparison requires two @Interned types
    [javac]       if (logger.level <= Logger.FINER) logger.logException("closeMe("+socket+"):"+(socket == writingSocket)+","+messageThatIsBeingWritten, new Exception("Stack Trace"));
    [javac]                                                                                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:505: comparison requires two @Interned types
    [javac]       if (socket == writingSocket) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:536: comparison requires two @Interned types
    [javac]           if (receipt == pendingSocket) {
    [javac]                       ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:661: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && s != handle.getSubCancellable()) throw new IllegalArgumentException(
    [javac]                                                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:781: comparison requires two @Interned types
    [javac]       if (socket == writingSocket) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:790: comparison requires two @Interned types
    [javac]       if (socket != writingSocket) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:823: comparison requires two @Interned types
    [javac]         if (handle == pendingSocket) {        
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:969: comparison requires two @Interned types
    [javac]       if (wrapper != messageThatIsBeingWritten) throw new IllegalArgumentException("Wrapper:"+wrapper+" messageThatIsBeingWritten:"+messageThatIsBeingWritten);
    [javac]                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:979: comparison requires two @Interned types
    [javac]       if (closeWritingSocket == writingSocket) {
    [javac]                              ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:989: comparison requires two @Interned types
    [javac]       if (wrapper != messageThatIsBeingWritten) throw new IllegalArgumentException("Wrapper:"+wrapper+" messageThatIsBeingWritten:"+messageThatIsBeingWritten);
    [javac]                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/priority/PriorityTransportLayerImpl.java:1062: comparison requires two @Interned types
    [javac]         if (this.socket != null && this.socket != socket) {
    [javac]                                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/Forwarder.java:88: comparison requires two @Interned types
    [javac]         if (socket != from) throw new IOException("Expected to read from "+from+" got "+socket);      
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/Forwarder.java:100: comparison requires two @Interned types
    [javac]           if (socket != to) throw new IOException("Expected to write to "+to+" got "+socket);      
    [javac]                      ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/SourceRouteTransportLayerImpl.java:154: comparison requires two @Interned types
    [javac]         if (handle.getSubCancellable() != null && c != handle.getSubCancellable()) throw new RuntimeException("c != handle.getSubCancellable() (indicates a bug in the code) c:"+c+" sub:"+handle.getSubCancellable());
    [javac]                                                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/SourceRouteTransportLayerImpl.java:354: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != handle.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/SourceRouteTransportLayerImpl.java:358: comparison requires two @Interned types
    [javac]             if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != handle.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/manager/SourceRouteManagerImpl.java:527: comparison requires two @Interned types
    [javac]           if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/sourceroute/manager/SourceRouteManagerImpl.java:532: comparison requires two @Interned types
    [javac]           if (handle.getSubCancellable() != null && msg != handle.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+handle.getSubCancellable());
    [javac]                                                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/util/SocketWrapperSocket.java:93: comparison requires two @Interned types
    [javac]       if (reader != null && reader != receiver) throw new IllegalStateException("Already registered "+reader+" for reading. Can't register "+receiver);
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/util/SocketWrapperSocket.java:97: comparison requires two @Interned types
    [javac]       if (writer != null && writer != receiver) throw new IllegalStateException("Already registered "+reader+" for writing. Can't register "+receiver);
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/util/SocketWrapperSocket.java:123: comparison requires two @Interned types
    [javac]     if (canRead && canWrite && (reader == writer)) {      
    [javac]                                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/util/SocketWrapperSocket.java:158: comparison requires two @Interned types
    [javac]       if (writer == reader) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/util/SocketWrapperSocket.java:191: comparison requires two @Interned types
    [javac]     if (getIdentifier() == socket.getIdentifier()) return socket.toString();
    [javac]                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/SocketManager.java:250: comparison requires two @Interned types
    [javac]         if (writer == reader) {
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/SocketManager.java:377: comparison requires two @Interned types
    [javac]         if (writer != receiver) {
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/SocketManager.java:392: comparison requires two @Interned types
    [javac]         if (reader != receiver) throw new IllegalStateException("Already registered "+reader+" for reading, you can't register "+receiver+" for reading as well!"); 
    [javac]                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/magicnumber/MagicNumberTransportLayer.java:155: comparison requires two @Interned types
    [javac]         if (cancellable.getSubCancellable() != null && c != cancellable.getSubCancellable()) throw new RuntimeException("c != cancellable.getSubCancellable() (indicates a bug in the code) c:"+c+" sub:"+cancellable.getSubCancellable());
    [javac]                                                          ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/magicnumber/MagicNumberTransportLayer.java:187: comparison requires two @Interned types
    [javac]         if (cancellable.getSubCancellable() != null && c != cancellable.getSubCancellable()) throw new RuntimeException("c != cancellable.getSubCancellable() (indicates a bug in the code) c:"+c+" sub:"+cancellable.getSubCancellable());
    [javac]                                                          ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/magicnumber/MagicNumberTransportLayer.java:218: comparison requires two @Interned types
    [javac]             if (cancellable.getSubCancellable() != null && msg != cancellable.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+cancellable.getSubCancellable());
    [javac]                                                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/org/mpisws/p2p/transport/wire/magicnumber/MagicNumberTransportLayer.java:225: comparison requires two @Interned types
    [javac]             if (cancellable.getSubCancellable() != null && msg != cancellable.getSubCancellable()) throw new RuntimeException("msg != cancellable.getSubCancellable() (indicates a bug in the code) msg:"+msg+" sub:"+cancellable.getSubCancellable());
    [javac]                                                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/email/proxy/imap/ImapState.java:173: comparison requires two @Interned types
    [javac]       if (states[i] != this)
    [javac]                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/email/proxy/imap/commands/fetch/MessagePropertyPart.java:186: comparison requires two @Interned types
    [javac]       if (contentHeader == "NIL")
    [javac]                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/email/proxy/util/FileResource.java:87: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class<?>
    [javac]                 o.getClass().getMethod("close", new Class[] {}).invoke(
    [javac]                                                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/past/testing/PastRegrTest.java:90: comparison requires two @Interned types
    [javac]     if (PROTOCOL == PROTOCOL_DIRECT) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/past/testing/PastRegrTest.java:426: comparison requires two @Interned types
    [javac]     while (tmp == remote1) {
    [javac]                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/past/testing/RawPastRegrTest.java:91: comparison requires two @Interned types
    [javac]     if (PROTOCOL == PROTOCOL_DIRECT) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/past/testing/RawPastRegrTest.java:452: comparison requires two @Interned types
    [javac]     while (tmp == remote1) {
    [javac]                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/scribe/ScribeImpl.java:510: comparison requires two @Interned types
    [javac]         if (set.size() > 1 && set.getHandle(1) == localHandle) {
    [javac]                                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/scribe/ScribeImpl.java:523: comparison requires two @Interned types
    [javac]       if (set.size() > 1 && set.getHandle(1) == localHandle) {
    [javac]                                              ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/scribe/testing/ScribeRegrTest.java:401: comparison requires two @Interned types
    [javac]         if (scribes[i].getParent(topics.get(0)) == scribes[i].getParent(topics.get(1))) {
    [javac]                                                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:289: comparison requires two @Interned types
    [javac]             if (c == comparator || (c != null && c.equals(comparator))) {
    [javac]                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:355: comparison requires two @Interned types
    [javac]                     while (parent != null && ch == parent.right) {
    [javac]                                                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:388: comparison requires two @Interned types
    [javac]                     while (parent != null && ch == parent.left) {
    [javac]                                                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1406: comparison requires two @Interned types
    [javac]             while (p != null && ch == p.right) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1453: comparison requires two @Interned types
    [javac]         else if (p.parent.left == p)
    [javac]                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1469: comparison requires two @Interned types
    [javac]         else if (p.parent.right == p)
    [javac]                                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1481: comparison requires two @Interned types
    [javac]         while (x != null && x != root && x.parent.color == RED) {
    [javac]                               ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1482: comparison requires two @Interned types
    [javac]             if (parentOf(x) == leftOf(parentOf(parentOf(x)))) {
    [javac]                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1490: comparison requires two @Interned types
    [javac]                     if (x == rightOf(parentOf(x))) {
    [javac]                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1507: comparison requires two @Interned types
    [javac]                     if (x == leftOf(parentOf(x))) {
    [javac]                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1545: comparison requires two @Interned types
    [javac]             else if (p == p.parent.left)
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1563: comparison requires two @Interned types
    [javac]                 if (p == p.parent.left)
    [javac]                       ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1565: comparison requires two @Interned types
    [javac]                 else if (p == p.parent.right)
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1576: comparison requires two @Interned types
    [javac]         while (x != root && colorOf(x) == BLACK) {
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/RedBlackMap.java:1577: comparison requires two @Interned types
    [javac]             if (x == leftOf(parentOf(x))) {
    [javac]                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/StringCache.java:298: comparison requires two @Interned types
    [javac]       return (v1 == v2 || (v1 != null && v1.equals(v2)));
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:469: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]           meth = defCl.getDeclaredMethod("readResolve", new Class[0]);
    [javac]                                                         ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:518: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]         Method method = cl.getDeclaredMethod("readObject", new Class[] {ObjectInputStream.class});
    [javac]                                                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:548: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]     Constructor cons = initCl.getDeclaredConstructor(new Class[0]);
    [javac]                                                      ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:569: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]           cons = c.getDeclaredConstructor(new Class[0]);
    [javac]                                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1086: warning: use of .equals can be safely replaced by ==/!=
    [javac]     if (c.equals(Integer.TYPE)) {
    [javac]                 ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1088: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Boolean.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1090: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Byte.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1092: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Character.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1094: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Double.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1096: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Float.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1098: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Long.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1100: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (c.equals(Short.TYPE)) {
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1185: warning: use of .equals can be safely replaced by ==/!=
    [javac]     if (f.getType().equals(Integer.TYPE)) {
    [javac]                           ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1187: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Boolean.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1189: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Byte.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1191: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Character.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1193: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Double.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1195: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Float.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1197: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Long.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1199: warning: use of .equals can be safely replaced by ==/!=
    [javac]     } else if (f.getType().equals(Short.TYPE)) {
    [javac]                                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1229: warning: use of .equals can be safely replaced by ==/!=
    [javac]       if (c.equals(Integer.TYPE))
    [javac]                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1231: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Boolean.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1233: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Byte.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1235: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Character.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1237: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Double.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1239: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Float.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1241: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Long.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectInputStream.java:1243: warning: use of .equals can be safely replaced by ==/!=
    [javac]       else if (c.equals(Short.TYPE))
    [javac]                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:490: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]         meth = defCl.getDeclaredMethod("writeReplace", new Class[0]);
    [javac]                                                        ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:536: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]         Method method = cl.getDeclaredMethod("writeObject", new Class[] {ObjectOutputStream.class});
    [javac]                                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:649: warning: use of .equals can be safely replaced by ==/!=
    [javac]       if (c.getSuperclass().equals((new Object()).getClass())) 
    [javac]                                   ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:656: invalid type, type need to be a supertype of the required type.
    [javac] found   : java.lang.Class
    [javac] required: @checkers.quals.Interned java.lang.Class
    [javac]     return (Class[]) v.toArray(new Class[0]);
    [javac]                  ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:656: incompatible types.
    [javac] found   :  java.lang.Class[@checkers.quals.Interned ]
    [javac] required:  java.lang.Object[]
    [javac]     return (Class[]) v.toArray(new Class[0]);
    [javac]                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:851: warning: use of .equals can be safely replaced by ==/!=
    [javac]         if (c.equals(Integer.TYPE)) {
    [javac]                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:853: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Boolean.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:855: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Byte.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:857: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Character.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:859: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Double.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:861: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Float.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:863: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Long.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1047: warning: use of .equals can be safely replaced by ==/!=
    [javac]       if (primitive.getClass().equals(Integer.class)) {
    [javac]                                      ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1049: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Boolean.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1051: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Byte.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1053: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Character.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1055: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Double.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1057: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Float.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1059: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Long.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1061: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (primitive.getClass().equals(Short.class)) {
    [javac]                                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1088: warning: use of .equals can be safely replaced by ==/!=
    [javac]       if (f.getType().equals(Integer.TYPE)) {
    [javac]                             ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1090: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Boolean.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1092: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Byte.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1094: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Character.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1096: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Double.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1098: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Float.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1100: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Long.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1102: warning: use of .equals can be safely replaced by ==/!=
    [javac]       } else if (f.getType().equals(Short.TYPE)) {
    [javac]                                    ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/XMLObjectOutputStream.java:1379: comparison requires two @Interned types
    [javac]       return (((Reference) o).object == object); 
    [javac]                                      ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/RedBlackMapUnit.java:223: comparison requires two @Interned types
    [javac]       if (next != sorted[count]) 
    [javac]                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/RedBlackMapUnit.java:243: comparison requires two @Interned types
    [javac]       if (next != sorted[count]) 
    [javac]                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/RedBlackMapUnit.java:263: comparison requires two @Interned types
    [javac]       if (next != sorted[count]) 
    [javac]                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/RedBlackMapUnit.java:284: comparison requires two @Interned types
    [javac]       if (next != sorted[count]) 
    [javac]                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/StringCacheUnit.java:86: comparison requires two @Interned types
    [javac]     if (Arrays.equals(test_2, s.toCharArray()) && (s == s_2)) {
    [javac]                                                      ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/StringCacheUnit.java:111: comparison requires two @Interned types
    [javac]             if (other != t) {
    [javac]                       ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:223: warning: use of .equals can be safely replaced by ==/!=
    [javac]         o1.getClass().getComponentType().equals(o2.getClass().getComponentType())) {
    [javac]                                                ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:228: warning: use of .equals can be safely replaced by ==/!=
    [javac]         if (c.equals(Integer.TYPE)) {
    [javac]                     ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:230: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Boolean.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:232: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Byte.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:234: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Character.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:236: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Double.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:238: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Float.TYPE)) {
    [javac]                            ^
    [javac] /DS/home-0/mernst/tmp/try-freepastry/pastry/src/rice/p2p/util/testing/XMLObjectStreamUnit.java:240: warning: use of .equals can be safely replaced by ==/!=
    [javac]         } else if (c.equals(Long.TYPE)) {
    [javac]                            ^


    [javac] An annotation processor threw an uncaught exception.
    [javac] Consult the following stack trace for details.
    [javac] java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    [javac] 	at java.util.LinkedList.entry(LinkedList.java:382)
    [javac] 	at java.util.LinkedList.get(LinkedList.java:332)
    [javac] 	at java.util.Collections$UnmodifiableList.get(Collections.java:1170)
    [javac] 	at checkers.util.AnnotatedTypes.subst(AnnotatedTypes.java:248)
    [javac] 	at checkers.util.AnnotatedTypes.asMemberOf(AnnotatedTypes.java:223)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitMethod(BaseTypeVisitor.java:193)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:681)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
    [javac] 	at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
    [javac] 	at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:132)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:129)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:604)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
    [javac] 	at com.sun.source.util.TreeScanner.visitNewClass(TreeScanner.java:276)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitNewClass(BaseTypeVisitor.java:281)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1369)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
    [javac] 	at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
    [javac] 	at com.sun.source.util.TreeScanner.visitMethodInvocation(TreeScanner.java:267)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitMethodInvocation(BaseTypeVisitor.java:245)
    [javac] 	at checkers.interned.InternedVisitor.visitMethodInvocation(InternedVisitor.java:88)
    [javac] 	at checkers.interned.InternedVisitor.visitMethodInvocation(InternedVisitor.java:27)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1315)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
    [javac] 	at com.sun.source.util.TreeScanner.visitMethodInvocation(TreeScanner.java:267)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitMethodInvocation(BaseTypeVisitor.java:245)
    [javac] 	at checkers.interned.InternedVisitor.visitMethodInvocation(InternedVisitor.java:88)
    [javac] 	at checkers.interned.InternedVisitor.visitMethodInvocation(InternedVisitor.java:27)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1315)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:239)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1155)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
    [javac] 	at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
    [javac] 	at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:159)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
    [javac] 	at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:143)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitMethod(BaseTypeVisitor.java:197)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:681)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
    [javac] 	at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
    [javac] 	at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
    [javac] 	at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:132)
    [javac] 	at checkers.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:129)
    [javac] 	at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:604)
    [javac] 	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:49)
    [javac] 	at checkers.source.SourceChecker.process(SourceChecker.java:191)
    [javac] 	at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:733)
    [javac] 	at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:662)
    [javac] 	at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:807)
    [javac] 	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:995)
    [javac] 	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:741)
    [javac] 	at com.sun.tools.javac.main.Main.compile(Main.java:380)
    [javac] 	at com.sun.tools.javac.main.Main.compile(Main.java:306)
    [javac] 	at com.sun.tools.javac.main.Main.compile(Main.java:297)
    [javac] 	at com.sun.tools.javac.Main.compile(Main.java:82)
    [javac] 	at com.sun.tools.javac.Main.main(Main.java:67)

BUILD FAILED
/DS/home-0/mernst/tmp/try-freepastry/pastry/build.xml:104: Compile failed; see the compiler error output for details.

Total time: 36 seconds

Compilation exited abnormally with code 1 at Tue Mar 18 00:05:55



More information about the checkers mailing list