[Checkers] Problems with NonNull checker
Michael Ernst
mernst at csail.mit.edu
Mon Apr 21 10:01:18 EDT 2008
Matt and Mahmood-
I'm having trouble running the NonNull checker. Some of the problems seem
to be with the NonNull checker itself, and others with the framework.
The commands that I am running are as follows. They appear in file
~mernst/wisdom/build/build-jast .
# Install JastAdd NonNull inferencer
cd ~/java
mv JavaNonNullInferencer.jar JavaNonNullInferencer.jar-`ls -l JavaNonNullInferencer.jar | cut --delimiter=' ' --fields=6`
wget http://builds.jastadd.org/NonNullTools/latest/JavaNonNullInferencer.jar
alias nninfer='java -Xmx768M -jar ~/java/JavaNonNullInferencer.jar -classpath ${CLASSPATH} -legacysyntax -import "checkers.quals.*"'
## To run on Daikon:
# Infer
rm -rf ~/tmp/nninfer/invariants-java
cd $inv/java
nninfer -d ~/tmp/nninfer/invariants-java `make showvar_JAVA_FILES`
# Compile
setenv CLASSPATH .:$CLASSPATH
cd ~/tmp/nninfer/invariants-java
# To make the javac command work, I have to replace some but not all @Raw by
# @checkers.quals.Raw. Why?
javac `findfile '*.java'`
javac -typeprocessor checkers.nonnull.NonNullChecker `findfile '*.java'`
You don't have to install JastAdd and run it if you don't want to -- you
can just work from the files in my directory
/afs/csail.mit.edu/u/m/mernst/tmp/nninfer/invariants-java .
My problems include:
* I have to replace some but not all uses of "@Raw" by "@checkers.quals.Raw".
(I have already done this in the one place I had to, in FileIO.java.)
* Error messages for class names, when accessing a static variable -- the
message says that the class name is possibly-null. This is most of the
messages, in fact.
* The checker crashes, after a long delay. I have not investigated this
to determine which file(s) are at fault.
I tried to reproduce these, but couldn't reproduce some of them, and it may
be more useful for you to have the whole codebase to work through problems.
Please let me know if I can provide any more information.
Below is the output of the last command, which runs the NonNull checker.
-Mike
manioc 27% pwd
/afs/csail.mit.edu/u/m/mernst/tmp/nninfer/invariants-java
manioc 28% javac -typeprocessor checkers.nonnull.NonNullChecker `findfile '*.java'`
./daikon/inv/unary/sequence/NoDuplicates.java:71: cannot dereference the possibly-null reference Level
if (debug.isLoggable(Level.FINE)) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:75: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.DAIKON) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:79: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.IOA) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:83: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.SIMPLIFY) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:96: cannot dereference the possibly-null reference Level
if (debugPrint.isLoggable(Level.FINE)) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:100: cannot dereference the possibly-null reference Quantify
/*@NonNull*/ Quantify.IOAQuantification quant = VarInfo.get_ioa_quantify (var(), var());
^
./daikon/inv/unary/sequence/NoDuplicates.java:126: cannot dereference the possibly-null reference a
for (int i=1; i<a.length; i++) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:129: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.FALSIFIED;
^
./daikon/inv/unary/sequence/NoDuplicates.java:133: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/NoDuplicates.java:138: cannot dereference the possibly-null reference Level
if (debug.isLoggable(Level.FINE) && (status == InvariantStatus.FALSIFIED)) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:138: cannot dereference the possibly-null reference InvariantStatus
if (debug.isLoggable(Level.FINE) && (status == InvariantStatus.FALSIFIED)) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:152: cannot dereference the possibly-null reference vis[0]
if (!vis[0].aux.getFlag(VarInfoAux.HAS_DUPLICATES)) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:152: cannot dereference the possibly-null reference VarInfoAux
if (!vis[0].aux.getFlag(VarInfoAux.HAS_DUPLICATES)) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:153: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo(this, DiscardCode.obvious, "Obvious statically");
^
./daikon/inv/unary/sequence/NoDuplicates.java:177: cannot dereference the possibly-null reference ValueSet
ValueSet.ValueSetScalarArray vs = (ValueSet.ValueSetScalarArray) vis[0].get_value_set();
^
./daikon/inv/unary/sequence/NoDuplicates.java:177: cannot dereference the possibly-null reference ValueSet
ValueSet.ValueSetScalarArray vs = (ValueSet.ValueSetScalarArray) vis[0].get_value_set();
^
./daikon/inv/unary/sequence/NoDuplicates.java:179: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo (this, DiscardCode.obvious, "Size of " + vis[0]
^
./daikon/inv/unary/sequence/NoDuplicates.java:186: cannot dereference the possibly-null reference ppt
/*@Raw*/ PptTopLevel parent = ppt.parent;
^
./daikon/inv/unary/sequence/NoDuplicates.java:191: cannot dereference the possibly-null reference inv.ppt
VarInfo v2 = inv.ppt.var_infos[0];
^
./daikon/inv/unary/sequence/NoDuplicates.java:191: cannot dereference the possibly-null reference inv
VarInfo v2 = inv.ppt.var_infos[0];
^
./daikon/inv/unary/sequence/NoDuplicates.java:195: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo(this, DiscardCode.obvious, "Invariant holds over a supersequence");
^
./daikon/inv/unary/sequence/NoDuplicates.java:202: cannot dereference the possibly-null reference this.ppt
PptSlice slice = this.ppt.parent.findSlice_unordered (vis);
^
./daikon/inv/unary/sequence/NoDuplicates.java:202: cannot dereference the possibly-null reference this
PptSlice slice = this.ppt.parent.findSlice_unordered (vis);
^
./daikon/inv/unary/sequence/NoDuplicates.java:204: cannot dereference the possibly-null reference slice
for (Invariant inv : slice.invs) {
^
./daikon/inv/unary/sequence/NoDuplicates.java:209: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo(this, DiscardCode.obvious, "Sequence is sorted: " + inv.format());
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:27: cannot dereference the possibly-null reference vis
return ((vis.length == 1)
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:28: cannot dereference the possibly-null reference vis[0]
&& vis[0].file_rep_type.baseIsFloat()
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:29: cannot dereference the possibly-null reference vis[0]
&& vis[0].file_rep_type.isArray());
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:47: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:62: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:76: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleFloatSequence.java:82: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:28: cannot dereference the possibly-null reference vis
return ((vis.length == 1)
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:29: cannot dereference the possibly-null reference vis[0]
&& vis[0].file_rep_type.baseIsScalar()
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:30: cannot dereference the possibly-null reference vis[0]
&& vis[0].file_rep_type.isArray());
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:39: cannot dereference the possibly-null reference ppt
return ppt.var_infos[0];
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:54: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:69: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:88: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SingleScalarSequence.java:95: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:83: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.DAIKON) return format_daikon();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:84: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.IOA) return format_ioa();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:85: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.ESCJAVA) return format_esc();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:86: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.SIMPLIFY) return format_simplify();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:93: cannot dereference the possibly-null reference System
System.out.println(repr());
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:101: cannot dereference the possibly-null reference Quantify
/*@NonNull*/ Quantify.IOAQuantification quant = VarInfo.get_ioa_quantify (var(), var());
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:134: cannot dereference the possibly-null reference a
for (int i=1; i<a.length; i++) {
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:135: cannot dereference the possibly-null reference Global
if (!(Global.fuzzy.gt (a[i-1], a[i]))) {
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:136: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.FALSIFIED;
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:139: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:185: cannot dereference the possibly-null reference ppt
for (Invariant inv : ppt.invs) {
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:216: cannot dereference the possibly-null reference ValueSet
ValueSet.ValueSetFloatArray vs = (ValueSet.ValueSetFloatArray) ppt.var_infos[0].get_value_set();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:216: cannot dereference the possibly-null reference ValueSet
ValueSet.ValueSetFloatArray vs = (ValueSet.ValueSetFloatArray) ppt.var_infos[0].get_value_set();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:216: cannot dereference the possibly-null reference ppt
ValueSet.ValueSetFloatArray vs = (ValueSet.ValueSetFloatArray) ppt.var_infos[0].get_value_set();
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:227: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo(this, DiscardCode.obvious,
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:233: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo(this, DiscardCode.obvious, "The sequence contains all equal values.");
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:252: cannot dereference the possibly-null reference ppt
for (Invariant inv : ppt.invs) {
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:264: cannot dereference the possibly-null reference vis[0]
Derivation deriv = vis[0].derived;
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:271: cannot dereference the possibly-null reference ppt
sliceToCheck = ppt.parent.findSlice(((SequenceScalarSubsequence)deriv).seqvar());
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:273: cannot dereference the possibly-null reference ppt
sliceToCheck = ppt.parent.findSlice(((SequenceFloatSubsequence)deriv).seqvar());
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:276: cannot dereference the possibly-null reference sliceToCheck
for (Invariant inv : sliceToCheck.invs) {
^
./daikon/inv/unary/sequence/EltwiseFloatGreaterThan.java:280: cannot dereference the possibly-null reference DiscardCode
return new DiscardInfo(this, DiscardCode.obvious, discardString);
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:72: cannot dereference the possibly-null reference intersect
for (int i=0; i<intersect.length; i++) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:74: cannot dereference the possibly-null reference intersect
if (i!=intersect.length-1)
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:82: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.DAIKON) return format_daikon();
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:83: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.IOA) return format_ioa();
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:84: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.SIMPLIFY) return format_simplify();
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:103: cannot dereference the possibly-null reference intersect
if (intersect == null || intersect.length == 0) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:108: cannot dereference the possibly-null reference OutputFormat
return format_unimplemented(OutputFormat.SIMPLIFY);
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:118: cannot dereference the possibly-null reference intersect
for (int i=0; i<intersect.length; i++) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:136: cannot dereference the possibly-null reference intersect
if (i == intersect.length - 1)
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:146: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.FALSIFIED;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:148: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:150: cannot dereference the possibly-null reference a
for (int i = 0; i < a.length; i++) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:151: cannot dereference the possibly-null reference Global
if (Global.fuzzy.indexOf (intersect, a[i]) != -1) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:152: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:155: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.FALSIFIED;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:162: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.FALSIFIED;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:165: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:167: cannot dereference the possibly-null reference intersect
/*@NonNull*/ double[] tmp = new double[intersect.length];
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:169: cannot dereference the possibly-null reference a
for (int i=0; i<a.length; i++) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:172: cannot dereference the possibly-null reference Global
int ii = Global.fuzzy.indexOf (intersect, a[i]);
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:174: cannot dereference the possibly-null reference Global
(Global.fuzzy.indexOf (ArraysMDE.subarray(tmp,0,size), a[i]) == -1)) {
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:184: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.FALSIFIED;
^
./daikon/inv/unary/sequence/CommonFloatSequence.java:192: cannot dereference the possibly-null reference InvariantStatus
return InvariantStatus.NO_CHANGE;
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:45: cannot dereference the possibly-null reference var()
Assert.assertTrue(var().rep_type == ProglangType.INT_ARRAY);
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:45: cannot dereference the possibly-null reference ProglangType
Assert.assertTrue(var().rep_type == ProglangType.INT_ARRAY);
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:69: cannot dereference the possibly-null reference vis[0]
ProglangType elt_type = vis[0].file_rep_type.elementType();
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:76: cannot dereference the possibly-null reference seqvar
if (seqvar.comparability != null) {
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:77: cannot dereference the possibly-null reference seqvar
elt_compar = seqvar.comparability.elementType();
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:78: cannot dereference the possibly-null reference seqvar
index_compar = seqvar.comparability.indexType(0);
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:102: cannot dereference the possibly-null reference SeqIndexIntGreaterEqual
/*@NonNull*/ NISuppressee suppressee = new NISuppressee (SeqIndexIntGreaterEqual.class, 1);
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:106: cannot dereference the possibly-null reference SeqIndexIntEqual
/*@NonNull*/ NISuppressor v1_eq_v2 = new NISuppressor (0, SeqIndexIntEqual.class);
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:108: cannot dereference the possibly-null reference SeqIndexIntGreaterThan
/*@NonNull*/ NISuppressor v1_gt_v2 = new NISuppressor (0,SeqIndexIntGreaterThan.class);
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:137: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.DAIKON) return format_daikon();
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:138: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.IOA) return format_ioa();
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:139: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.ESCJAVA) return format_esc();
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:140: cannot dereference the possibly-null reference OutputFormat
if (format == OutputFormat.SIMPLIFY) return format_simplify();
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:160: cannot dereference the possibly-null reference Quantify
/*@NonNull*/ Quantify.IOAQuantification quant = VarInfo.get_ioa_quantify (var());
^
./daikon/inv/unary/sequence/SeqIndexIntGreaterEqual.java:186: cannot dereference the possibly-null reference a
for (int i=0; i<a.length; i++) {
^
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.UnsupportedOperationException: conversion undefined for tree type PRIMITIVE_TYPE
at checkers.types.TypeFromTree.defaultAction(TypeFromTree.java:30)
at checkers.types.TypeFromTree$TypeFromExpression.defaultAction(TypeFromTree.java:47)
at com.sun.source.util.SimpleTreeVisitor.visitPrimitiveType(SimpleTreeVisitor.java:220)
at com.sun.tools.javac.tree.JCTree$JCPrimitiveTypeTree.accept(JCTree.java:1814)
at com.sun.source.util.SimpleTreeVisitor.visit(SimpleTreeVisitor.java:52)
at checkers.types.AnnotatedTypeFactory.fromTreeWithVisitor(AnnotatedTypeFactory.java:246)
at checkers.types.AnnotatedTypeFactory.fromExpression(AnnotatedTypeFactory.java:260)
at checkers.types.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:466)
at checkers.nonnull.NonNullVisitor.visitMemberSelect(NonNullVisitor.java:40)
at checkers.nonnull.NonNullVisitor.visitMemberSelect(NonNullVisitor.java:21)
at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1673)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.visitAssignment(TreeScanner.java:293)
at checkers.basetype.BaseTypeVisitor.visitAssignment(BaseTypeVisitor.java:115)
at com.sun.tools.javac.tree.JCTree$JCAssign.accept(JCTree.java:1463)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:239)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1155)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:159)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.visitIf(TreeScanner.java:233)
at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1130)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:159)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.visitForLoop(TreeScanner.java:178)
at com.sun.tools.javac.tree.JCTree$JCForLoop.accept(JCTree.java:876)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:159)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:143)
at checkers.basetype.BaseTypeVisitor.visitMethod(BaseTypeVisitor.java:205)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:681)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:132)
at checkers.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:128)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:604)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:49)
at checkers.source.SourceChecker.process(SourceChecker.java:189)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:733)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:662)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:807)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:995)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:741)
at com.sun.tools.javac.main.Main.compile(Main.java:380)
at com.sun.tools.javac.main.Main.compile(Main.java:306)
at com.sun.tools.javac.main.Main.compile(Main.java:297)
at com.sun.tools.javac.Main.compile(Main.java:82)
at com.sun.tools.javac.Main.main(Main.java:67)
manioc 29%
More information about the checkers
mailing list