Opensuse: slider tab in Object Properties does not work

kflorek46 shared this problem 7 years ago
Solved

With the Object Properties window open, clicking on the Slider tab does not do anything. It just displays whatever the previously selected tab was; no update. The same thing for the Advanced tab. This is the same with any ggb file that has a number so there is a slider tab. There are window updating problems when resizing this window (pieces missing, pieces in the wrong place), but they seem to cure themselves after you click things that update the window.


If you click the thing that integrates this into the main window, sometimes the slider and avanced tabs do work, but then they sometimes quit working.


This is on OpenSuse Leap 42.1 (the current version). The GeoGebra version reported is 5.0.226.0-3D (Java1.7.0_45-64bit, 910MB, Giac/JNI) , the current version. GeoGebra was installed using the rpm from your site, which also installs a repo to update with. The problem has been the same for the earlier 5.0.x versions since I've installed it.


On Ubuntu, which I also have, there is no such problem, so this is not a critical problem for me.

Best Answer
photo

Birgit, if you want to try this, it worked for me. At a command prompt, type


geogebra -JavaCMD=/usr/bin/java


What this does in my case is substitute a different java version (1.8.0_77-64bit), which is later, for the one included with GeoGebra. The version will appear as it starts up, so you can check that it is later than what GeoGebra includes. This is the version OpenSuse Leap 42.1 considers the current one.


All problems with crazy property screens and resizing have disappeared. Everything looks fine.


Thanks for your encouraging comments, because I was not the only one.


And thankfully I didn't have to completely reinstall OpenSuse!

Comments (11)

photo
1

Hi ... I'm an OpenSuse User, too.

I ever had exanctly the same problem like you but I have graphic update problems happens vers often. May be ... I was already searching a longer time ago ... it is for my Laptop a problem with the AMD graphic device driver. It seems to be a known bug that the Java GUIs are not always shown correctly all the time. As said before, I did not have problems with the slider tab but everytime with the properties window to change the GUI properties.


It is interessting that you don't have problem within Ubuntu.


But I don't think it is a problem with GeoGebra!


Or does anyone know anything else about that ;-)

photo
1

I did some more experiments. Once you select the slider tab (even though it seems to do nothing), if you click at a spot where there would be something to enter (although you can't see it) a small area updates, and you can enter something and have it take effect. The rest of the window is a remnant of whatever tab you clicked previously. What this means is that the problem is entirely visual. The GeoGebra people could say it is not their fault, and be right.


But in fact the other tabs do work OK visually, so if the visual update was done that way for the Slider and Advanced tabs, they could work OK as well. It might be a good thing to do all the tabs the same way anyway.


The Java people could say it is not their fault. And the radeon people could say it is not their fault. Everybody could say it is not their fault, and be right. But I think I have a much bigger chance of getting this fixed with the GeoGebra people rather than the Java people or the radeon people.


I am using the open source radeon (AMD) driver in both the current OpenSuse (Leap 42.1) and in the current Ubuntu (Wiley 15.10), but of course the drivers and the kernel are not the same versions. And the two distros customize their versions with their own patches. And in fact there are many different chips the radeon driver detects, and the driver does not do everything the same for all the chips.


I have a very high opinion of GeoGebra. The capabilities of GeoGebra are possibly the most amazing I have ever seen. I have been spending most of my time in the last several weeks figuring out how to do things I have always wanted to do, and succeeding, gradually. Without seeing how it is done, the magic is very hard to figure out. What I do is look at how other people have done things by examining the ggb files, behind the scenes, in GeoGebra. Being able to see the tabs makes it possible to see what other people did.

photo
1

As it only happens in OpenSuse, even if I use the closed source driver (my husband told me this), I think it is a problem of OpenSuse with Java. Because I know this problem from another Jav software, too. It's called Molecular Workbench http://mw.concord.org/modeler/


I have excactly the same problem, that only a part of the window becomes updated and then visible. No one else had the same problems like me ... now I'm not any more alone ;-)

photo
1

Birgit, I know you said the closed source driver (fglrx) didn't make any difference, but I wanted to try it anyway. It didn't make any difference. Therefore it is most likely not a video driver problem.


Next, I tried an old GeoGebra version (4.4.5), which is the one in the standard OpenSuse repository, and it has the same problem.


I tried Geogebra in Fedora 23, and it works fine.


While running Ubuntu, I tried GeoGebra in a VirtualBox virtual machine running OpenSuse and it works fine. That means it is not a problem between OpenSuse and Java.


Next, I tried the portable version of GeoGebra, so I could compare a completely identical version in OpenSuse and Ubuntu. When you start GeoGebra from a command prompt, you see error reports.

At the point where the error occurs (with OpenSuse), there is no error reported by Ubuntu. But in OpenSuse this is what you get:


Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -35127198

at sun.font.FileFontStrike.getCachedGlyphPtr(Unknown Source)

at sun.font.FileFontStrike.getSlot0GlyphImagePtrs(Unknown Source)

at sun.font.CompositeStrike.getGlyphImagePtrs(Unknown Source)

at sun.font.GlyphList.mapChars(Unknown Source)

at sun.font.GlyphList.setFromString(Unknown Source)

at sun.java2d.pipe.GlyphListPipe.drawString(Unknown Source)

at sun.java2d.pipe.ValidatePipe.drawString(Unknown Source)

at sun.java2d.SunGraphics2D.drawString(Unknown Source)

at sun.swing.SwingUtilities2.drawString(Unknown Source)

at sun.swing.SwingUtilities2.drawStringUnderlineCharAt(Unknown Source)

at javax.swing.plaf.basic.BasicLabelUI.paintEnabledText(Unknown Source)

at javax.swing.plaf.basic.BasicLabelUI.paint(Unknown Source)

at javax.swing.plaf.ComponentUI.update(Unknown Source)

at javax.swing.JComponent.paintComponent(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.CellRendererPane.paintComponent(Unknown Source)

at javax.swing.plaf.basic.BasicComboBoxUI.paintCurrentValue(Unknown Source)

at javax.swing.plaf.metal.MetalComboBoxUI.paintCurrentValue(Unknown Source)

at javax.swing.plaf.basic.BasicComboBoxUI.paint(Unknown Source)

at javax.swing.plaf.metal.MetalComboBoxUI.paint(Unknown Source)

at javax.swing.plaf.ComponentUI.update(Unknown Source)

at javax.swing.JComponent.paintComponent(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JViewport.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintChildren(Unknown Source)

at javax.swing.JComponent.paint(Unknown Source)

at javax.swing.JComponent.paintToOffscreen(Unknown Source)

at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)

at javax.swing.RepaintManager.paint(Unknown Source)

at javax.swing.JComponent._paintImmediately(Unknown Source)

at javax.swing.JComponent.paintImmediately(Unknown Source)

at javax.swing.RepaintManager$3.run(Unknown Source)

at javax.swing.RepaintManager$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)

at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)

at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)

at javax.swing.RepaintManager.access$1100(Unknown Source)

at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

at java.awt.EventQueue.access$200(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.awt.EventQueue$3.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)


What I did was click a Slider tab when this happens. If you continue clicking other numbers that have a Slider tab, you get the following:


20:41:56.210 DEBUG: org.geogebra.common.i.a.b.a.E.a[-1]: geo0 = β = 2.7, lineTypeEnabled=true

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException


There should never be any indexes out of bounds. Which shows there is in fact an error in the code. An out of bounds index is a programming error. Normally an array index is not a negative number (-35127198). Possibly GeoGebra is expecting something from OpenSuse that is not present, perhaps a font, since "font" is mentioned. But it could be anything. Why this is different than under Ubuntu, only the programmer can guess.

photo
1

I'm not a programmer ...

but I use GeoGebra since a long time and you are the first who is describing the same problem.

photo
2

Birgit, if you want to try this, it worked for me. At a command prompt, type


geogebra -JavaCMD=/usr/bin/java


What this does in my case is substitute a different java version (1.8.0_77-64bit), which is later, for the one included with GeoGebra. The version will appear as it starts up, so you can check that it is later than what GeoGebra includes. This is the version OpenSuse Leap 42.1 considers the current one.


All problems with crazy property screens and resizing have disappeared. Everything looks fine.


Thanks for your encouraging comments, because I was not the only one.


And thankfully I didn't have to completely reinstall OpenSuse!

photo
photo
1

> there is in fact an error in the code


If you look at the stacktrace it looks like a problem in the Java JRE not GeoGebra

photo
1

OK. Thanks. I am not a real programmer. I have had to learn some programming for my own use. "AWT-EventQueue-0" doesn't mean anything to me.


As far as I can tell, GeoGebra is self-contained, includes its own JRE, and uses that. Is there some way to substitute a different JRE? I imagine that will be worse, which is probably why programs like to include their own. But at least it might give me a hint what is missing in my OpenSuse setup.


My OpenSuse has been upgraded over many versions over many years. I still haven't tried old versions of OpenSuse or a from-scratch install (except in VirtualBox). Usually I have to spend a few weeks tracking down why several things don't work (like the Internet connection) after a fresh Linux install, except in VirtualBox. I am fairly sure that I could run another version of OpenSuse in VirtualBox within OpenSuse, and GeoGebra would work fine, for example. I once could not get an Internet connection except in the same version of Linux within itself, in VirtualBox, both fresh installs. So I am not at all a fan of fresh installs. I like to track down problems to cure them.

photo
1

I googled the error:


Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -35127198


And it is just the error report you get whenever you write a Java program and make a bounds mistake in your Java code. In other words, there is a mistake in GeoGebra which is written in Java. Usually the programmer's mistake puts the index one step beyond the bounds. I couldn't find one where they made a mistake so bad the index came out negative. It shouldn't be that hard to figure out.


But somebody else is writing the program, and I'm not paying, so if they don't want to fix it, they are entitled to do whatever they want.


The way I got into this is by the Bug Report selection on the Help menu. If GeoGebra doesn't want bug reports or doesn't want to fix them, just remove this from the menu, and you won't have people bothering you.

photo
photo
1

Hi, thank you for your comment.

I have the very same problem. Tried the solution with -JavaCMD and it worked.


Bye, Frank

photo
1

Yes ... It's strange but it works for me, too :-)

© 2023 International GeoGebra Institute