title: Eclipse compiler says attribute is undefined in case of array of enums field in the annotation
body: <p>I'm using Spring Security 3.1.0.RC3 because the possibility to secure methods with enum privileges was introduced in 3.1. </p>
  
  <p>Here is my annotation:</p>
  
  <pre><code>public @interface SecuredEnum
  {
    public PrivilegeEnum[] value();
  }
  </code></pre>
  
  <p>And here is how I use it:</p>
  
  <pre><code>import static somepath1.PrivilegeEnum.SOME_PRIV1;
  
  public interface MyService extends BaseService {
    @SecuredEnum(SOME_PRIV1)
    void insertOrUpdateMyObject(MyObject myObject);
  }
  </code></pre>
  
  <p>javac compiles this code correctly every time, but eclipse (Indigo SR1) compiler gives an error after Project -> Clean:</p>
  
  <pre><code>The attribute value is undefined for the annotation type SecuredEnum    
  </code></pre>
  
  <p>and suggests a quick fix:</p>
  
  <pre><code>Create attribute 'value()'
  </code></pre>
  
  <p>So here is my workaround: I apply this fix, and comment out the array field in the annotation:</p>
  
  <pre><code>public @interface SecuredEnum
  {
    // public PrivilegeEnum[] value();
  
     public PrivilegeEnum value();
  }
  </code></pre>
  
  <p>After that eclipse compiles all classes correctly (except for those where @SecuredEnum takes two or more privileges). Next step is to uncomment the old array field and delete new field created by the quick fix. As a result, everything is compiled perfectly.
  So this is pretty annoying to do each time the project is cleaned. Another problem is that I can't reproduce this problem with a sample project, so maybe there is some crucial information that is missing from this question text.
  Whos bug is it and how is it possible to fix it?</p>
  
  <p>UPDATE:
  neither using explicit array in the annotation argument (i.e. adding { } brackets), nor defining the argument name ('value') explicitly nor using fully qualified enum value instead of static import helps</p>