Vaain 8.6.3 Grid addColumn RuntimeException

Hi,

i have update my vaadin project from 8.6.2 (run ok) to 8.6.3 (runtime exception). I build a grid and populate it. I need to remove some column and add the new columns after click a button.
The click button load new data, clear data provider and add new elements.

		listDataProvider.getItems().clear();
		listDataProvider.getItems().addAll(List<GridObject>);
		-- call the function that add new column that depend from grid element value
		for(String X : Y.keySet()) {
			Column colorColumn = gridGiorni.addColumn(new ValueProvider<GridObject, String>(){
				@Override
				public String apply(GridObject arg0) {
					...code
					return "";
				}}, new HtmlRenderer());
		}

The error attach on this thread contains the Exception message.

Below post the stack trace.

java.lang.RuntimeException: Component must be attached to a session when getConnectorId() is called for the first time

09:12:34,046 ERROR [stderr]
(default task-103) at com.vaadin.server.AbstractClientConnector.getConnectorId(AbstractClientConnector.java:444)

09:12:34,046 ERROR [stderr]
(default task-103) at com.vaadin.ui.Grid$Column$1.generateData(Grid.java:869)

09:12:34,046 ERROR [stderr]
(default task-103) at com.vaadin.data.provider.DataCommunicator.getDataObject(DataCommunicator.java:480)

09:12:34,047 ERROR [stderr]
(default task-103) at com.vaadin.data.provider.DataCommunicator.pushData(DataCommunicator.java:460)

09:12:34,047 ERROR [stderr]
(default task-103) at com.vaadin.data.provider.DataCommunicator.sendDataToClient(DataCommunicator.java:382)

09:12:34,047 ERROR [stderr]
(default task-103) at com.vaadin.data.provider.DataCommunicator.beforeClientResponse(DataCommunicator.java:338)

09:12:34,047 ERROR [stderr]
(default task-103) at com.vaadin.data.provider.DataCommunicator.reset(DataCommunicator.java:533)

09:12:34,047 ERROR [stderr]
(default task-103) at com.vaadin.data.provider.DataCommunicator.addDataGenerator(DataCommunicator.java:421)

09:12:34,048 ERROR [stderr]
(default task-103) at com.vaadin.ui.AbstractListing.addDataGenerator(AbstractListing.java:249)

09:12:34,048 ERROR [stderr]
(default task-103) at com.vaadin.ui.Grid.addColumn(Grid.java:2877)

09:12:34,048 ERROR [stderr]
(default task-103) at com.vaadin.ui.Grid.addColumn(Grid.java:2820)

09:12:34,048 ERROR [stderr]
(default task-103) at com.vaadin.ui.Grid.addColumn(Grid.java:2759)

09:12:34,048 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.disponibilita.VisualizzazioneClassicaLayout.updateGridGiorniWithGroupColor(VisualizzazioneClassicaLayout.java:146)

09:12:34,048 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.disponibilita.VisualizzazioneClassicaLayout.update(VisualizzazioneClassicaLayout.java:339)

09:12:34,049 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.widget.WidgetDisponibilita.trovaDisponibilita(WidgetDisponibilita.java:233)

09:12:34,049 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.views.PrenotazioniLayout$8.onSelectSoluzione(PrenotazioniLayout.java:636)

09:12:34,049 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.widget.WidgetSoluzioniSelezionate.onSelectSoluzione(WidgetSoluzioniSelezionate.java:213)

09:12:34,049 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.widget.WidgetSoluzioniSelezionate$1.onSelect(WidgetSoluzioniSelezionate.java:140)

09:12:34,049 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.soluzioni.SoluzioneComponent.onSelect(SoluzioneComponent.java:165)

09:12:34,049 ERROR [stderr]
(default task-103) at it.multimedia.frontend.v8.app.preno.soluzioni.SoluzioneComponent$1.layoutClick(SoluzioneComponent.java:98)

09:12:34,050 ERROR [stderr]
(default task-103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

09:12:34,050 ERROR [stderr]
(default task-103) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

09:12:34,050 ERROR [stderr]
(default task-103) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

09:12:34,050 ERROR [stderr]
(default task-103) at java.lang.reflect.Method.invoke(Method.java:498)

09:12:34,050 ERROR [stderr]
(default task-103) at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:499)

09:12:34,050 ERROR [stderr]
(default task-103) at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:273)

09:12:34,051 ERROR [stderr]
(default task-103) at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:237)

09:12:34,051 ERROR [stderr]
(default task-103) at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1014)

09:12:34,051 ERROR [stderr]
(default task-103) at com.vaadin.ui.AbstractOrderedLayout.lambda$new$703cbfd7$1(AbstractOrderedLayout.java:50)

09:12:34,051 ERROR [stderr]
(default task-103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

09:12:34,051 ERROR [stderr]
(default task-103) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

09:12:34,052 ERROR [stderr]
(default task-103) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

09:12:34,052 ERROR [stderr]
(default task-103) at java.lang.reflect.Method.invoke(Method.java:498)
09:12:34,052 ERROR [stderr]
(default task-103) at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:155)

09:12:34,052 ERROR [stderr]
(default task-103) at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:116)

09:12:34,052 ERROR [stderr]
(default task-103) at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:445)

09:12:34,053 ERROR [stderr]
(default task-103) at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:410)

09:12:34,053 ERROR [stderr]
(default task-103) at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)

09:12:34,053 ERROR [stderr]
(default task-103) at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)

09:12:34,053 ERROR [stderr]
(default task-103) at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)

