From 54329d37c882a3b1b4e916258a40fafde5fc34c8 Mon Sep 17 00:00:00 2001
From: Artur Signell <artur@vaadin.com>
Date: Wed, 18 Jun 2014 13:35:08 +0300
Subject: Do not consider compiler introduced methods when determining state
 class (#14003)

Change-Id: Ia2c3b8331f1ae34effceb0bb624cfaa7ba8578ed
---
 server/src/com/vaadin/server/AbstractClientConnector.java | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

(limited to 'server')

diff --git a/server/src/com/vaadin/server/AbstractClientConnector.java b/server/src/com/vaadin/server/AbstractClientConnector.java
index 92c235167c..d03f032c88 100644
--- a/server/src/com/vaadin/server/AbstractClientConnector.java
+++ b/server/src/com/vaadin/server/AbstractClientConnector.java
@@ -292,11 +292,13 @@ public abstract class AbstractClientConnector implements ClientConnector,
                     Method m = class1.getDeclaredMethod("getState",
                             (Class[]) null);
                     Class<?> type = m.getReturnType();
-                    return type.asSubclass(SharedState.class);
+                    if (!m.isSynthetic()) {
+                        return type.asSubclass(SharedState.class);
+                    }
                 } catch (NoSuchMethodException nsme) {
-                    // Try in superclass instead
-                    class1 = class1.getSuperclass();
                 }
+                // Try in superclass instead
+                class1 = class1.getSuperclass();
             }
             throw new NoSuchMethodException(getClass().getCanonicalName()
                     + ".getState()");
-- 
cgit v1.2.3