Fix for IndexOutOfBoundsException and wrong selection in SWT tables

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
Hi

 I just found out what is causing the IndexOutOfBoundsException and wrong selection I reported here
http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728 and here
http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240

The solution is in fact here: https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
If you replace getTopIndex() with event.index everything works perfectly.
You do not have to drop support for SWT pre-3.2 where event.index is not available, cause it's also possible to use table.indexOf(item) (though I don't know how fast this is).

greetings
fabian
Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
Maybe this applies to these issues too?

https://glazedlists.dev.java.net/issues/show_bug.cgi?id=249
https://glazedlists.dev.java.net/issues/show_bug.cgi?id=247

fabian

fab|an wrote
Hi

 I just found out what is causing the IndexOutOfBoundsException and wrong selection I reported here
http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728 and here
http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240

The solution is in fact here: https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
If you replace getTopIndex() with event.index everything works perfectly.
You do not have to drop support for SWT pre-3.2 where event.index is not available, cause it's also possible to use table.indexOf(item) (though I don't know how fast this is).

greetings
fabian
Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Holger
In reply to this post by Fabian Zeindl
In a very old version of EventTableViewer
https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.30&view=markup
table.indexOf(item) was used in the virtaul table handler,
but caused some problems at that time.
So it was changed in the next revision to
use table.getTopIndex() and some index calculation:
https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.31&view=markup

It could be that recent SWT versions fixed these issues and now report
the correct index in the event.

We could do something like this in method handleEvent:
...
int index;
// I think there is a method like this somewhere:
int swtVersion = SWT.getVersion();
if (swtVersion < 3200)
  // for old SWT versions < 3.2 use our current solution
  index = table.getTopIndex();
else
  // for SWT versions >= 3.2 use the index of the event
  index = e.index
int whiteIndex = requested.getWhiteIndex(index, false);
index = requested.getIndex(whiteIndex, Barcode.WHITE);
....


James, Jesse, should we give it a try?

Holger

>
>
> Hi
>
>  I just found out what is causing the IndexOutOfBoundsException and wrong
> selection I reported here
> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> and here
> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
>
> The solution is in fact here:
> https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent(..)
> seems to be wrong.
> If you replace getTopIndex() with event.index everything works perfectly.
> You do not have to drop support for SWT pre-3.2 where event.index is not
> available, cause it's also possible to use table.indexOf(item) (though I
> don't know how fast this is).
>
> greetings
> fabian
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13413659
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


_________________________________________________________________________
In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten!
Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=021114

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

James Lemieux
Version specific code <grabs stomach and moans weakly in agony>. If there is no other way, I guess we'll need to...

Version-specific test cases should be created I guess... partially to help document *why* we had to do it this way...

James

On 10/26/07, Holger Brands <[hidden email]> wrote:
In a very old version of EventTableViewer
https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.30&view=markup
table.indexOf(item) was used in the virtaul table handler,
but caused some problems at that time.
So it was changed in the next revision to
use table.getTopIndex() and some index calculation:
https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.31&view=markup

It could be that recent SWT versions fixed these issues and now report
the correct index in the event.

We could do something like this in method handleEvent:
...
int index;
// I think there is a method like this somewhere:
int swtVersion = SWT.getVersion();
if (swtVersion < 3200)
  // for old SWT versions < 3.2 use our current solution
  index = table.getTopIndex();
else
  // for SWT versions >= 3.2 use the index of the event
  index = e.index
int whiteIndex = requested.getWhiteIndex (index, false);
index = requested.getIndex(whiteIndex, Barcode.WHITE);
....


James, Jesse, should we give it a try?

Holger

>
>
> Hi
>
>  I just found out what is causing the IndexOutOfBoundsException and wrong
> selection I reported here
> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> and here
> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
>
> The solution is in fact here:

