Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 321794

Summary: ClassCast exception can occur while updating XML model adapted to two EMF models
Product: [WebTools] WTP Source Editing Reporter: Chuck Bridgham <cbridgha>
Component: wst.xmlAssignee: Chuck Bridgham <cbridgha>
Status: RESOLVED FIXED QA Contact: Nitin Dahyabhai <thatnitind>
Severity: normal    
Priority: P3 CC: ccc, david_williams, nsand.dev, thatnitind
Version: 3.0.5Flags: ccc: review+
thatnitind: review+
Target Milestone: 3.0.5 P   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on: 319937    
Bug Blocks:    
Attachments:
Description Flags
patch for 305P none

Description Chuck Bridgham CLA 2010-08-04 16:20:26 EDT
+++ This bug was initially created as a clone of Bug #319937 +++

An adopter product is getting  a class cast exception on a few scenarios where the wrong EMF2DOM Adapter is retrieved..

Exception follows:

!ENTRY org.eclipse.wst.sse.core 4 4 2010-06-17 09:17:44.500
!MESSAGE A structured model client, EMF2DOMSSEAdapter(web-app,WebAppImpl) threw following exception during adapter notification (STRUCTURE_CHANGED )
!STACK 0
java.lang.ClassCastException: org.eclipse.jst.javaee.web.internal.impl. ServletImpl incompatible with org.eclipse.jst.j2ee.webapplication.WebTy pe
    at org.eclipse.jst.j2ee.webapplication.internal. impl.ServletImpl.eSet(ServletImpl.java:49 6)
    at org.eclipse.emf.ecore.impl.BasicEObjectImpl. eSet(BasicEObjectImpl.java:1081)
  ;   at org.eclipse.wst.common.internal.emf.utilities. ExtendedEcoreUtil.eSetOrAdd(ExtendedEcoreUtil. java:79)
    at org.eclipse.wst.common.internal.emf.resource. Translator.setMOFValue(Translator.java:62 0)
    at org.eclipse.wst.common.internal.emf.resource. Translator.setMOFValue(Translator.java:63 5)
    at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.primUpdateMOFFeature(E MF2DOMAdapterImpl.java:1497)
 &nb sp;  at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.updateMOFFeature(EMF2D OMAdapterImpl.java:1840)
  & nbsp; at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.primUpdateMOF(EMF2DOMAdapterImpl. java:993)
    at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.updateMOF(EMF2DOMAdapterImpl. java:973)
    at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.primUpdateMOFMultiFeat ure(EMF2DOMAdapterImpl.java:482)
  ;   at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.primUpdateMOFMultiFeat ure(EMF2DOMAdapterImpl.java:1553)
&nbs p;   at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.updateMOFMultiFeature( EMF2DOMAdapterImpl.java:1767)
 &n bsp;  at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.updateMOFFeature(EMF2D OMAdapterImpl.java:1822)
  & nbsp; at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.primUpdateMOF(EMF2DOMAdapterImpl. java:993)
    at org.eclipse.wst.common.internal.emf.resource. EMF2DOMAdapterImpl.updateMOF(EMF2DOMAdapterImpl. java:973)
    at org.eclipse.wst.xml.core.internal.emf2xml. EMF2DOMSSEAdapter.notifyChanged(EMF2DOMSSEAdapter. java:230)
    at org.eclipse.wst.sse.core.internal.provisional. AbstractNotifier.notify(AbstractNotifier. java:202)
    at org.eclipse.wst.xml.core.internal.document. XMLModelNotifierImpl.notifyStructureChang
Comment 1 Chuck Bridgham CLA 2010-08-04 16:22:16 EDT
Created attachment 175887 [details]
patch for 305P
Comment 2 Carl Anderson CLA 2010-08-04 22:29:11 EDT
I approve of this bug.
Comment 3 Chuck Bridgham CLA 2010-08-05 09:47:32 EDT
Moving over to you Nitin, for approval and checkin
Comment 4 Nitin Dahyabhai CLA 2010-08-09 01:38:07 EDT
Approved, but this business of having more than one object for the same "adapter" type still feels wrong.
Comment 5 Nick Sandonato CLA 2011-06-27 16:45:23 EDT
Code was checked in on 8/6/10.