StringIndexOutOfBoundsException opening a modal window

Hi, I’m getting a strange error and it seems not related to our app code, opening a modal window. Any ideas ? Thanks !

Exception:

2021-06-14 19:19:36.833 ERROR [qtp-630145428-6321 - /app/UIDL/?v-uiId=0/app/anonymous] com.haulmont.cuba.web.log.AppLog - Exception in com.haulmont.cuba.web.toolkit.ui.CubaButton: 
com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method click in com.vaadin.shared.ui.button.ButtonServerRpc
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:160) ~[shared/:na]
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119) ~[shared/:na]
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444) [shared/:na]
	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409) [shared/:na]
	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274) [shared/:na]
	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90) [shared/:na]
	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41) [shared/:na]
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435) [shared/:na]
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361) [shared/:na]
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:324) [classes/:na]
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:210) [classes/:na]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [app.jar:na]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) [app.jar:na]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) [app.jar:na]
	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) [shared/:na]
	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) [shared/:na]
	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:107) [classes/:na]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) [app.jar:na]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) [app.jar:na]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [app.jar:na]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [app.jar:na]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [app.jar:na]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [app.jar:na]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [app.jar:na]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [app.jar:na]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [app.jar:na]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [app.jar:na]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [app.jar:na]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [app.jar:na]
	at org.eclipse.jetty.server.Server.handle(Server.java:499) [app.jar:na]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) [app.jar:na]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258) [app.jar:na]
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) [app.jar:na]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [app.jar:na]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [app.jar:na]
	at java.lang.Thread.run(Unknown Source) [na:1.8.0_212]
Caused by: java.lang.reflect.InvocationTargetException: null
	at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_212]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_212]
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158) ~[shared/:na]
	... 35 common frames omitted
Caused by: com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in com.haulmont.cuba.web.WebWindowManager$$Lambda$378/00000000C07A3750 failed.
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:530) ~[shared/:na]
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200) ~[shared/:na]
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163) ~[shared/:na]
	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037) ~[shared/:na]
	at com.vaadin.ui.Button.fireClick(Button.java:377) ~[shared/:na]
	at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:69) ~[classes/:na]
	at com.vaadin.ui.Button$1.click(Button.java:54) ~[shared/:na]
	... 39 common frames omitted
Caused by: java.lang.StringIndexOutOfBoundsException: null
	at java.lang.StringBuilder.delete(Unknown Source) ~[na:1.8.0_212]
	at com.haulmont.cuba.web.controllers.ControllerUtils.getLocationWithoutParams(ControllerUtils.java:60) ~[classes/:na]
	at com.haulmont.cuba.web.controllers.ControllerUtils.getLocationWithoutParams(ControllerUtils.java:48) ~[classes/:na]
	at com.haulmont.cuba.web.exception.ExceptionDialog.forceLogout(ExceptionDialog.java:402) ~[classes/:na]
	at com.haulmont.cuba.web.exception.ExceptionDialog$2.actionPerform(ExceptionDialog.java:377) ~[classes/:na]
	at com.haulmont.cuba.web.WebWindowManager.lambda$showOptionDialog$297bf31$1(WebWindowManager.java:1422) ~[classes/:na]
	at com.haulmont.cuba.web.WebWindowManager$$Lambda$378.00000000C07A3750.buttonClick(Unknown Source) ~[na:na]
	at sun.reflect.GeneratedMethodAccessor402.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_212]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_212]
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510) ~[shared/:na]
	... 45 common frames omitted

Hello!

Could you clarify in more detail how do you get this exception? Steps to reproduce or a small demo project with the reproduced issue would be helpful. Also, what version of CUBA do you use?

Sure Roman, I’m sorry.

CUBA version is 6.10.19. It is very strange because in several PCs it works fine and in others not and I can’t find the pattern yet. I’ll try to make a small project. The exception occurs when calling this method:

{     

Map<String,Object> params=new HashMap<>();     
params.put("originScreen", this);     
AbstractWindow modal=openWindow("substanceType", WindowManager.OpenType.DIALOG.center(),params);  

modal.addCloseListener((String actionId) -> createItem(actionId));   
}

Unfortunately, I cannot reproduce the issue. What operation system and browser do you use? Also, check the deploy/tomcat/conf/app directory maybe some hot-deployed files are not removed?