> https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent (..)
> seems to be wrong.
> If you replace getTopIndex() with event.index everything works perfectly.
> You do not have to drop support for SWT pre-3.2 where event.index is not
> available, cause it's also possible to use table.indexOf(item) (though I
> don't know how fast this is).
>
> greetings
> fabian
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13413659
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com .
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


_________________________________________________________________________
In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten!
Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=021114

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
I tested the issue under win32 and linux/gtk now, with SWT versions 3.3, 3.2.2, 3.1.2, 3.0.2, so every latest bugfix-release.

               getTopIndex()           indexOf(TableItem)
win32/3.0.2    works                   works
win32/3.1.2    works                   works
win32/3.2.2    works                   works
win32/3.3      works                   works
linux/3.0.2    doesn't work            works
linux/3.1.2    doesn't work            works
linux/3.2.2    doesn't work            works
linux/3.3      doesn't work            works

So if there have been troubles with indexOf I guess they've been fixed. Do you know whether it was really indexOf that caused the problems, because in https://glazedlists.dev.java.net/issues/show_bug.cgi?id=197 the barcode was introduced to setData too.

In this SWT-bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=146799 somebody says that using getTopIndex is always a bad idea, cause SetData events can also occur for non-visible items.

Here are some considerations about indexOf - speed: https://bugs.eclipse.org/bugs/show_bug.cgi?id=129703

fabian

James Lemieux wrote
Version specific code <grabs stomach and moans weakly in agony>. If there is
no other way, I guess we'll need to...

Version-specific test cases should be created I guess... partially to help
document *why* we had to do it this way...

James

On 10/26/07, Holger Brands <hbrands@web.de> wrote:
>
> In a very old version of EventTableViewer
>
> https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.30&view=markup
> table.indexOf(item) was used in the virtaul table handler,
> but caused some problems at that time.
> So it was changed in the next revision to
> use table.getTopIndex() and some index calculation:
>
> https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.31&view=markup
>
> It could be that recent SWT versions fixed these issues and now report
> the correct index in the event.
>
> We could do something like this in method handleEvent:
> ...
> int index;
> // I think there is a method like this somewhere:
> int swtVersion = SWT.getVersion();
> if (swtVersion < 3200)
>   // for old SWT versions < 3.2 use our current solution
>   index = table.getTopIndex();
> else
>   // for SWT versions >= 3.2 use the index of the event
>   index = e.index
> int whiteIndex = requested.getWhiteIndex(index, false);
> index = requested.getIndex(whiteIndex, Barcode.WHITE);
> ....
>
>
> James, Jesse, should we give it a try?
>
> Holger
>
> >
> >
> > Hi
> >
> >  I just found out what is causing the IndexOutOfBoundsException and
> wrong
> > selection I reported here
> >
> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> > and here
> >
> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >
> > The solution is in fact here:
> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> > Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent
> (..)
> > seems to be wrong.
> > If you replace getTopIndex() with event.index everything works
> perfectly.
> > You do not have to drop support for SWT pre-3.2 where event.index is not
> > available, cause it's also possible to use table.indexOf(item) (though I
> > don't know how fast this is).
> >
> > greetings
> > fabian
> >
> > --
> > View this message in context:
> http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13413659
> > Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> > For additional commands, e-mail: dev-help@glazedlists.dev.java.net
> >
> >
>
>
> _________________________________________________________________________
> In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten!
> Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=021114
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> For additional commands, e-mail: dev-help@glazedlists.dev.java.net
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Holger
In reply to this post by Fabian Zeindl
Thanks for the info, Fabian.
So we could do something like this in handleEvent:

...
// First try index from event
int index = e.index;
if (index == -1) {
  // if not set because of older SWT version, get index from table
  index = table.indexOf(item);
}
int whiteIndex = requested.getWhiteIndex(index, false);
index = requested.getIndex(whiteIndex, Barcode.WHITE);
...

But I guess we should add more tests over time.
In particular, did you test sorting and filtering/unfiltering with this change, too?
If you have some unit tests to share, let us know.

Thanks,
Holger

