Client side ClassCastException

Hi there,

I have some code that assigns a TextChangeListener to a TextField and later on tries to remove that same listener:


private final ValueChangeListener vcl = new ValueChangeListener() {
		public void valueChange(ValueChangeEvent event) {
			signalDirty();
		}
	};
	private final TextChangeListener tcl = new TextChangeListener() {
		public void textChange(TextChangeEvent event) {
			signalDirty();
		}
	};

	private void registerComponent(Component c) {
		if (c instanceof ComboBox) {
			((ComboBox)c).addValueChangeListener(vcl);
		} else if (c instanceof AbstractTextField) {
			((AbstractTextField)c).addTextChangeListener(tcl);
		} else if (c instanceof OptionGroup) {
			((OptionGroup)c).addValueChangeListener(vcl);
		}
	}
	
	private void unregisterComponent(Component c) {
		if (c instanceof ComboBox) {
			((ComboBox)c).removeValueChangeListener(vcl);
		} else if (c instanceof AbstractTextField) {
			// ((AbstractTextField)c).removeTextChangeListener(tcl);
		} else if (c instanceof OptionGroup) {
			((OptionGroup)c).removeValueChangeListener(vcl);
		}
	}

The code above works fine for the ComboBox and OptionGroup example, but I get a client side ClassCastException when I reactivate the line that removes my listener from the textfield. It fails both with normal textfield and with textarea.

Is there a way around this?

Thanks,
Stefan

I tested this with beta8 and it seems to work fine. What version/browser are you using?

I just tried it once again with beta9, it still gives me a client side ClassCastException. It occurs in all browsers that I have available, i.e. IE 9, Firefox, Chrome and Safari.

I´m still a novice: Maybe someone could tell me how to find out more about the client side exception - how can I get the stack trace for it?

Thanks,
Stefan

I’m gonna need some more code; could you post a minimal test UI that replicates the problem?

For debugging the client side, the only viable way is to use GWT DevMode as discussed
here
. The plugin lets you run the Java code directly instead of compiled JavaScript, including using a debugger.

Whenever I try to do the same in a “minimal” UI, I don´t get the error - I´m still trying to find out what makes up the difference between my project and the “minimal” one. That can take some time.

But meanwhile, I managed to run it in GWT dev. mode and have a complete stack trace:


java.lang.ClassCastException: com.google.gwt.json.client.JSONString cannot be cast to com.google.gwt.json.client.JSONArray
	at com.vaadin.client.communication.JsonDecoder.decodeValue(JsonDecoder.java:77)
	at com.vaadin.client.communication.JsonDecoder.decodeObject(JsonDecoder.java:138)
	at com.vaadin.client.communication.JsonDecoder.decodeValue(JsonDecoder.java:105)
	at com.vaadin.client.ApplicationConnection$9.updateConnectorState(ApplicationConnection.java:1680)
	at com.vaadin.client.ApplicationConnection$9.execute(ApplicationConnection.java:1284)
	at com.vaadin.client.ApplicationConfiguration.runWhenDependenciesLoaded(ApplicationConfiguration.java:490)
	at com.vaadin.client.ApplicationConnection.handleUIDLMessage(ApplicationConnection.java:1995)
	at com.vaadin.client.ApplicationConnection.handleReceivedJSONMessage(ApplicationConnection.java:1138)
	at com.vaadin.client.ApplicationConnection.handleJSONText(ApplicationConnection.java:789)
	at com.vaadin.client.ApplicationConnection.access$7(ApplicationConnection.java:774)
	at com.vaadin.client.ApplicationConnection$3.onResponseReceived(ApplicationConnection.java:743)
	at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
	at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
	at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
	at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
	at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
	at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
	at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
	at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
	at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
	at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
	at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
	at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
	at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
	at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
	at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
	at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
	at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
	at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
	at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
	at java.lang.Thread.run(Thread.java:662)

Does that maybe already help?

Stefan

Thanks. Could you also take a look at the request/response causing the exception, with Firebug or an equivalent tool, and copypaste here the JSON text in the request and response?

This is the request:


9ce1b535-d11d-4cfb-98c2-0541ef72e598[["47","v","v",["c",["i","2"]
]],["47","v","v",["curText",["s","sv"]
]]]

And here´s the response:


for(;;);[{"changes":[["change",{"pid":"0"},["0",{"id":"0","location":"http:\/\/localhost:9090\/Vaadin\/?restartApplication"}]
],["change",{"pid":"35"},["41",{"id":"35"}]
],["change",{"pid":"36"},["42",{"id":"36","structuralChange":false,"colExpand":["500","500"]
,"rowExpand":["500","500"]
,"alignments":["5"]
},["gr",{},["gc",{"x":0,"y":0},["43",{"id":"37","cached":true}]
],["gc",{"x":1,"y":0}]
],["gr",{},["gc",{"x":0,"y":1,"w":2}]
]]],["change",{"pid":"37"},["43",{"id":"37"}]
],["change",{"pid":"38"},["42",{"id":"38","structuralChange":false,"colExpand":["250","250","250","250"]
,"rowExpand":["62","67","67","67","67","67","67","67","67","67","67","67","67","67","67"]
,"alignments":["5","5","5","5","5","5","5","5","5","5","5","5","5","5","5","5","5","5","5","5"]
},["gr",{},["gc",{"x":0,"y":0},["44",{"id":"39","cached":true}]
],["gc",{"x":1,"y":0,"w":3}]
],["gr",{},["gc",{"x":0,"y":1},["33",{"id":"40","cached":true}]
],["gc",{"x":1,"y":1},["33",{"id":"41","cached":true}]
],["gc",{"x":2,"y":1,"w":2}]
],["gr",{},["gc",{"x":0,"y":2,"w":2},["6",{"id":"42","cached":true}]
],["gc",{"x":2,"y":2,"w":2},["6",{"id":"43","cached":true}]
]],["gr",{},["gc",{"x":0,"y":3,"w":4},["6",{"id":"44","cached":true}]
]],["gr",{},["gc",{"x":0,"y":4,"w":4},["6",{"id":"45","cached":true}]
]],["gr",{},["gc",{"x":0,"y":5,"w":4},["6",{"id":"46","cached":true}]
]],["gr",{},["gc",{"x":0,"y":6,"w":4},["6",{"id":"47","cached":true}]
]],["gr",{},["gc",{"x":0,"y":7},["45",{"id":"48","cached":true}]
],["gc",{"x":1,"y":7,"w":3}]
],["gr",{},["gc",{"x":0,"y":8,"w":2},["6",{"id":"49","cached":true}]
],["gc",{"x":2,"y":8},["6",{"id":"50","cached":true}]
],["gc",{"x":3,"y":8},["6",{"id":"51","cached":true}]
]],["gr",{},["gc",{"x":0,"y":9},["33",{"id":"52","cached":true}]
],["gc",{"x":1,"y":9},["6",{"id":"53","cached":true}]
],["gc",{"x":2,"y":9,"w":2},["6",{"id":"54","cached":true}]
]],["gr",{},["gc",{"x":0,"y":10,"w":2},["6",{"id":"55","cached":true}]
],["gc",{"x":2,"y":10,"w":2},["6",{"id":"56","cached":true}]
]],["gr",{},["gc",{"x":0,"y":11,"w":4},["46",{"id":"57","cached":true}]
]],["gr",{},["gc",{"x":0,"y":12,"w":4,"h":3},["47",{"id":"61","cached":true}]
]],["gr",{}]
,["gr",{}]
]],["change",{"pid":"47"},["6",{"id":"47"}]
],["change",{"pid":"44"},["6",{"id":"44"}]
],["change",{"pid":"42"},["6",{"id":"42"}]
],["change",{"pid":"46"},["6",{"id":"46"}]
],["change",{"pid":"55"},["6",{"id":"55"}]
],["change",{"pid":"49"},["6",{"id":"49"}]
],["change",{"pid":"50"},["6",{"id":"50"}]
],["change",{"pid":"45"},["6",{"id":"45"}]
],["change",{"pid":"53"},["6",{"id":"53"}]
],["change",{"pid":"54"},["6",{"id":"54"}]
],["change",{"pid":"56"},["6",{"id":"56"}]
],["change",{"pid":"43"},["6",{"id":"43"}]
],["change",{"pid":"61"},["47",{"id":"61"}]
],["change",{"pid":"51"},["6",{"id":"51"}]
]], "state":{"49":{"registeredEventListeners":"null"},"45":{"registeredEventListeners":"null"},"44":{"registeredEventListeners":"null"},"47":{"registeredEventListeners":"null"},"56":{"registeredEventListeners":"null"},"46":{"registeredEventListeners":"null"},"55":{"registeredEventListeners":"null"},"43":{"registeredEventListeners":"null"},"42":{"registeredEventListeners":"null"},"51":{"registeredEventListeners":"null"},"53":{"registeredEventListeners":"null"},"54":{"registeredEventListeners":"null"},"8":{"enabled":true},"61":{"registeredEventListeners":"null"},"50":{"registeredEventListeners":"null"}}, "types":{"49":"6","45":"6","44":"6","56":"6","47":"6","46":"6","55":"6","35":"41","36":"42","37":"43","38":"42","1":"13","0":"0","43":"6","42":"6","51":"6","53":"6","9":"8","8":"12","54":"6","61":"47","50":"6"}, "hierarchy":{"49":[],"45":[]
,"44":[],"56":[]
,"47":[],"46":[]
,"55":[],"35":["36"]
,"36":["37"]
,"37":["38"]
,"38":["39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","61"]
,"1":["2","6","9"]
,"0":["1"]
,"43":[],"42":[]
,"51":[],"53":[]
,"9":["10","35"]
,"8":[],"54":[]
,"61":[],"50":[]
}, "meta" : {}, "resources" : {}, "locales":[], "timings":[314, 0]
}]

