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

Reply via email to