Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » NatTable » Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major than
Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major than [message #1665661] Wed, 11 March 2015 10:32 Go to next message
Eclipse UserFriend
Hello,
we started using Nattable in our application a few months ago.

After the Nattable update to version 1.2.0 we started encountering a StackOverflowError:

!ENTRY org.eclipse.ui 4 0 2015-03-10 15:47:24.290
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.StackOverflowError
	at java.util.HashMap.hash(Unknown Source)
	at java.util.HashMap.getEntry(Unknown Source)
	at java.util.HashMap.get(Unknown Source)
	at org.eclipse.nebula.widgets.nattable.layer.SizeConfig.getAggregateSize(SizeConfig.java:252)
	at org.eclipse.nebula.widgets.nattable.layer.DataLayer.getStartXOfColumnPosition(DataLayer.java:446)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:32)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	...


This happens on all kinds of tables (e.g.: view tables without cell editors and editable tables with cell editors) but only when the "Control Panel/Display text scaling" is major than 100% (e.g.: high resolution displays).

Another problem is that sometimes the end of the table is not correctly rendered:

index.php/fa/21128/0/

We think that the two problems are connected, but we are not sure about it.

This is how we create Nattables:

[see: createTable.java attachment]


And this is a sample "configuration class" used to configure Nattables:

[see: MyListTableConfig.java attachment]




Could You help us?
Thanks!
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1666254 is a reply to message #1665661] Wed, 11 March 2015 16:02 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Sounds like an issue with the scaling we added with NatTable 1.2.0 to support such settings.

I'm not sure what the issue could be since we tested this quite intensively. I can see that you are using a custom painter ContestualMenuPainter. I'm not sure what it is doing, but maybe you can try to not using it to test whether there is an issue.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1667959 is a reply to message #1666254] Thu, 12 March 2015 09:06 Go to previous messageGo to next message
Eclipse UserFriend
Hi Dirk,
the ContestualMenuPainter extends the Nattable's ImagePainter and draws a "menu icon" in the first column of the Nattable (as shown in the screenshot). I attached the source file, so You can have a look at it.

index.php/fa/21145/0/

Anyway, the problem appears also after removing the Painter even if it is a little bit different (there is a HashMap.containsKey() instead of a HashMap.get()):

!ENTRY org.eclipse.ui 4 0 2015-03-12 08:41:57.534
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.StackOverflowError
	at java.util.HashMap.hash(Unknown Source)
	at java.util.HashMap.getEntry(Unknown Source)
	at java.util.HashMap.containsKey(Unknown Source)
	at org.eclipse.nebula.widgets.nattable.layer.SizeConfig.getAggregateSize(SizeConfig.java:248)
	at org.eclipse.nebula.widgets.nattable.layer.DataLayer.getStartXOfColumnPosition(DataLayer.java:446)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:32)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
...

We also tried removing the ConfigLabelAccumulators used to highlight some cells, but the problem still remains.

However, it seems that the easiest way to cause the StackOverflowError is to resize a column.


Our configuration is: Windows 7, Java 1.7.0 update 51, and SWT 3.8.1.
Let me know if You need further information.
Thanks!

[Updated on: Thu, 12 March 2015 09:11] by Moderator

Report message to a moderator

Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1668231 is a reply to message #1667959] Thu, 12 March 2015 11:40 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Does the issue also appear with NatTable default examples?
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1670670 is a reply to message #1668231] Fri, 13 March 2015 09:37 Go to previous messageGo to next message
Eclipse UserFriend
No, it doesn't appear.
We also tried copying the "Everything but the kitchen sink" example in our application but we can't reproduce the issue (we applied our nattable theme, added some ConfigLabelAccumulators, put it in a section, ...).
In the end, I think that the issue is caused by some wrong configuration (layers order? nattable configuration?) even though everything was working on version 1.1.0.

I'll investigate and I'll tell You if I understand the cause. Confused

Thank You for Your assistance!
Bye!
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1670730 is a reply to message #1670670] Fri, 13 March 2015 10:09 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Maybe some hint on this. We introduced a ConfigureScalingCommand that is executed on initial rendering to tell all layers about necessary scaling transformations. Maybe you created a custom layer or override some methods that deal with this now.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1682506 is a reply to message #1670730] Tue, 17 March 2015 19:19 Go to previous messageGo to next message
Thorsten Schlathölter is currently offline Thorsten SchlathölterFriend
Messages: 312
Registered: February 2012
Location: Düsseldorf
Senior Member
Hi,
any news on this? We encountered the same problem.

