[
https://issues.jboss.org/browse/JBIDE-9790?page=com.atlassian.jira.plugin...
]
Denis Maliarevich commented on JBIDE-9790:
------------------------------------------
It cannot be tested in a stright-forward way.
In general, to verify the issue -- jbds should be used as an open source project, and
someone should create its own templates. And when those templates are not put into
VpeTemplateSafeWrapper -- there should be no ClassCastException.
I'll try to write a junit.
ClassCastException with VpeElementMapping use
---------------------------------------------
Key: JBIDE-9790
URL:
https://issues.jboss.org/browse/JBIDE-9790
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: Visual Page Editor core, Visual Page Editor Templates
Affects Versions: 3.3.0.M3
Reporter: Vitali Yemialyanchyk
Assignee: Denis Maliarevich
Priority: Optional
Fix For: 3.3.0.Beta1
Casting ((VpeTemplateSafeWrapper)elementMapping.getTemplate()) in
VpeVisualDomBuilder.java produces the exception.
Thus "elementMapping.getTemplate()" should return VpeTemplateSafeWrapper type.
-----
VpeElementMapping expected VpeTemplate as one of parameters in constructor, but in
VpeVisualDomBuilder in line function stopToggle (line 940) it cast
elementMapping.getTemplate() to VpeTemplateSafeWrapper, i.e. by default it expect
VpeTemplateSafeWrapper in VpeElementMapping. You should update VpeElementMapping so it
expect VpeTemplateSafeWrapper or wrap VpeTemplate to VpeTemplateSafeWrapper in
VpeElementMapping. Cause we get such exception:
java.lang.ClassCastException: com.hp.dcp.ve.ui.template.JSPCustomTagTemplate cannot be
cast to org.jboss.tools.vpe.editor.template.VpeTemplateSafeWrapper
at
org.jboss.tools.vpe.editor.VpeVisualDomBuilder.stopToggle(VpeVisualDomBuilder.java:940)
at
org.jboss.tools.vpe.editor.VpeController.notifyChangedInUiThread(VpeController.java:730)
at org.jboss.tools.vpe.editor.VpeController$1.runInUIThread(VpeController.java:554)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
of course we can fix it on our side - but you should make your code safe to prevent such
errors.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira