OpenNTF / org.openntf.domino

Open replacement for lotus.domino package in HCL Domino
Apache License 2.0
65 stars 34 forks source link

Get a ClassCastException error (Vector incompatible with lotus.domino.local.NotesBase) when using "Name Picker" control (and ODA is loaded) #174

Closed slapraik-intec closed 3 years ago

slapraik-intec commented 3 years ago

Domino server version 11.0.1 FP2

Domino Designer version 11.0.1 FP2

ODA version 11.0.0

Issue Details We are using the "Name Picker" control from the standard Extension Library that comes with Notes/Domino 11.0.1.

`<xe:djextNameTextBox value="#{doc.fieldName}" id="djextNameTextBox1" multipleSeparator=";"> </xe:djextNameTextBox> <xe:namePicker id="namePicker1" for="djextNameTextBox1">

` The local "database" has the applicable views from a standard address book, and a cut-down version of the "person" form. The set-up works when using the combination of Domino 9.0.1FP10 and ODA 4.4.0. However, when using Domino 11.0.1 FP2 with ODA 11.0.0 loaded, it fails and we get the following error in the Domino server console. `HTTP JVM: java.lang.ClassCastException: java.util.Vector incompatible with lotus.domino.local.NotesBase` If we use the same XPage without ODA loaded on the Domino server, it works fine. We have also tried other versions of ODA: - 10.0.1 results in the same issue - 4.4.0 results in a server crash **Steps to reproduce** Load XPage in a browser. Type a name into the search area and either press [enter] or click on the search action icon.
jesse-gallagher commented 3 years ago

Does the server emit more of the stack trace, either on the console or in error-log-*.xml in data/IBM_TECHNICAL_SUPPORT?

slapraik-intec commented 3 years ago

Hi Jesse.

There is no more information reported in either the server console or the workspace logs.

I did however find the following in the xpages* file in IBM_TECHNICAL_SUPPORT...

01/02/21 14:28: Exception Thrown Context Path: /dev/NamePickerCrash.nsf Page Name: /Test.xsp java.lang.ClassCastException: java.util.Vector incompatible with lotus.domino.local.NotesBase at lotus.domino.local.NotesBase.validateObjArg(Unknown Source) at lotus.domino.local.View.createViewNavFrom(Unknown Source) at org.openntf.domino.impl.View.createViewNavFrom(View.java:700) at com.ibm.domino.napi.c.BackendBridge.getViewEntryByKeyWithOptions(Native Method) at com.ibm.xsp.model.domino.DominoUtils.getViewEntryByKeyWithOptions(DominoUtils.java:1023) at com.ibm.xsp.extlib.component.picker.data.AbstractDominoViewPickerData.readEntries(AbstractDominoViewPickerData.java:238) at com.ibm.xsp.extlib.component.picker.data.NamePickerAggregatorData.readEntries(NamePickerAggregatorData.java:147) at com.ibm.xsp.extlib.services.rest.picker.RestValuePickerService.renderServiceJSONGet(RestValuePickerService.java:180) at com.ibm.xsp.extlib.services.rest.picker.RestValuePickerService.renderService(RestValuePickerService.java:55) at com.ibm.domino.services.HttpServiceEngine.processRequest(HttpServiceEngine.java:168) at com.ibm.xsp.extlib.component.rest.UIBaseRestService._processAjaxRequest(UIBaseRestService.java:257) at com.ibm.xsp.extlib.component.rest.UIBaseRestService.processAjaxRequest(UIBaseRestService.java:234) at com.ibm.xsp.util.AjaxUtilEx$1.invokeContextCallback(AjaxUtilEx.java:204) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:862) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878) at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878) at com.ibm.xsp.component.UIViewRootEx.invokeOnComponent(UIViewRootEx.java:1686) at com.ibm.xsp.util.AjaxUtilEx.renderAjaxPartialLifecycle(AjaxUtilEx.java:197) at com.ibm.xsp.webapp.FacesServletEx.renderAjaxPartial(FacesServletEx.java:257) at com.ibm.xsp.webapp.FacesServletEx.serviceAjaxPartialView(FacesServletEx.java:208) at com.ibm.xsp.webapp.FacesServletEx.serviceAjaxPartialViewSync(FacesServletEx.java:176) at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:155) at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:163) at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138) at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103) at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:600) at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1352) at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:877) at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:820) at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:589) at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1336) at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662) at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482) at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357) at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313) at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)

Hopefully this helps :-)

Regards. Simon

jesse-gallagher commented 3 years ago

Could you try this build and let me know if it works better for you?

org.openntf.domino.updatesite-11.0.1-SNAPSHOT.zip

slapraik-intec commented 3 years ago

Hi Jesse.

I have tested the snapshot against the specific issue and it now appears to be working.

I will try and test it against the full application later tonight and let you know if I hit any issues.

Are there any other fixes/changes/enhancements in the snapshot? Knowing this could help focus my testing.

Many thanks. Simon

jesse-gallagher commented 3 years ago

Since the 11.0.0 release, the changes have been mainly around refactoring (for example, moving graph classes out to a fragment) and some cleanup. In my experience, it works the same way that previous builds do, but I also don't use large swaths of what it could afflict (such as these name pickers).

slapraik-intec commented 3 years ago

Hi Jesse.

I have done some additional testing of the main application (and a local web service that uses ODA) and did not spot any more issues.

Do you know when the next ODA version build will be released?

Thanks for your assistance. Simon

slapraik-intec commented 3 years ago

Hi Jesse.

Quick question. Is it OK for me to deploy the snapshot you provided last week into production (or do I need to wait for the new release)?

Many thanks. Simon

jesse-gallagher commented 3 years ago

It should be. Really, I should get around to making a proper release out of it any time, and, if this fix works for you, that's as good a sign as any that it's stable.