As the stack trace shows, the problem is localed in this method:
   protected static final int findColumnPosition(int xOffset,
            int columnOffset, ILayer layer, int x, int totalWidth,
            int columnCount) {
        double size = (double) (totalWidth - xOffset)
                / (columnCount - columnOffset);
        int columnPosition = columnOffset + (int) ((x - xOffset) / size);

        int startX = layer.getStartXOfColumnPosition(columnPosition);
        int endX = startX + layer.getColumnWidthByPosition(columnPosition);
        if (x < startX) {
            return findColumnPosition(xOffset, columnOffset, layer, x, startX,
                    columnPosition);
        } else if (x >= endX) {
            return findColumnPosition(endX, columnPosition + 1, layer, x,
                    totalWidth, columnCount);
        } else {
            return columnPosition;
        }
    }


In our case at some point we reach the case where

x >= endX


Then the method is called recursively with:

columnOffset = columnPosition+1


In the called method this leads to:

columnOffset-columnCount = 0


Which results in an infinite size because of division by zero.

I have checked the conversions and found that the ConfigureScalingResult which is called results in a dpi of 120 whereas the GUIHelper method uses the dpiFactor of 1.25 for conversion.

 public static int convertHorizontalPixelToDpi(int pixel) {
        return Float.valueOf(pixel * getDpiFactor(getDpiX())).intValue();
    }


I tried to put in a dpi of 125 in the ConfigureScalingCommand. This solves the problem. I know it is just a hack but I did not yet find out where the actual "miscalculation" takes place and exactly why.

I have solved the problem by calling the following command right after creation of the table.
table.getLayer().doCommand(new ConfigureScalingCommand(
                 new AbstractDpiConverter() {

                     @Override
                     protected void readDpiFromDisplay() {
                         Display.getDefault().syncExec(new Runnable() {

                             @Override
                             public void run() {
                                 dpi = Display.getDefault().getDPI().x;
                                 dpi = (int)(GUIHelper.getDpiFactor(dpi)*100);
                             }
                         });
                     }
                 },
                 new AbstractDpiConverter() {

                     @Override
                     protected void readDpiFromDisplay() {
                         Display.getDefault().syncExec(new Runnable() {

                             @Override
                             public void run() {
                                 dpi = Display.getDefault().getDPI().y;
                                 dpi = (int)(GUIHelper.getDpiFactor(dpi)*100);
                             }
                         });
                     }
                 }));
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1682574 is a reply to message #1682506] Tue, 17 March 2015 19:50 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
There is some misunderstanding regarding the factor and the dpi. DPI 120 means a factor of 1.25. This is because factor 1.0 is 96 DPI. Regarding the code I have in front of me, your code results in not performing scaling anymore because you return a DPI value of 125. And there is no factor configured for that DPI value, since I am not aware of such a DPI setting.

In short, your workaround disables scaling.

Can you reproduce the issue with one of the NatTable examples?
Have you overriden some methods of NatTable layers that might avoid handling of the scaling command?
Do you have some special size configuration?
How are your column widths configured? Maybe there is a rounding issue somewhere.

Until now I am not able to reproduce the issue. That doesn't mean it isn't an issue, I just need to find the use case or configuration to find out where to search.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1683886 is a reply to message #1682574] Wed, 18 March 2015 07:43 Go to previous messageGo to next message
Thorsten Schlathölter is currently offline Thorsten SchlathölterFriend
Messages: 312
Registered: February 2012
Location: Düsseldorf
Senior Member
Our table configuration is very complicated and was implemented by people which are not on board anymore. So it's hard so say. But I am sure it is in issue which came up with 1.2. I will have a look into it when I have some more time. For now disabling the scaling is OK for me.

Regards,
Thorsten

Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1683914 is a reply to message #1683886] Wed, 18 March 2015 07:58 Go to previous messageGo to next message
Eclipse UserFriend
Hi,
no, we didn't create any custom layer and we don't know if some overrided method could deal with the ConfigureScalingCommand.
However the initial rendering is correct. The issue appears when the user does other actions like column resizing.

We agree with Thorsten about the cause of the issue.
About the "special size configuration" we can say that:
- we define some fixed column width (e.g.: bodyDataLayer.setDefaultColumnWidthByPosition(COLUMN_POSIZION, 70)), but removing them we still have the issue;
- the nattable parent is a section placed in a ScrolledComposite.

Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1683936 is a reply to message #1683914] Wed, 18 March 2015 08:09 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Quote:
But I am sure it is in issue which came up with 1.2.


I'm pretty sure too, since with 1.2.0 we introduced scaling for high resolution display. Before there was no scaling and people reported that NatTable looks ugly when setting a higher scaling because the fonts scaled but the cell dimensions not.