Just before the request was sent, my DOM tree looked like this:


<body scroll="auto" class=" v-generated-body v-ff v-ff17 v-ff170 v-gecko v-win"> <div id="Vaadin-1740289581" class=" v-app v-theme-fupp"><div style="height: 100%; width: 100%;" class="v-ui v-scrollable" tabindex="1"><div class="v-loading-indicator" style="position: absolute; display: none;"></div><div style="position: absolute; height: 100%; width: 100%;" class="v-verticallayout v-layout v-vertical v-widget v-has-width v-has-height"><div style="padding-top: 49px;" class="v-expand"><div style="margin-top: -49px;" class="v-slot"><div style="width: 100%;" class="v-horizontallayout v-layout v-horizontal v-widget v-has-width"><div style="padding-left: 339px;" class="v-expand"><div style="margin-left: -339px;" class="v-slot"><div class="v-menubar v-widget" tabindex="0"><span class="v-menubar-menuitem"><span class="v-menubar-submenu-indicator">?</span><span class="v-menubar-menuitem-caption">Datei</span></span><span class="v-menubar-menuitem"><span class="v-menubar-submenu-indicator">?</span><span class="v-menubar-menuitem-caption">Sprache</span></span></div></div><div style="width: 100%;" class="v-slot"><div style="width: 100%;" class="v-label v-widget v-has-width"></div></div><div class="v-slot"><div style="width: 100%;" class="v-label v-widget v-has-width">spl (Plaß Stefanie) / TA (Tagesanzeiger)</div></div></div></div></div><div class="v-slot"><div class="v-horizontallayout v-layout v-horizontal v-widget"><div class="v-slot"><div aria-pressed="false" class="v-button v-widget" role="button" tabindex="0"><span class="v-button-wrap"><img src="http://localhost:9090/Vaadin/APP/connector/0/7/icon/view.png" class="v-icon" alt=""><span class="v-button-caption"></span></span></div></div><div class="v-slot"><div class="v-button v-disabled v-widget" role="button" tabindex="-1"><span class="v-button-wrap"><img src="http://localhost:9090/Vaadin/APP/connector/0/8/icon/disk_blue.png" class="v-icon" alt=""><span class="v-button-caption"></span></span></div></div></div></div><div style="height: 100%;" class="v-slot"><div style="width: 100%; height: 100%;" class="v-splitpanel-horizontal v-splitpanel-horizontal v-widget v-has-width v-has-height"><div style="position: relative; width: 100%; height: 100%;"><div class="v-splitpanel-second-container v-scrollable" style="position: absolute; height: 100%; width: 1364px; left: 307px;"><div style="overflow: hidden; width: 100%; padding-top: 1px; padding-bottom: 1px;" class="CustomerMainDataEditPanel v-widget v-has-width"><div style="margin-top: -1px;" class="v-panel-captionwrap"><div class="v-panel-nocaption"><span></span></div></div><div style="position: relative;" tabindex="-1" class="v-panel-content v-scrollable"><div style="width: 508px; height: 553px;" class="v-gridlayout v-layout v-widget"><div class="v-gridlayout-spacing-on" style="position: absolute;"></div><div style="left: 0px; top: 0px;" class="v-gridlayout-slot"><div style="overflow: hidden; padding-top: 1px; padding-bottom: 1px;" class="MailAddressEditPanel v-widget"><div style="margin-top: -1px;" class="v-panel-captionwrap"><div class="v-panel-nocaption"><span></span></div></div><div style="position: relative;" tabindex="-1" class="v-panel-content v-scrollable"><div style="width: 500px; height: 544px;" class="v-gridlayout v-layout v-widget v-has-width"><div class="v-gridlayout-spacing-on" style="position: absolute;"></div><div style="width: 204px; left: 0px; padding-top: 16px; top: 0px;" class="v-gridlayout-slot"><div style="position: absolute; top: 0px; left: 0px;" class="v-caption"><div class="v-captiontext">Name</div></div><div style="width: 100%;" class="v-label v-widget v-has-width"></div></div><div style="width: 204px; left: 0px; top: 23px;" class="v-gridlayout-slot"><div style="width: 100%;" class="v-filterselect v-widget v-has-width"><input style="width: 100%;" class="v-filterselect-input" type="text"><div class="v-filterselect-button"></div></div></div><div style="width: 92px; left: 211px; top: 23px;" class="v-gridlayout-slot"><div style="width: 100%;" class="v-filterselect v-widget v-has-width"><input style="width: 100%;" class="v-filterselect-input" type="text"><div class="v-filterselect-button"></div></div></div><div style="width: 303px; left: 0px; top: 54px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 190px; left: 310px; top: 54px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 85px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-textfield-required v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 116px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 147px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width v-textfield-prompt" type="text"></div><div style="width: 500px; left: 0px; top: 178px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="left: 0px; padding-top: 16px; top: 209px;" class="v-gridlayout-slot"><div style="position: absolute; top: 0px; left: 0px;" class="v-caption"><div class="v-captiontext">Adresse</div></div><div class="v-select-optiongroup v-widget"><span class="v-radiobutton v-select-option"><input checked="" tabindex="0" id="gwt-uid-1" value="on" name="48" type="radio"><label for="gwt-uid-1">Zustelladresse</label></span><span class="v-radiobutton v-select-option"><input tabindex="0" id="gwt-uid-2" value="on" name="48" type="radio"><label for="gwt-uid-2">Postfach</label></span><span class="v-radiobutton v-select-option"><input tabindex="0" id="gwt-uid-3" value="on" name="48" type="radio"><label for="gwt-uid-3">Großempfänger</label></span></div></div><div style="width: 303px; left: 0px; top: 300px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 92px; left: 310px; top: 300px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 91px; left: 409px; top: 300px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 204px; left: 0px; top: 331px;" class="v-gridlayout-slot"><div style="width: 100%;" class="v-filterselect v-widget v-has-width"><input style="width: 100%;" class="v-filterselect-input" type="text"><div class="v-filterselect-button"></div></div></div><div style="width: 92px; left: 211px; top: 331px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 190px; left: 310px; top: 331px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 303px; left: 0px; top: 362px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 190px; left: 310px; top: 362px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 393px;" class="v-gridlayout-slot"><div style="overflow: hidden; width: 100%; padding-top: 0px; padding-bottom: 0px;" class="PopupDatePanel v-widget light v-panel-light v-has-width"><div style="margin-top: 0px;" class="v-panel-captionwrap"><div class="v-panel-nocaption v-panel-nocaption-light"><span></span></div></div><div style="position: relative;" tabindex="-1" class="v-panel-content v-panel-content-light v-scrollable"><div class="v-horizontallayout v-layout v-horizontal v-widget"><div class="v-slot"><div class="v-widget v-has-caption v-caption-on-top"><div class="v-caption"><span class="v-captiontext">Gültig von:</span></div><div style="width: 150px;" class="v-datefield v-datefield-popupcalendar v-widget v-has-width v-datefield-day"><input class="v-textfield v-datefield-textfield" type="text"><button tabindex="-2" class="v-datefield-button" type="button"></button></div></div></div><div class="v-spacing"></div><div class="v-slot"><div class="v-widget v-has-caption v-caption-on-top"><div class="v-caption"><span class="v-captiontext">Gültig bis:</span></div><div style="width: 150px;" class="v-datefield v-datefield-popupcalendar v-widget v-has-width v-datefield-day"><input class="v-textfield v-datefield-textfield" type="text"><button tabindex="-2" class="v-datefield-button" type="button"></button></div></div></div></div></div><div style="margin-bottom: 0px;" class="v-panel-deco v-panel-deco-light"></div></div></div><div style="width: 500px; left: 0px; top: 439px;" class="v-gridlayout-slot"><textarea style="width: 100%;" tabindex="0" rows="5" class="v-textarea v-widget v-has-width"></textarea></div></div></div><div style="margin-bottom: -1px;" class="v-panel-deco"></div></div></div></div></div><div style="margin-bottom: -1px;" class="v-panel-deco"></div></div></div><div style="height: 100%; width: 300px;" class="v-splitpanel-first-container v-scrollable"><div class="v-tree v-widget" tabindex="-1"><div><div class="v-tree-node v-tree-node-expanded v-tree-node-root"><div class="v-tree-node-caption"><div><span>Kunden</span></div></div><div aria-hidden="false" class="v-tree-node-children v-tree-node-children-root"><div class="v-tree-node v-tree-node-expanded v-tree-node-last"><div class="v-tree-node-caption"><div><span>Plaß, Stefan von die, Informatikbüro Plaß &amp; Töchter</span></div></div><div aria-hidden="false" class="v-tree-node-children v-tree-node-children-last"><div class="v-tree-node v-tree-node-last"><div class="v-tree-node-caption v-tree-node-selected v-tree-node-focused"><div><span>Stammdaten</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-last"></div></div></div></div></div></div><div class="v-tree-node v-tree-node-root"><div class="v-tree-node-caption"><div><span>Reports</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root"></div></div><div class="v-tree-node v-tree-node-root"><div class="v-tree-node-caption"><div><span>Workflow</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root"></div></div><div class="v-tree-node v-tree-node-root"><div class="v-tree-node-caption"><div><span>CRM</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root"></div></div><div class="v-tree-node v-tree-node-root v-tree-node-last"><div class="v-tree-node-caption"><div><span>Listen</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root v-tree-node-children-last"></div></div></div><div tabindex="0" style="position: fixed; top: 0px; left: 0px;"></div></div></div><div class="v-splitpanel-hsplitter" style="position: absolute; height: 100%; top: 0px; left: 300px;"><div></div></div></div></div></div></div></div></div></div> <iframe tabindex="-1" id="__gwt_historyFrame" style="position:absolute;width:0;height:0;border:0;overflow:hidden" src="javascript:false"></iframe> <script type="text/javascript" src="./VAADIN/vaadinBootstrap.js"></script> <script type="text/javascript">//<![CDATA[ if (!window.vaadin) alert("Failed to load the bootstrap javascript: ./VAADIN/vaadinBootstrap.js"); vaadin.initApplication("Vaadin-1740289581",{ "authErrMsg": { "caption": "Authentication problem", "message": "Take note of any unsaved data, and <u>click here<\/u> to continue." }, "comErrMsg": { "caption": "Communication problem", "message": "Take note of any unsaved data, and <u>click here<\/u> to continue." }, "debug": true, "heartbeatInterval": 10, "serviceUrl": ".", "standalone": true, "theme": "fupp", "vaadinDir": "./VAADIN/", "versionInfo": {"vaadinVersion": "9.9.9.INTERNAL-DEBUG-BUILD"}, "widgetset": "com.vaadin.DefaultWidgetSet" }); //]
]></script> <iframe tabindex="-1" style="position: absolute; width: 0px; height: 0px; border: medium none; left: -1000px; top: -1000px;" id="com.vaadin.DefaultWidgetSet" src="javascript:&quot;&quot;"></iframe><div style="" class=" v-app v-theme-fupp" id="Vaadin-1740289581-overlays"></div></body>

