Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Bug in void org.eclipse.swt.widgets.Table.setSelection(int[] indices)?
Bug in void org.eclipse.swt.widgets.Table.setSelection(int[] indices)? [message #1690535] Sat, 28 March 2015 11:28 Go to next message
Julia Kurde is currently offline Julia KurdeFriend
Messages: 91
Registered: November 2011
Location: Berlin, Germany
Member
Hi,

I just found an inconsistent behavior of this method: void org.eclipse.swt.widgets.Table.setSelection(int[] indices).

The Java doc says that indices that are out of range are ignored. Instead the application runs to an HTTP ERROR: 500 with the following stacktrace:
2015-03-28 12:06:44.537:WARN:oejs.ServletHandler:qtp1386939315-35: ERROR:  /hello;jsessionid=mewv7wcv70bc8d9w5qzm8mgd
java.lang.IllegalArgumentException: Index out of bounds
	at org.eclipse.swt.SWT.error(SWT.java:3648)
	at org.eclipse.swt.SWT.error(SWT.java:3585)
	at org.eclipse.swt.SWT.error(SWT.java:3556)
	at org.eclipse.swt.widgets.Table.getItem(Table.java:696)
	at org.eclipse.swt.internal.widgets.tablekit.TableLCA.getFocusItem(TableLCA.java:242)
	at org.eclipse.swt.internal.widgets.tablekit.TableLCA.access$1(TableLCA.java:237)
	at org.eclipse.swt.internal.widgets.tablekit.TableLCA$1.run(TableLCA.java:177)
	at org.eclipse.swt.internal.widgets.displaykit.DisplayLCA$RenderVisitor.runRenderRunnables(DisplayLCA.java:277)
	at org.eclipse.swt.internal.widgets.displaykit.DisplayLCA$RenderVisitor.doVisit(DisplayLCA.java:256)
	at org.eclipse.swt.internal.widgets.WidgetTreeVisitor$AllWidgetTreeVisitor.visit(WidgetTreeVisitor.java:36)
	at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:67)
	at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.handleItems(WidgetTreeVisitor.java:118)
	at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:56)
	at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.handleChildren(WidgetTreeVisitor.java:127)
	at org.eclipse.swt.internal.widgets.WidgetTreeVisitor.accept(WidgetTreeVisitor.java:57)
	at org.eclipse.swt.internal.widgets.displaykit.DisplayLCA.renderShells(DisplayLCA.java:144)
	at org.eclipse.swt.internal.widgets.displaykit.DisplayLCA.render(DisplayLCA.java:90)
	at org.eclipse.rap.rwt.internal.lifecycle.Render.execute(Render.java:29)
	at org.eclipse.rap.rwt.internal.lifecycle.PhaseExecutor.execute(PhaseExecutor.java:38)
	at org.eclipse.rap.rwt.internal.lifecycle.SimpleLifeCycle.execute(SimpleLifeCycle.java:46)
	at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.executeLifeCycle(RWTMessageHandler.java:56)
	at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.handleMessage(RWTMessageHandler.java:40)
	at org.eclipse.rap.rwt.internal.remote.MessageChainElement.handleMessage(MessageChainElement.java:28)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processMessage(LifeCycleServiceHandler.java:136)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:107)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:67)
	at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)
	at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)
	at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.rap.rwt.osgi.internal.CutOffContextPathWrapper.service(CutOffContextPathWrapper.java:106)
	at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl$LegacyServlet.service(HttpServiceRuntimeImpl.java:1245)
	at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:163)
	at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62)
	at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:392)
	at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:323)
	at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:199)
	at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.processAlias(ProxyServlet.java:87)
	at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.service(ProxyServlet.java:66)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:337)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
	at org.eclipse.jetty.server.Server.handle(Server.java:497)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Unknown Source)

I'm using RAP 2.3 and eclipse-rcp-luna-R-win32-x86_64.
I just checked RAP 3.0 in eclipse-rcp-luna-SR2-win32-x86_64 and it behaves the same.

It can be reproduced like this:
package raptest;

import org.eclipse.rap.rwt.application.AbstractEntryPoint;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;


public class BasicEntryPoint extends AbstractEntryPoint {

    @Override
    protected void createContents(Composite parent) {
        parent.setLayout(new GridLayout(2, false));
        final Table table = new Table(parent, SWT.NONE);
		table.setLinesVisible (true);
		for (int i = 0; i < 2; i++) {
		TableItem tableItem = new TableItem (table, SWT.MULTI);
			tableItem.setText ("Item" + i);
		}
        Button button = new Button(parent, SWT.PUSH);
        button.setText("World");
        button.addListener(SWT.Selection, new Listener() {
			private static final long serialVersionUID = 1L;

			@Override
			public void handleEvent(Event event) {
//				table.setSelection(2); // works
				table.setSelection(new int[]{2}); // works not
				System.out.println("OK");
			}
		});
    }
}


Should I file a bug about this?

Julia
Re: Bug in void org.eclipse.swt.widgets.Table.setSelection(int[] indices)? [message #1690537 is a reply to message #1690535] Sat, 28 March 2015 11:38 Go to previous messageGo to next message
Ivan Furnadjiev is currently offline Ivan FurnadjievFriend
Messages: 2426
Registered: July 2009
Location: Sofia, Bulgaria
Senior Member
Hi Julia,
yes... please file a bugzilla and we will look on it as soon as possible.
Regards,
Ivan

--
Ivan Furnadjiev

Twitter: @EclipseRAP
Blog: http://eclipsesource.com/blogs/

Professional services for RAP and RCP?
http://eclipsesource.com/services/rap/
Re: Bug in void org.eclipse.swt.widgets.Table.setSelection(int[] indices)? [message #1690539 is a reply to message #1690537] Sat, 28 March 2015 13:50 Go to previous messageGo to next message
Julia Kurde is currently offline Julia KurdeFriend
Messages: 91
Registered: November 2011
Location: Berlin, Germany
Member
OK...
it's here
https://bugs.eclipse.org/bugs/show_bug.cgi?id=463354

For the meantime this works:
		table.deselectAll();
		for (int i=0; i<indices.length; i++) {
				table.select(indices[i]);
		}

Regards,
Julia
Re: Bug in void org.eclipse.swt.widgets.Table.setSelection(int[] indices)? [message #1690585 is a reply to message #1690537] Sun, 29 March 2015 14:12 Go to previous message
Julia Kurde is currently offline Julia KurdeFriend
Messages: 91
Registered: November 2011
Location: Berlin, Germany
Member
OK...
it's here
https://bugs.eclipse.org/bugs/show_bug.cgi?id=463354

For the meantime this works:
		table.deselectAll();
		for (int i=0; i<indices.length; i++) {
				table.select(indices[i]);
		}

Regards,
Julia
Previous Topic:Want to use Forms in RAPe4 Incubator
Next Topic:NLS translation size limitations - lots of strings
Goto Forum:
  


Current Time: Fri Apr 26 05:52:35 GMT 2024

Powered by FUDForum. Page generated in 0.02873 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top