Quote:
However the initial rendering is correct. The issue appears when the user does other actions like column resizing.


Now that is an information. Maybe it is related to some rounding issue. I can also try to see if I find something.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1683956 is a reply to message #1683936] Wed, 18 March 2015 08:15 Go to previous messageGo to next message
Thorsten Schlathölter is currently offline Thorsten SchlathölterFriend
Messages: 312
Registered: February 2012
Location: Düsseldorf
Senior Member
Our table is special in the sense that it has a model that dynamically adds columns. The scaling bug in our case results in an incomplete rendering of the table. Some of the columns are simply not shown. I have to look into it in detail.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1684411 is a reply to message #1683956] Wed, 18 March 2015 12:13 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
I think I have found the issue. It is indeed a rounding issue in LayerUtil#findColumnPosition()

https://bugs.eclipse.org/bugs/show_bug.cgi?id=462459

I have pushed a possible solution to Gerrit that at least avoids the issue in my local test cases. Is it possible for you to checkout the Gerrit patch and test it with your environment? We are about to release 1.3.0 the next days and the review is starting soon (if it hasn't already). But as this is a critical issue IMHO I would like to put this into the release as a verified solution.

So your help is really needed to verify the fix for that issue!
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1684412 is a reply to message #1684411] Wed, 18 March 2015 12:13 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
The Gerrit patch is located here: https://git.eclipse.org/r/#/c/44088/
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1684661 is a reply to message #1684412] Wed, 18 March 2015 14:21 Go to previous messageGo to next message
Eclipse UserFriend
Hi Dirk,
we are currently experiencing the issue even if it appears less frequently (sometime when we change the view, and consequently when the nattable is disposed).
The error logged is the same as the previous:

!ENTRY org.eclipse.ui 4 0 2015-03-18 14:57:18.153
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.StackOverflowError
	at java.util.HashMap.hash(Unknown Source)
	at java.util.HashMap.getEntry(Unknown Source)
	at java.util.HashMap.containsKey(Unknown Source)
	at org.eclipse.nebula.widgets.nattable.layer.SizeConfig.getAggregateSize(SizeConfig.java:248)
	at org.eclipse.nebula.widgets.nattable.layer.DataLayer.getStartXOfColumnPosition(DataLayer.java:446)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:32)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
	at org.eclipse.nebula.widgets.nattable.layer.LayerUtil.findColumnPosition(LayerUtil.java:35)
        ...


This is the point of the SizeConfig.getAggregateSize() method where the application fails:

if (!this.aggregatedSizeCacheMap.containsKey(position)) {
       ...
}


Looking at this, we decided to remove the default column width (e.g.: bodyDataLayer.setDefaultColumnWidthByPosition(COLUMN_POSITION, 70)) from the DataLayer of the table and the issue seems to disappear.
Maybe there is something to adjust in the SizeConfig.getAggregateSize() method?
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1684690 is a reply to message #1684661] Wed, 18 March 2015 14:38 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Hi Sergio,

thanks for the hints. I also came across this. The issue seems to be related to a rounding issue (see ticket in post above). A column width of 70 pixels will be scaled to 87.5 (125% for 120 DPI). This leads to the rounding issue, because asking for just one columns width, 87 will be used.

Is it possible for you to checkout the NatTable sources and apply the Gerrit patch locally, so you can verify if the patch fixes the issue? I would like to release a fix for this issue with 1.3.0 end of this month.

Greez,
Dirk
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1684782 is a reply to message #1684690] Wed, 18 March 2015 15:24 Go to previous messageGo to next message
Eclipse UserFriend
Hi Dirk,
I'm sorry because I was not clear: I wrote my last post after having applied the Gerrit Patch.