>
>
> I tested the issue under win32 and linux/gtk now, with SWT versions 3.3,
> 3.2.2, 3.1.2, 3.0.2, so every latest bugfix-release.
>
>                getTopIndex()           indexOf(TableItem)
> win32/3.0.2    works                   works
> win32/3.1.2    works                   works
> win32/3.2.2    works                   works
> win32/3.3      works                   works
> linux/3.0.2    doesn't work            works
> linux/3.1.2    doesn't work            works
> linux/3.2.2    doesn't work            works
> linux/3.3      doesn't work            works
>
> So if there have been troubles with indexOf I guess they've been fixed. Do
> you know whether it was really indexOf that caused the problems, because in
> https://glazedlists.dev.java.net/issues/show_bug.cgi?id=197 the barcode was
> introduced to setData too.
>
> In this SWT-bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=146799
> somebody says that using getTopIndex is always a bad idea, cause SetData
> events can also occur for non-visible items.
>
> Here are some considerations about indexOf - speed:
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=129703
>
> fabian
>
>
> James Lemieux wrote:
> >
> > Version specific code <grabs stomach and moans weakly in agony>. If there
> > is
> > no other way, I guess we'll need to...
> >
> > Version-specific test cases should be created I guess... partially to help
> > document *why* we had to do it this way...
> >
> > James
> >
> > On 10/26/07, Holger Brands <[hidden email]> wrote:
> >>
> >> In a very old version of EventTableViewer
> >>
> >> https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.30&view=markup
> >> table.indexOf(item) was used in the virtaul table handler,
> >> but caused some problems at that time.
> >> So it was changed in the next revision to
> >> use table.getTopIndex() and some index calculation:
> >>
> >> https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.31&view=markup
> >>
> >> It could be that recent SWT versions fixed these issues and now report
> >> the correct index in the event.
> >>
> >> We could do something like this in method handleEvent:
> >> ...
> >> int index;
> >> // I think there is a method like this somewhere:
> >> int swtVersion = SWT.getVersion();
> >> if (swtVersion < 3200)
> >>   // for old SWT versions < 3.2 use our current solution
> >>   index = table.getTopIndex();
> >> else
> >>   // for SWT versions >= 3.2 use the index of the event
> >>   index = e.index
> >> int whiteIndex = requested.getWhiteIndex(index, false);
> >> index = requested.getIndex(whiteIndex, Barcode.WHITE);
> >> ....
> >>
> >>
> >> James, Jesse, should we give it a try?
> >>
> >> Holger
> >>
> >> >
> >> >
> >> > Hi
> >> >
> >> >  I just found out what is causing the IndexOutOfBoundsException and
> >> wrong
> >> > selection I reported here
> >> >
> >> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> >> > and here
> >> >
> >> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >> >
> >> > The solution is in fact here:
> >> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> >> > Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent
> >> (..)
> >> > seems to be wrong.
> >> > If you replace getTopIndex() with event.index everything works
> >> perfectly.
> >> > You do not have to drop support for SWT pre-3.2 where event.index is
> >> not
> >> > available, cause it's also possible to use table.indexOf(item) (though
> >> I
> >> > don't know how fast this is).
> >> >
> >> > greetings
> >> > fabian
> >> >
> >> > --
> >> > View this message in context:
> >> http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13413659
> >> > Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: [hidden email]
> >> > For additional commands, e-mail: [hidden email]
> >> >
> >> >
> >>
> >>
> >> _________________________________________________________________________
> >> In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten!
> >> Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=021114
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
> >>
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13440978
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
Holger Brands wrote
// First try index from event
int index = e.index;
if (index == -1) {
  // if not set because of older SWT version, get index from table
  index = table.indexOf(item);
}
int whiteIndex = requested.getWhiteIndex(index, false);
index = requested.getIndex(whiteIndex, Barcode.WHITE);
Accessing e.index when it doesn't exist throws a NoSuchFieldError-Exception.

