Hi,I have a portlet whose html output varies based on a http header. Here isa description of what I've done, along with the error. It's a bit long, buthopefully it contains all the details required:I have created a subclass (CarouselMultiSelectComponent) ofContentMultiSelectComponent which overrides the createCacheKey method. Ideployed the new component as per the instructions in the "Vignette DynamicPortal Module and Vignette Dynamic Site Module Developer’s Guide"I then cloned the ContentMultiSelectComponent in VCM, naming the cloneCarouselMultiSelectComponent. I changed the Type definition class to my newsubclass, leaving all the other parameters the same.I then registered in Config Console an 'Extension Type Specification' in the'Customer Extension Type Specification Registry' as per the document 'BestPractices - How to use the Content Relator MultiCOE CCE widget'The content that is being selected into this list contains a 'Rich MediaContent Select' item. When viewing the content instance from the context of thenew Carousel Multi Select instance an exception stack is shown, rather than theRich Media Content Select widget. Attached is a screenshot.In addition, the following exception is shown in the VgnVCM1 runtime log. Theexception in the log is thrown when the Carousel Multi Select instance isopened, rather than when switching between content in the list.2012-01-24 08:56:08,690 | DEBUG | fig.component.AppSvcsComponent | Returningcached VMC component [[ACTIVE] ExecuteThread: '12' for queue:'weblogic.kernel.Default (self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | d.widgets.VCMWidgetFactoryImpl | widgetInfonot null [[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default(self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | wcm.widgets.base.WCMBaseWidget | constructedclass=com.vignette.wcm.widgets.wcmrelatormulticoe.WCMContentRelatorMultiCOEWidget[[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | elator.WCMContentRelatorWidget | constructed[[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default(self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | i.common.widgets.RelatorWidget | Could notmarshall widget data to find nested attribute. [[ACTIVE] ExecuteThread: '12'for queue: 'weblogic.kernel.Default (self-tuning)'] []org.xml.sax.SAXException: unable to find FieldDescriptor for 'validationType'in ClassDescriptor of relator2012-01-24 08:56:08,690 | DEBUG | wcm.widgets.base.WCMBaseWidget | constructedclass=com.vignette.wcm.widgets.wcmrelatormulticoe.WCMContentRelatorMultiCOEWidget[[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | elator.WCMContentRelatorWidget | constructed[[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default(self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | i.common.widgets.RelatorWidget | Could notmarshall widget data to find nested attribute. [[ACTIVE] ExecuteThread: '12'for queue: 'weblogic.kernel.Default (self-tuning)'] []org.xml.sax.SAXException: unable to find FieldDescriptor for 'validationType'in ClassDescriptor of relator at com.vignette.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:826) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at com.vignette.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:345) at com.vignette.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:277) at com.vignette.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:398) at com.vignette.as.ui.common.widgets.RelatorWidget.isNested(RelatorWidget.java:385) at com.vignette.as.ui.common.widgets.RelatorWidget.<init>(RelatorWidget.java:143) at com.vignette.wcm.widgets.wcmrelatormulticoe.WCMContentRelatorMultiCOETransformingWidget.<init>(WCMContentRelatorMultiCOETransformingWidget.java:19) at com.vignette.wcm.widgets.wcmrelatormulticoe.WCMContentRelatorMultiCOEWidget.getTransformingWidget(WCMContentRelatorMultiCOEWidget.java:108) at com.vignette.as.ui.cm.ctm.shared.widgets.VCMWidgetMgr.createTransformingWidgets(VCMWidgetMgr.java:209) at com.vignette.as.ui.cm.ctm.shared.widgets.VCMWidgetBuilder.newTransformingWidgets(VCMWidgetBuilder.java:64) at com.vignette.as.ui.common.widgets.WidgetFactory.createWidgets(WidgetFactory.java:50) at com.vignette.as.ui.cm.coe.struts.logic.ObjectEditorLogic.buildWidgets(ObjectEditorLogic.java:73) at com.vignette.as.ui.cm.coe.struts.form.ObjectEditorSheet.setContentObjectsInPage(ObjectEditorSheet.java:402) at com.vignette.as.ui.cm.coe.struts.form.ObjectEditorSheet.doLoad(ObjectEditorSheet.java:137) at com.vignette.as.ui.common.property.PropertyPageAction.loadSheets(PropertyPageAction.java:722) at com.vignette.as.ui.common.property.PropertyPageAction.doPerform(PropertyPageAction.java:277) at com.vignette.as.ui.common.action.VgnAction.perform(VgnAction.java:126) at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1787) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3395) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Unknown Source) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)2012-01-24 08:56:08,690 | DEBUG | d.widgets.VCMWidgetFactoryImpl | widgetInfonot null [[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default(self-tuning)'] []2012-01-24 08:56:08,690 | DEBUG | d.widgets.VCMWidgetFactoryImpl | widgetInfonot null [[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default(self-tuning)'] []Changing the type definition class back to ContentMultiSelectComponent makesthe problem go away. However, I require the cache key to depend on some httpheaders.What am I missing?Thanks,Phil