Add special case to filter out getMetaClass for Groovy objects
diff --git a/src/main/java/org/eclipse/yasson/internal/ClassParser.java b/src/main/java/org/eclipse/yasson/internal/ClassParser.java
index 832a99f..c5f6016 100644
--- a/src/main/java/org/eclipse/yasson/internal/ClassParser.java
+++ b/src/main/java/org/eclipse/yasson/internal/ClassParser.java
@@ -173,7 +173,7 @@
         for (Method method : declaredMethods) {
             String name = method.getName();
             //isBridge method filters out methods inherited from interfaces
-            if (!isPropertyMethod(method) || method.isBridge()) {
+            if (!isPropertyMethod(method) || method.isBridge() || isSpecialCaseMethod(method)) {
                 continue;
             }
             final String propertyName = toPropertyMethod(name);
@@ -181,6 +181,16 @@
             Property property = registerMethod(propertyName, method, classElement, classProperties);
         }
     }
+    
+    /**
+     * Filter out certain methods that get forcibly added to some classes.
+     * For example the public groovy.lang.MetaClass X.getMetaClass() method from Groovy classes
+     */
+    private boolean isSpecialCaseMethod(Method m) {
+        if (m.getName().equals("getMetaClass") && m.getReturnType().getCanonicalName().equals("groovy.lang.MetaClass"))
+            return true;
+        return false;
+    }
 
     private boolean isGetter(Method m) {
         return (m.getName().startsWith(GET_PREFIX) || m.getName().startsWith(IS_PREFIX)) && m.getParameterCount() == 0;