Holger Brands wrote
But I guess we should add more tests over time.
In particular, did you test sorting and filtering/unfiltering with this change, too?
If you have some unit tests to share, let us know.
I just tested in my application and the crashes are gone. Textfiltering, Matcher-Filtering, Selection etc. works fine without any crashes. I don't have any unit tests, sorry. I have never used JUnit etc. so far.

fabian

>
>
> I tested the issue under win32 and linux/gtk now, with SWT versions 3.3,
> 3.2.2, 3.1.2, 3.0.2, so every latest bugfix-release.
>
>                getTopIndex()           indexOf(TableItem)
> win32/3.0.2    works                   works
> win32/3.1.2    works                   works
> win32/3.2.2    works                   works
> win32/3.3      works                   works
> linux/3.0.2    doesn't work            works
> linux/3.1.2    doesn't work            works
> linux/3.2.2    doesn't work            works
> linux/3.3      doesn't work            works
>
> So if there have been troubles with indexOf I guess they've been fixed. Do
> you know whether it was really indexOf that caused the problems, because in
> https://glazedlists.dev.java.net/issues/show_bug.cgi?id=197 the barcode was
> introduced to setData too.
>
> In this SWT-bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=146799
> somebody says that using getTopIndex is always a bad idea, cause SetData
> events can also occur for non-visible items.
>
> Here are some considerations about indexOf - speed:
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=129703
>
> fabian
>
>
> James Lemieux wrote:
> >
> > Version specific code <grabs stomach and moans weakly in agony>. If there
> > is
> > no other way, I guess we'll need to...
> >
> > Version-specific test cases should be created I guess... partially to help
> > document *why* we had to do it this way...
> >
> > James
> >
> > On 10/26/07, Holger Brands <hbrands@web.de> wrote:
> >>
> >> In a very old version of EventTableViewer
> >>
> >> https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.30&view=markup
> >> table.indexOf(item) was used in the virtaul table handler,
> >> but caused some problems at that time.
> >> So it was changed in the next revision to
> >> use table.getTopIndex() and some index calculation:
> >>
> >> https://glazedlists.dev.java.net/source/browse/glazedlists/source/ca/odell/glazedlists/swt/EventTableViewer.java?hideattic=0&rev=1.31&view=markup
> >>
> >> It could be that recent SWT versions fixed these issues and now report
> >> the correct index in the event.
> >>
> >> We could do something like this in method handleEvent:
> >> ...
> >> int index;
> >> // I think there is a method like this somewhere:
> >> int swtVersion = SWT.getVersion();
> >> if (swtVersion < 3200)
> >>   // for old SWT versions < 3.2 use our current solution
> >>   index = table.getTopIndex();
> >> else
> >>   // for SWT versions >= 3.2 use the index of the event
> >>   index = e.index
> >> int whiteIndex = requested.getWhiteIndex(index, false);
> >> index = requested.getIndex(whiteIndex, Barcode.WHITE);
> >> ....
> >>
> >>
> >> James, Jesse, should we give it a try?
> >>
> >> Holger
> >>
> >> >
> >> >
> >> > Hi
> >> >
> >> >  I just found out what is causing the IndexOutOfBoundsException and
> >> wrong
> >> > selection I reported here
> >> >
> >> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> >> > and here
> >> >
> >> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >> >
> >> > The solution is in fact here:
> >> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> >> > Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent
> >> (..)
> >> > seems to be wrong.
> >> > If you replace getTopIndex() with event.index everything works
> >> perfectly.
> >> > You do not have to drop support for SWT pre-3.2 where event.index is
> >> not
> >> > available, cause it's also possible to use table.indexOf(item) (though
> >> I
> >> > don't know how fast this is).
> >> >
> >> > greetings
> >> > fabian
> >> >
> >> > --
> >> > View this message in context:
> >> http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13413659
> >> > Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> >> > For additional commands, e-mail: dev-help@glazedlists.dev.java.net
> >> >
> >> >
> >>
> >>
> >> _________________________________________________________________________
> >> In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten!
> >> Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=021114
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> >> For additional commands, e-mail: dev-help@glazedlists.dev.java.net
> >>
> >>
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a13440978
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> For additional commands, e-mail: dev-help@glazedlists.dev.java.net
>
>


