Cannot call apply() recursively error when editing patients

Description

From a 1.7.1 error report:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 java.lang.IllegalStateException: Cannot call apply() recursively at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.apply(AbstractLayoutStrategy.java:132) at org.openvpms.web.workspace.patient.PatientLayoutStrategy.apply(PatientLayoutStrategy.java:142) at org.openvpms.web.component.im.view.AbstractIMObjectView.createComponent(AbstractIMObjectView.java:213) at org.openvpms.web.component.im.edit.AbstractIMObjectEditor$2.createComponent(AbstractIMObjectEditor.java:675) at org.openvpms.web.component.im.view.AbstractIMObjectView.getComponent(AbstractIMObjectView.java:110) at org.openvpms.web.component.im.edit.AbstractIMObjectEditor.getComponent(AbstractIMObjectEditor.java:435) at org.openvpms.web.workspace.patient.PatientEditor.updateCustomFields(PatientEditor.java:145) at org.openvpms.web.workspace.patient.PatientEditor.speciesChanged(PatientEditor.java:171) at org.openvpms.web.workspace.patient.PatientEditor.access$000(PatientEditor.java:51) at org.openvpms.web.workspace.patient.PatientEditor$1.modified(PatientEditor.java:84) at org.openvpms.web.component.property.ModifiableListeners.notifyListeners(ModifiableListeners.java:92) at org.openvpms.web.component.property.AbstractProperty.refresh(AbstractProperty.java:283) at org.openvpms.web.component.property.IMObjectProperty.modified(IMObjectProperty.java:494) at org.openvpms.web.component.property.IMObjectProperty.setValue(IMObjectProperty.java:125) at org.openvpms.web.component.bound.Binder.setProperty(Binder.java:137) at org.openvpms.web.component.bound.SelectFieldBinder.setProperty(SelectFieldBinder.java:107) at org.openvpms.web.component.bound.Binder.setProperty(Binder.java:93) at org.openvpms.web.component.bound.SelectFieldBinder$1.stateChanged(SelectFieldBinder.java:68) at nextapp.echo2.app.list.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:76) at nextapp.echo2.app.list.DefaultListSelectionModel.clearSelection(DefaultListSelectionModel.java:65) at org.openvpms.web.component.im.lookup.LookupField.setDefaultSelection(LookupField.java:179) at org.openvpms.web.component.im.lookup.BoundLookupField.<init>(BoundLookupField.java:76) at org.openvpms.web.component.im.lookup.BoundLookupField.<init>(BoundLookupField.java:59) at org.openvpms.web.component.im.lookup.BoundLookupField.<init>(BoundLookupField.java:49) at org.openvpms.web.component.im.lookup.LookupFieldFactory.create(LookupFieldFactory.java:86) at org.openvpms.web.component.im.edit.AbstractEditableComponentFactory.createLookupEditor(AbstractEditableComponentFactory.java:190) at org.openvpms.web.component.im.edit.AbstractIMObjectEditor$ComponentFactory.createLookupEditor(AbstractIMObjectEditor.java:918) at org.openvpms.web.component.im.edit.AbstractEditableComponentFactory.create(AbstractEditableComponentFactory.java:112) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.createComponent(AbstractLayoutStrategy.java:508) at org.openvpms.web.workspace.patient.PatientLayoutStrategy.createComponent(PatientLayoutStrategy.java:163) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.createComponentSet(AbstractLayoutStrategy.java:418) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.createGrid(AbstractLayoutStrategy.java:236) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.createGrid(AbstractLayoutStrategy.java:225) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.doSimpleLayout(AbstractLayoutStrategy.java:209) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.doLayout(AbstractLayoutStrategy.java:193) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.doLayout(AbstractLayoutStrategy.java:171) at org.openvpms.web.component.im.layout.AbstractLayoutStrategy.apply(AbstractLayoutStrategy.java:138) at org.openvpms.web.workspace.patient.PatientLayoutStrategy.apply(PatientLayoutStrategy.java:142) at org.openvpms.web.component.im.view.AbstractIMObjectView.createComponent(AbstractIMObjectView.java:213) at org.openvpms.web.component.im.edit.AbstractIMObjectEditor$2.createComponent(AbstractIMObjectEditor.java:675) at org.openvpms.web.component.im.view.AbstractIMObjectView.getComponent(AbstractIMObjectView.java:110) at org.openvpms.web.component.im.edit.AbstractIMObjectEditor.getComponent(AbstractIMObjectEditor.java:435) at org.openvpms.web.workspace.patient.PatientEditor.updateCustomFields(PatientEditor.java:145) at org.openvpms.web.workspace.patient.PatientEditor.<init>(PatientEditor.java:97) at sun.reflect.GeneratedConstructorAccessor433.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.openvpms.web.component.im.edit.IMObjectEditorFactory.create(IMObjectEditorFactory.java:89) at org.openvpms.web.component.im.edit.IMObjectEditorFactory.create(IMObjectEditorFactory.java:60) at org.openvpms.web.component.workspace.AbstractCRUDWindow.createEditor(AbstractCRUDWindow.java:641) at org.openvpms.web.component.workspace.AbstractCRUDWindow.edit(AbstractCRUDWindow.java:562) at org.openvpms.web.component.workspace.AbstractCRUDWindow.edit(AbstractCRUDWindow.java:291) at org.openvpms.web.component.workspace.AbstractCRUDWindow.edit(AbstractCRUDWindow.java:268) at org.openvpms.web.component.workspace.AbstractViewCRUDWindow.edit(AbstractViewCRUDWindow.java:96) at org.openvpms.web.component.workspace.AbstractCRUDWindow$2.onAction(AbstractCRUDWindow.java:455) at org.openvpms.web.echo.event.ActionListener.actionPerformed(ActionListener.java:40) at nextapp.echo2.app.button.AbstractButton.fireActionPerformed(AbstractButton.java:135) at echopointng.ButtonEx$1.actionPerformed(ButtonEx.java:120) at nextapp.echo2.app.button.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:70) at echopointng.model.DefaultButtonModelEx.doAction(DefaultButtonModelEx.java:51) at echopointng.ButtonEx.processInput(ButtonEx.java:202) at nextapp.echo2.app.update.ClientUpdateManager.process(ClientUpdateManager.java:116) at nextapp.echo2.app.update.UpdateManager.processClientUpdates(UpdateManager.java:89) at nextapp.echo2.webcontainer.ContainerSynchronizeService.renderUpdate(ContainerSynchronizeService.java:471) at nextapp.echo2.webrender.service.SynchronizeService.service(SynchronizeService.java:279) at nextapp.echo2.webrender.WebRenderServlet.process(WebRenderServlet.java:273) at org.openvpms.web.echo.servlet.SpringWebContainerServlet.process(SpringWebContainerServlet.java:174) at nextapp.echo2.webrender.WebRenderServlet.doPost(WebRenderServlet.java:189) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source)

Environment

None

Status

Assignee

Tim Anderson

Reporter

Tim Anderson

Labels

None

Fix versions

Affects versions

1.6.2
1.7.1

Priority

Minor