title: Grails: can't have an abstract method in a non-abstract class ERROR
body: <p>Grails version: 2.3.4</p>
  
  <p>Java version: 1.7.0_79</p>
  
  <p>I was developing an uploader to AWS S3, from a demo, in a standalone app which was in the latest version of Grails. It is working and I've now been trying to implement it into my older Grails main app.</p>
  
  <p>I'm coming into an error on server start with regards to this line of code:</p>
  
  <pre><code>import grails.validation.Validateable
  import org.springframework.web.multipart.MultipartFile
  
  abstract class FeaturedImageCommand implements Validateable {
   MultipartFile featuredImageFile
   Long id
   Long eventId
   Integer version
  
  static constraints = {
      id nullable: false
      version nullable: false
      eventId nullable:false
  
      featuredImageFile  validator: { val, obj -&gt;
          if ( val == null ) {
              return false
          }
          if ( val.empty ) {
              return false
          }
  
          ['jpeg', 'jpg', 'png'].any { extension -&gt; // &lt;1&gt;
               val.originalFilename?.toLowerCase()?.endsWith(extension)
          }
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>The error reads:</p>
  
  <p>Can't have an abstract method in a non-anstract class. The class 'FeaturedImageCommand' must be declared abstract or the method 'java.lang.Class.annotationType()' must be implemented.</p>
  
  <p>I'm assuming my java and grails versions are causing this, but I'm really hoping there is a way around this without updating them?</p>
  
  <p>Thank you.</p>