_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
For additional commands, e-mail: dev-help@glazedlists.dev.java.net



Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Holger
In reply to this post by Fabian Zeindl
>
> Accessing e.index when it doesn't exist throws a NoSuchFieldError-Exception.
>
>

You're right.
The index field doesn't *exist* in the Event class prior to SWT 3.2,
I assumed the field existed but wasn't *filled* with a meaningful value.

Holger

_______________________________________________________________________
Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 3 Monate
kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=022220

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
In reply to this post by Fabian Zeindl
Hi,

 will this be integrated in cvs?

fabian

fab|an wrote
Hi

 I just found out what is causing the IndexOutOfBoundsException and wrong selection I reported here
http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728 and here
http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240

The solution is in fact here: https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
Using getTopIndex() in EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
If you replace getTopIndex() with event.index everything works perfectly.
You do not have to drop support for SWT pre-3.2 where event.index is not available, cause it's also possible to use table.indexOf(item) (though I don't know how fast this is).

greetings
fabian
Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Holger
In reply to this post by Fabian Zeindl
I intend to do so, but I didn't have time to write tests for it, yet.
Maybe we should include it in the latest build and users could
try with their real world apps...

Holger

>
>
> Hi,
>
>  will this be integrated in cvs?
>
> fabian
>
>
> fab|an wrote:
> >
> > Hi
> >
> >  I just found out what is causing the IndexOutOfBoundsException and wrong
> > selection I reported here
> > http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> > and here
> > http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >
> > The solution is in fact here:
> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> > Using getTopIndex() in
> > EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
> > If you replace getTopIndex() with event.index everything works perfectly.
> > You do not have to drop support for SWT pre-3.2 where event.index is not
> > available, cause it's also possible to use table.indexOf(item) (though I
> > don't know how fast this is).
> >
> > greetings
> > fabian
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a14149418
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
Hi again,

 I just wanted to say that I use my patch now in Windows and Linux real world application and had no problems so far...

greetings
fabian

Holger Brands wrote
I intend to do so, but I didn't have time to write tests for it, yet.
Maybe we should include it in the latest build and users could
try with their real world apps...

Holger

>
>
> Hi,
>
>  will this be integrated in cvs?
>
> fabian
>
>
> fab|an wrote:
> >
> > Hi
> >
> >  I just found out what is causing the IndexOutOfBoundsException and wrong
> > selection I reported here
> > http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> > and here
> > http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >
> > The solution is in fact here:
> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> > Using getTopIndex() in
> > EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
> > If you replace getTopIndex() with event.index everything works perfectly.
> > You do not have to drop support for SWT pre-3.2 where event.index is not
> > available, cause it's also possible to use table.indexOf(item) (though I
> > don't know how fast this is).
> >
> > greetings
> > fabian
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a14149418
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> For additional commands, e-mail: dev-help@glazedlists.dev.java.net
>
>


_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
For additional commands, e-mail: dev-help@glazedlists.dev.java.net
Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Holger
In reply to this post by Fabian Zeindl
Fabian,

I uploaded a new latest build which contains the fix.
Instead of using table.getTopIndex() we now use table.indexOf(item).
Note also that the problem discussed here
https://glazedlists.dev.java.net/servlets/ReadMsg?list=users&msgNo=2923
should also be fixed.

Holger

