I see how that could happen. We don't take annotations into account in the computing of dependencies in
BytecodeSignatureMaker.CompileDependencyVisitor. Filed issue: http://code.google.com/p/google-web-toolkit/issues/detail?id=6646 -Eric. On Tue, Aug 2, 2011 at 2:57 PM, Stephen Haberman <[email protected]> wrote: > Hi, > > I ran into an odd boundary case with the unit cache today that I > thought I'd report. > > I had a class, Foo, using a binary-only annotation, @Bar. Somehow > my classpath was wrong, and so I got a (valid) compilation error > from ecj that Foo couldn't be compiled without Bar. > > However, after fixing my classpath issue, the compilation error > didn't go away. After several minutes of ensuring the classpath was, > no really, really right now, I finally realized it's because binary > only annotations are not captured by the CompilationUnit's Dependencies > (being resolved against the valid classes found by the resource oracle, > which won't have binary-only annotations), so I was really seeing > cached compilation errors. > > Adding a blank line to Foo kicked off a real compilation and then > all was well. > > I don't have any insights on how to recognize this case, nor if > it's worth doing so, given it is likely/hopefully rare. > > - Stephen > > -- > http://groups.google.com/group/Google-Web-Toolkit-Contributors > -- Eric Ayers | Software Engineer | [email protected] | +1 404 487 9229 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