09:12:34,053 ERROR [stderr]
(default task-103) at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1601)

09:12:34,054 ERROR [stderr]
(default task-103) at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:445)

09:12:34,054 ERROR [stderr]
(default task-103) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

09:12:34,054 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)

09:12:34,054 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)

09:12:34,054 ERROR [stderr]
(default task-103) at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:130)

09:12:34,055 ERROR [stderr]
(default task-103) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

09:12:34,055 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)

09:12:34,055 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)

09:12:34,055 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)

09:12:34,055 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

09:12:34,055 ERROR [stderr]
(default task-103) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

09:12:34,055 ERROR [stderr]
(default task-103) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

09:12:34,056 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

09:12:34,056 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)

09:12:34,056 ERROR [stderr]
(default task-103) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

09:12:34,056 ERROR [stderr]
(default task-103) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)

09:12:34,056 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)

09:12:34,057 ERROR [stderr]
(default task-103) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)

09:12:34,057 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)

09:12:34,057 ERROR [stderr]
(default task-103) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)

09:12:34,057 ERROR [stderr]
(default task-103) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)

09:12:34,057 ERROR [stderr]
(default task-103) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

09:12:34,057 ERROR [stderr]
(default task-103) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

09:12:34,058 ERROR [stderr]
(default task-103) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

09:12:34,058 ERROR [stderr]
(default task-103) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

09:12:34,058 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)

09:12:34,058 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)

09:12:34,058 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)

09:12:34,059 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)

09:12:34,060 ERROR [stderr]
(default task-103) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)

09:12:34,060 ERROR [stderr]
(default task-103) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)

09:12:34,060 ERROR [stderr]
(default task-103) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)

09:12:34,060 ERROR [stderr]
(default task-103) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

09:12:34,060 ERROR [stderr]
(default task-103) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

09:12:34,060 ERROR [stderr]
(default task-103) at java.lang.Thread.run(Thread.java:748)

this is my code error or a Vaadin Bug? How to resolve it? Do you have any ideas?

Best regard

Michele

17456064.png

The first question that pops into my mind is that have you recompiled the widgetset?

I recompiled the widgetset but I still have the error.
I try to create a simple project with only one grid and to replicate a similar code and execute it.

The code works correctly. Following the code. I don’t understand because my product code don’t work.

    final Grid<Person> gridPerson = new Grid<Person>(Person.class);
    List<Person> persons = new ArrayList<Person>();
    Person p1 = new Person("michele","malgaretto");
    Person p2 = new Person("mario","rossi");
    persons.add(p1);
    persons.add(p2);
    gridPerson.setItems(persons);
    
    ListDataProvider<Person> listDataProvider = (ListDataProvider<Person>) gridPerson.getDataProvider();

    List<Column> columnsAdded = new ArrayList<Column>();
    Button button = new Button("Click Me");
    button.addClickListener(e -> {
		listDataProvider.getItems().clear();
		Person p3 = new Person("n1","n1");
		Person p4 = new Person("n2","n2");
		List<Person> p = new ArrayList<Person>();
		p.add(p3);
		p.add(p4);
		listDataProvider.getItems().addAll(p);
    	if (!columnsAdded.isEmpty()) {
    		for(Column c : columnsAdded) {
    			gridPerson.removeColumn(c);
    		}
    	}
    	columnsAdded.clear();
        for(int i=0;i<5;i++) {
        	Column addColumn = gridPerson.addColumn(new ValueProvider<Person,String>(){

				@Override
				public String apply(Person source) {
					return String.valueOf("A");
				}
        		
        	});
        	columnsAdded.add(addColumn);
        }
    });
    
    gridPerson.getDataProvider().refreshAll();

Thanks

Michele

Hi,

I have same problem and I found this thread when looking for solution…

  Grid.Column<ParameterItem, ParameterComponent> addedColumn = treeGrid
                    .addComponentColumn(item -> item.getComponent(id)).setId(id).setSortable(false).setWidth(COL_WIDTH);

will cause problems with 8.6.3 and newer Vaadin (used to work with 8.6.2) and widgetset is compiled.

Exception is same:
java.lang.RuntimeException: Component must be attached to a session when getConnectorId() is called for the first time

I cant share code (under NDA) but wanted to share that we have similar issue…

-ari

Good Morning,
Was there any traction on this? We’re using version 8.8.2 and still running into this. It’s happening frequently, but not consistently.

Exception:
java.lang.RuntimeException: Component must be attached to a session when getConnectorId() is called for the first time

Code:

tblComponents.removeAllColumns();
      Binder<ItemComponentNode> binder = tblComponents.getEditor().getBinder();
      tblComponents.getEditor().setEnabled(true);
      tblComponents.addComponentColumn(this::createLabelButton)
            .setCaption("Item Nbr")
            .setWidth(200)
            .setEditorBinding(binder
                  .forField(new CelTextField())
                  .bind("itemNbr")
            )
            .setEditable(false);

This is getting thrown on the addComponentColumn method.

Thanks,
-Jeff

Hi Jeffrey, I really do not understand purpose of your code. If you are using Grid’s integrated Editor, you really do not need to use component renderer to set editor components. Rendered components are not used in Editor anyway. So could you clarify what you are actually trying to achieve?

Good Morning Tatu,
Thanks for the quick response. I found out the issue with this. The widgetset Version was 8.8.2 with the Vaadin version at 8.8.0 which was causing some consequences with any grid using the component columns. I added the vaadin-client to my ivy configuration and this is now working consistently.

Thanks,
-Jeff