After the client side ClassCastException it has been changed to:


<body scroll="auto" class=" v-generated-body v-ff v-ff17 v-ff170 v-gecko v-win"> <div id="Vaadin-1740289581" class=" v-app v-theme-fupp"><div style="height: 100%; width: 100%;" class="v-ui v-scrollable" tabindex="1"><div class="v-loading-indicator" style="position: absolute; display: none;"></div><div style="position: absolute; height: 100%; width: 100%;" class="v-verticallayout v-layout v-vertical v-widget v-has-width v-has-height"><div style="padding-top: 49px;" class="v-expand"><div style="margin-top: -49px;" class="v-slot"><div style="width: 100%;" class="v-horizontallayout v-layout v-horizontal v-widget v-has-width"><div style="padding-left: 339px;" class="v-expand"><div style="margin-left: -339px;" class="v-slot"><div class="v-menubar v-widget" tabindex="0"><span class="v-menubar-menuitem"><span class="v-menubar-submenu-indicator">?</span><span class="v-menubar-menuitem-caption">Datei</span></span><span class="v-menubar-menuitem"><span class="v-menubar-submenu-indicator">?</span><span class="v-menubar-menuitem-caption">Sprache</span></span></div></div><div style="width: 100%;" class="v-slot"><div style="width: 100%;" class="v-label v-widget v-has-width"></div></div><div class="v-slot"><div style="width: 100%;" class="v-label v-widget v-has-width">spl (Plaß Stefanie) / TA (Tagesanzeiger)</div></div></div></div></div><div class="v-slot"><div class="v-horizontallayout v-layout v-horizontal v-widget"><div class="v-slot"><div aria-pressed="false" class="v-button v-widget" role="button" tabindex="0"><span class="v-button-wrap"><img src="http://localhost:9090/Vaadin/APP/connector/0/7/icon/view.png" class="v-icon" alt=""><span class="v-button-caption"></span></span></div></div><div class="v-slot"><div aria-pressed="false" class="v-button v-widget" role="button" tabindex="0"><span class="v-button-wrap"><img src="http://localhost:9090/Vaadin/APP/connector/0/8/icon/disk_blue.png" class="v-icon" alt=""><span class="v-button-caption"></span></span></div></div></div></div><div style="height: 100%;" class="v-slot"><div style="width: 100%; height: 100%;" class="v-splitpanel-horizontal v-splitpanel-horizontal v-widget v-has-width v-has-height"><div style="position: relative; width: 100%; height: 100%;"><div class="v-splitpanel-second-container v-scrollable" style="position: absolute; height: 100%; width: 1364px; left: 307px;"><div style="overflow: hidden; width: 100%; padding-top: 1px; padding-bottom: 1px;" class="CustomerMainDataEditPanel v-widget v-has-width"><div style="margin-top: -1px;" class="v-panel-captionwrap"><div class="v-panel-nocaption"><span></span></div></div><div style="position: relative;" tabindex="-1" class="v-panel-content v-scrollable"><div style="width: 508px; height: 553px;" class="v-gridlayout v-layout v-widget"><div class="v-gridlayout-spacing-on" style="position: absolute;"></div><div style="left: 0px; top: 0px;" class="v-gridlayout-slot"><div style="overflow: hidden; padding-top: 1px; padding-bottom: 1px;" class="MailAddressEditPanel v-widget"><div style="margin-top: -1px;" class="v-panel-captionwrap"><div class="v-panel-nocaption"><span></span></div></div><div style="position: relative;" tabindex="-1" class="v-panel-content v-scrollable"><div style="width: 500px; height: 544px;" class="v-gridlayout v-layout v-widget v-has-width"><div class="v-gridlayout-spacing-on" style="position: absolute;"></div><div style="width: 204px; left: 0px; padding-top: 16px; top: 0px;" class="v-gridlayout-slot"><div style="position: absolute; top: 0px; left: 0px;" class="v-caption"><div class="v-captiontext">Name</div></div><div style="width: 100%;" class="v-label v-widget v-has-width"></div></div><div style="width: 204px; left: 0px; top: 23px;" class="v-gridlayout-slot"><div style="width: 100%;" class="v-filterselect v-widget v-has-width"><input style="width: 100%;" class="v-filterselect-input" type="text"><div class="v-filterselect-button"></div></div></div><div style="width: 92px; left: 211px; top: 23px;" class="v-gridlayout-slot"><div style="width: 100%;" class="v-filterselect v-widget v-has-width"><input style="width: 100%;" class="v-filterselect-input" type="text"><div class="v-filterselect-button"></div></div></div><div style="width: 303px; left: 0px; top: 54px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 190px; left: 310px; top: 54px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 85px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-textfield-required v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 116px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 147px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width v-textfield-prompt" type="text"></div><div style="width: 500px; left: 0px; top: 178px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="left: 0px; padding-top: 16px; top: 209px;" class="v-gridlayout-slot"><div style="position: absolute; top: 0px; left: 0px;" class="v-caption"><div class="v-captiontext">Adresse</div></div><div class="v-select-optiongroup v-widget"><span class="v-radiobutton v-select-option"><input checked="" tabindex="0" id="gwt-uid-1" value="on" name="48" type="radio"><label for="gwt-uid-1">Zustelladresse</label></span><span class="v-radiobutton v-select-option"><input tabindex="0" id="gwt-uid-2" value="on" name="48" type="radio"><label for="gwt-uid-2">Postfach</label></span><span class="v-radiobutton v-select-option"><input tabindex="0" id="gwt-uid-3" value="on" name="48" type="radio"><label for="gwt-uid-3">Großempfänger</label></span></div></div><div style="width: 303px; left: 0px; top: 300px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 92px; left: 310px; top: 300px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 91px; left: 409px; top: 300px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 204px; left: 0px; top: 331px;" class="v-gridlayout-slot"><div style="width: 100%;" class="v-filterselect v-widget v-has-width"><input style="width: 100%;" class="v-filterselect-input" type="text"><div class="v-filterselect-button"></div></div></div><div style="width: 92px; left: 211px; top: 331px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 190px; left: 310px; top: 331px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 303px; left: 0px; top: 362px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 190px; left: 310px; top: 362px;" class="v-gridlayout-slot"><input style="width: 100%;" tabindex="0" class="v-textfield v-widget v-has-width" type="text"></div><div style="width: 500px; left: 0px; top: 393px;" class="v-gridlayout-slot"><div style="overflow: hidden; width: 100%; padding-top: 0px; padding-bottom: 0px;" class="PopupDatePanel v-widget light v-panel-light v-has-width"><div style="margin-top: 0px;" class="v-panel-captionwrap"><div class="v-panel-nocaption v-panel-nocaption-light"><span></span></div></div><div style="position: relative;" tabindex="-1" class="v-panel-content v-panel-content-light v-scrollable"><div class="v-horizontallayout v-layout v-horizontal v-widget"><div class="v-slot"><div class="v-widget v-has-caption v-caption-on-top"><div class="v-caption"><span class="v-captiontext">Gültig von:</span></div><div style="width: 150px;" class="v-datefield v-datefield-popupcalendar v-widget v-has-width v-datefield-day"><input class="v-textfield v-datefield-textfield" type="text"><button tabindex="-2" class="v-datefield-button" type="button"></button></div></div></div><div class="v-spacing"></div><div class="v-slot"><div class="v-widget v-has-caption v-caption-on-top"><div class="v-caption"><span class="v-captiontext">Gültig bis:</span></div><div style="width: 150px;" class="v-datefield v-datefield-popupcalendar v-widget v-has-width v-datefield-day"><input class="v-textfield v-datefield-textfield" type="text"><button tabindex="-2" class="v-datefield-button" type="button"></button></div></div></div></div></div><div style="margin-bottom: 0px;" class="v-panel-deco v-panel-deco-light"></div></div></div><div style="width: 500px; left: 0px; top: 439px;" class="v-gridlayout-slot"><textarea style="width: 100%;" tabindex="0" rows="5" class="v-textarea v-widget v-has-width"></textarea></div></div></div><div style="margin-bottom: -1px;" class="v-panel-deco"></div></div></div></div></div><div style="margin-bottom: -1px;" class="v-panel-deco"></div></div></div><div style="height: 100%; width: 300px;" class="v-splitpanel-first-container v-scrollable"><div class="v-tree v-widget" tabindex="-1"><div><div class="v-tree-node v-tree-node-expanded v-tree-node-root"><div class="v-tree-node-caption"><div><span>Kunden</span></div></div><div aria-hidden="false" class="v-tree-node-children v-tree-node-children-root"><div class="v-tree-node v-tree-node-expanded v-tree-node-last"><div class="v-tree-node-caption"><div><span>Plaß, Stefan von die, Informatikbüro Plaß &amp; Töchter</span></div></div><div aria-hidden="false" class="v-tree-node-children v-tree-node-children-last"><div class="v-tree-node v-tree-node-last"><div class="v-tree-node-caption v-tree-node-selected v-tree-node-focused"><div><span>Stammdaten</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-last"></div></div></div></div></div></div><div class="v-tree-node v-tree-node-root"><div class="v-tree-node-caption"><div><span>Reports</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root"></div></div><div class="v-tree-node v-tree-node-root"><div class="v-tree-node-caption"><div><span>Workflow</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root"></div></div><div class="v-tree-node v-tree-node-root"><div class="v-tree-node-caption"><div><span>CRM</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root"></div></div><div class="v-tree-node v-tree-node-root v-tree-node-last"><div class="v-tree-node-caption"><div><span>Listen</span></div></div><div aria-hidden="true" style="display: none;" class="v-tree-node-children v-tree-node-children-root v-tree-node-children-last"></div></div></div><div tabindex="0" style="position: fixed; top: 0px; left: 0px;"></div></div></div><div class="v-splitpanel-hsplitter" style="position: absolute; height: 100%; top: 0px; left: 300px;"><div></div></div></div></div></div></div></div></div></div> <iframe tabindex="-1" id="__gwt_historyFrame" style="position:absolute;width:0;height:0;border:0;overflow:hidden" src="javascript:false"></iframe> <script type="text/javascript" src="./VAADIN/vaadinBootstrap.js"></script> <script type="text/javascript">//<![CDATA[ if (!window.vaadin) alert("Failed to load the bootstrap javascript: ./VAADIN/vaadinBootstrap.js"); vaadin.initApplication("Vaadin-1740289581",{ "authErrMsg": { "caption": "Authentication problem", "message": "Take note of any unsaved data, and <u>click here<\/u> to continue." }, "comErrMsg": { "caption": "Communication problem", "message": "Take note of any unsaved data, and <u>click here<\/u> to continue." }, "debug": true, "heartbeatInterval": 10, "serviceUrl": ".", "standalone": true, "theme": "fupp", "vaadinDir": "./VAADIN/", "versionInfo": {"vaadinVersion": "9.9.9.INTERNAL-DEBUG-BUILD"}, "widgetset": "com.vaadin.DefaultWidgetSet" }); //]
]></script> <iframe tabindex="-1" style="position: absolute; width: 0px; height: 0px; border: medium none; left: -1000px; top: -1000px;" id="com.vaadin.DefaultWidgetSet" src="javascript:&quot;&quot;"></iframe><div style="" class=" v-app v-theme-fupp" id="Vaadin-1740289581-overlays"></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div><div class="v-Notification error v-Notification-error" style="margin-left: 0px; margin-top: 0px; z-index: 20000; opacity: 0.9; position: absolute; overflow: visible; left: 573px; top: 178px;"><div class="popupContent"><div class="gwt-HTML"><h1>Uncaught client side exception</h1><br>ClassCastException</div></div></div></body>

Hope this helps …

Stefan

Johannes,

I´m still trying to reproduce the problem with a small project, but it seems it only occurs with real-live data, can´t figure out what´s the difference.

Will the information in the post above help you find the bug, or do you still need more?

Thanks ,
Stefan

This still occurs in beta10, so I´ve openend ticket
10403
, hoping it might be fixed in the final version.

Stefan