This is what I did:
- I updated the Nattable sources (exported the zip from the git repository and imported the Nattable projects in a Eclipse Galileo workspace);
- I applied the Gerrit patch (copy and paste from the webview to the LayerUtil.java file ... because I don't know other ways to do it! Smile )
- I exported the projects as jar files and imported into our application
- launched our application and experienced the issue
- commented the bodyDataLayer.setDefaultColumnWidthByPosition()
- launched our application and didn't experience the issue.

So the issue is also present after having applied the Gerrit Patch.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1686484 is a reply to message #1684782] Thu, 19 March 2015 07:58 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Hi Sergio,

if you are using Git you can also checkout the sources directly from Gerrit. Smile

Nevertheless, I searched further for a suitable solution and found out that the issue doesn't appear for rows. I checked the difference of those two methods and added the same check as in findRowPosition() to findColumnPosition().

This seems to fix the bug correctly now. At least it did in my test cases. I tested with setting a default column width for all columns, a default column width for a single column, resizing and in combination with the viewport on scrolling. It looks good to me now. But maybe I'm still missing something.

Could you please try to use the code in Patch Set 2 (findColumnPosition() has changed) and test if this fixes the issue?

Thanks,
Dirk
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1686699 is a reply to message #1686484] Thu, 19 March 2015 10:03 Go to previous messageGo to next message
Eclipse UserFriend
Hi Dirk,
it seems to work!!!
We don't experience the issue even if we resize columns, we switch between views, etc. ...
At the end of our tests, we can say that the StackOverflowError issue is fixed!

The only issue we are still experiencing is that sometimes the "right end" of the table is not correctly rendered (I wrote something about it in the first post):

index.php/fa/21241/0/

We thought that this issue was related with the StackOverflowError issue, but it seems to be a different kind of issue.

It seems to appear only when the Nattable is initially rendered and when all columns are visible. If, initially, the Nattable is partially rendered and we use the horizontal scrollbar to go to the last column, the issue does not appear.
We don't experience the issue for the "bottom" of the table.
I have to open a new forum topic for this?

Thank You so much!!!
Sergio Ferraresi
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1686882 is a reply to message #1686699] Thu, 19 March 2015 11:45 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Quote:
sometimes the "right end" of the table is not correctly rendered


Is this also related to scaling? I mean, does it render correctly if no scaling is applied?

How many columns do you show initially and what column widths are applied? Might help in reproducing the issue.

Might also be related to the rounding issue. But I didn't face that issue in the NatTable examples. Or do you find an example that is showing the same behavior?

Quote:
I have to open a new forum topic for this?


At the moment I don't have strong feelings about that. Smile
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1686883 is a reply to message #1686882] Thu, 19 March 2015 11:46 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Quote:
Thank You so much!!!


Thank you for your help in testing and verifying!

Would be great if Thorsten Schlathölter could also verify the patch. So I can push the fix to the repo and release it with 1.3.0.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1686968 is a reply to message #1686883] Thu, 19 March 2015 12:35 Go to previous messageGo to next message
Eclipse UserFriend
Yes, it's related to scaling (I forgot to write it in the previous post). The table is correctly rendered when no scaling is applied.

For example, in this table:

index.php/fa/21243/0/

we have 6 columns and we have a default column width for the columns B (70px) and E (70px).
Also in this case, if we remove the bodyDataLayer.setDefaultColumnWidthByPosition(), the table is initially correctly rendered.

Maybe this could help you: we use the NatTableBorderOverlayPainter() as table overlay painter.
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1687872 is a reply to message #1686968] Thu, 19 March 2015 21:49 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
The issue is also related to rounding issues. With the next generation I will change the calculation to double based.

I created the following ticket: https://bugs.eclipse.org/bugs/show_bug.cgi?id=462612

I created a patch that should fix the issue: https://git.eclipse.org/r/#/c/44214/

Could you try this patch to see if it also fixes the issue in your environment?
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1688156 is a reply to message #1687872] Fri, 20 March 2015 08:39 Go to previous messageGo to next message
Eclipse UserFriend
Hi Dirk,
the issue is fixed!
In our test, we don't experience the issue anymore! Very Happy

So, Thank You so much for Your assistance!
We'll wait for the Nattable 1.3.0 release!

Bye!
Sergio Ferraresi & Alessandro Nasso
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1688298 is a reply to message #1688156] Fri, 20 March 2015 12:48 Go to previous messageGo to next message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Fine!

Could you do me one last favour regarding these issues?

I just pushed the changes to the repository and started a build. Could you consume the SNAPSHOT build #406 and test some situations? This would help in verifying the fixes in a finished NatTable build, so we are sure to publish the correct fixes with 1.3.0.

http://download.eclipse.org/nattable/snapshots/
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1688350 is a reply to message #1688298] Fri, 20 March 2015 14:18 Go to previous messageGo to next message
Eclipse UserFriend
Hi Dirk,
we replaced the old jars with the new ones and we didn't experience the bugs.

We will continue to use these jars and we'll tell You if we encounter other issues!
Re: Nattable 1.2.0: StackOverflowError when "Control Panel/Display text scaling" is major [message #1688383 is a reply to message #1688350] Fri, 20 March 2015 15:40 Go to previous message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2902
Registered: July 2012
Senior Member
Great! 1.3.0 is on its way. So some testing in additional environments would be of great value.
Previous Topic:Sort only specific rows in nattable
Next Topic:Upgrade to 1.2.0 from 1.0.1 - Odd behavior
Goto Forum:
  


Current Time: Fri Apr 19 10:23:30 GMT 2024

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

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

Back to the top