aboutsummaryrefslogtreecommitdiffstats
path: root/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2015-09-18 11:27:18 +0300
committerVaadin Code Review <review@vaadin.com>2015-11-30 13:49:09 +0000
commit715d9ed84666c858c759d27d00b57d629bbe9b7b (patch)
treea944f2927b8a09143b29d170a5b00999b266abc4 /client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java
parent5ff2b734d379f31d0f82b4c3cfbb7d39ad05fc03 (diff)
downloadvaadin-framework-715d9ed84666c858c759d27d00b57d629bbe9b7b.tar.gz
vaadin-framework-715d9ed84666c858c759d27d00b57d629bbe9b7b.zip
Fail during compile if required methods are missing (#18924)
A ComponentConnector must override either getWidget or createWidget for the framework to know the type of the component's widget. Similarly either getRenderer och createRenderer must be overridden for AbstractRendererConnector. Prior to this patch, the compilation succeeded when critical methods were missing - the user just got various hard-to-debug issues when the broken connector was used. Change-Id: I6ec07e2f1c1b15047802e64208485b1d999c0aee
Diffstat (limited to 'client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java')
-rw-r--r--client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java
index a77b523d14..9a9cac18ba 100644
--- a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java
+++ b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/WidgetInitVisitor.java
@@ -42,6 +42,16 @@ public class WidgetInitVisitor extends TypeVisitor {
// Needs GWT constructor if createWidget is not overridden
if (createWidgetClass.getQualifiedSourceName().equals(
AbstractComponentConnector.class.getCanonicalName())) {
+ if (getWidget
+ .getEnclosingType()
+ .getQualifiedSourceName()
+ .equals(AbstractComponentConnector.class
+ .getCanonicalName())) {
+ logger.log(Type.ERROR, type.getQualifiedSourceName()
+ + " must override either createWidget or getWidget");
+ throw new UnableToCompleteException();
+ }
+
bundle.setNeedsGwtConstructor(widgetType);
// Also needs widget type to find the right GWT constructor