Slow row selection in the InfoWindow with Related Tabs
Description
Environment
None
Activity
Show:
Murilo Habermann Torquato May 9, 2020 at 9:15 PM
If we try to do the suggested code modification on actual version 7.1z we have a NPE:
18:08:32.756===========> UiEngineImpl.error: [230]
java.lang.NullPointerException
at org.adempiere.webui.info.InfoWindow$1.onEvent(InfoWindow.java:234)
at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:3177)
at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3147)
at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:3089)
at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:138)
at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1846)
at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1618)
at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1321)
at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:611)
at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:487)
at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:495)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:859)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:214)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
BTW i think that this ticket should be kept open because both @Hiep Lq and @Heng Sin Low suggestions are good and avoid an unwanted load on big databases instances when users wants just to check values from the main info.
Hiep Lq November 25, 2017 at 10:18 AM
maybe use collapse status to auto or manual. in case use collapse detail tab don't query it and in case expand then query for active tab, when active other tab then query for this tab.
Heng Sin Low November 25, 2017 at 12:01 AM
I think we should consider making the retrieval of related details as manual instead of auto. A lot of time, user is just searching for record and not interested at the related details.
Details
Details
Assignee
Unassigned
UnassignedReporter
Nikita Polkovnikov
Nikita PolkovnikovLabels
Affects versions
Priority
Created November 24, 2017 at 1:30 PM
Updated May 9, 2020 at 9:16 PM
Each row selection in InfoWindow executes a query for all Related Tabs.
I suggest making a query only if 1 row is selected in InfoWindow.
It is necessary to replace the following lines in class InfoWIndow (line 185):
replace
contentPanel.addActionListener(new EventListener<Event>() { public void onEvent(Event event) throws Exception { updateSubcontent(); } });
on
contentPanel.addActionListener(new EventListener<Event>() { public void onEvent(Event event) throws Exception { int selectedRecords = getSelectedRowInfo().size(); if (selectedRecords <= 1) updateSubcontent(); embeddedPane.getParent().setVisible(selectedRecords <= 1); } });
Sponsor www.palichmos.ru