>
>
> Hi again,
>
>  I just wanted to say that I use my patch now in Windows and Linux real
> world application and had no problems so far...
>
> greetings
> fabian
>
>
> Holger Brands wrote:
> >
> > I intend to do so, but I didn't have time to write tests for it, yet.
> > Maybe we should include it in the latest build and users could
> > try with their real world apps...
> >
> > Holger
> >
> >>
> >>
> >> Hi,
> >>
> >>  will this be integrated in cvs?
> >>
> >> fabian
> >>
> >>
> >> fab|an wrote:
> >> >
> >> > Hi
> >> >
> >> >  I just found out what is causing the IndexOutOfBoundsException and
> >> wrong
> >> > selection I reported here
> >> >
> >> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> >> > and here
> >> >
> >> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >> >
> >> > The solution is in fact here:
> >> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> >> > Using getTopIndex() in
> >> > EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
> >> > If you replace getTopIndex() with event.index everything works
> >> perfectly.
> >> > You do not have to drop support for SWT pre-3.2 where event.index is
> >> not
> >> > available, cause it's also possible to use table.indexOf(item) (though
> >> I
> >> > don't know how fast this is).
> >> >
> >> > greetings
> >> > fabian
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a14149418
> >> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
> >>
> >
> >
> > _____________________________________________________________________
> > Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> > http://smartsurfer.web.de/?mc=100071&distributionid=000000000066
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tp13413659p14598137.html
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


_______________________________________________________________________
Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage
kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=022220

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Fix for IndexOutOfBoundsException and wrong selection in SWT tables

Fabian Zeindl
Thank you.
The old problem I reported seems to be fixed, I never got the problem again.

fabian

Holger Brands wrote
Fabian,

I uploaded a new latest build which contains the fix.
Instead of using table.getTopIndex() we now use table.indexOf(item).
Note also that the problem discussed here
https://glazedlists.dev.java.net/servlets/ReadMsg?list=users&msgNo=2923
should also be fixed.

Holger

>
>
> Hi again,
>
>  I just wanted to say that I use my patch now in Windows and Linux real
> world application and had no problems so far...
>
> greetings
> fabian
>
>
> Holger Brands wrote:
> >
> > I intend to do so, but I didn't have time to write tests for it, yet.
> > Maybe we should include it in the latest build and users could
> > try with their real world apps...
> >
> > Holger
> >
> >>
> >>
> >> Hi,
> >>
> >>  will this be integrated in cvs?
> >>
> >> fabian
> >>
> >>
> >> fab|an wrote:
> >> >
> >> > Hi
> >> >
> >> >  I just found out what is causing the IndexOutOfBoundsException and
> >> wrong
> >> > selection I reported here
> >> >
> >> http://www.nabble.com/IndexOutOfBoundsException-in-ThreadProxyEventList-tf4256276.html#a12739728
> >> > and here
> >> >
> >> http://www.nabble.com/Wrong-selection-in-EventTableViewer--tf4198547.html#a12856240
> >> >
> >> > The solution is in fact here:
> >> > https://glazedlists.dev.java.net/issues/show_bug.cgi?id=413.
> >> > Using getTopIndex() in
> >> > EventTableViewer.VirtualTableHandler.handleEvent(..) seems to be wrong.
> >> > If you replace getTopIndex() with event.index everything works
> >> perfectly.
> >> > You do not have to drop support for SWT pre-3.2 where event.index is
> >> not
> >> > available, cause it's also possible to use table.indexOf(item) (though
> >> I
> >> > don't know how fast this is).
> >> >
> >> > greetings
> >> > fabian
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tf4692918.html#a14149418
> >> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> >> For additional commands, e-mail: dev-help@glazedlists.dev.java.net
> >>
> >>
> >
> >
> > _____________________________________________________________________
> > Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> > http://smartsurfer.web.de/?mc=100071&distributionid=000000000066
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> > For additional commands, e-mail: dev-help@glazedlists.dev.java.net
> >
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Fix-for-IndexOutOfBoundsException-and-wrong-selection-in-SWT-tables-tp13413659p14598137.html
> Sent from the GlazedLists - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
> For additional commands, e-mail: dev-help@glazedlists.dev.java.net
>
>


_______________________________________________________________________
Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage
kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=022220

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@glazedlists.dev.java.net
For additional commands, e-mail: dev-help@glazedlists.dev.java.net