From: Mark M. <pat...@lm...> - 2002-03-21 19:42:32
|
After some painstaking detective work, we narrowed it down to the exact calls that make our whole application crash on Solaris (but not Windows). It was just the location of some calls to setVisible(true) for our JDialogs that hold the GL4Java displays. Don't get me wrong, I learned a while back that the GLContext is not created until the display areas are visible and realized first (a VERY annoying feature of all Java bindings of OpenGL). So, that wasn't the problem. The setVisible(true) calls were moved in location about 5 lines higher in our file, and that is what caused the crashing. Now, you would ask, "Well, what was in those 5 lines you skipped above?" Answer: a second GL4Java display and our Java3D display. So, we learned another hard lesson. Construct all your display windows (GL4Java and Java3D) including the creation of your GLCanvases *before* you make any of them visible on Solaris. Here is another piece of evidence that Solaris has problems... We also moved the setVisible(true) call for our Java3D display down 5 lines to its original location. When we do this, Solaris makes that window a Frame (when we clearly are creating a JDialog in the code). If we move the setVisible(true) back up the 5 lines, then Solaris makes it a JDialog. *LOL* We can tell because it adds the two little window buttons in the upper right on the window title bar when it is a Frame. Talk about flakey!! The code always calls for a JDialog, but moving the call to setVisible(true) on the Java3D before the GL4Java windows are setVisible(true) causes Solaris to decide it would rather give us a Frame for the Java3D window. Its hard to believe that no one else has had problems with Solaris. PS. A month back when we were struggling with this problem (one of many sessions), we got the Java compiler to crash on Solaris. We commented out one simple line in our source code, then the javac would crash every time when parsing the code. We uncomment that line, then the javac worked fine. I wouldn't have believed that one if I didn't see it with my own 2 eyes. *L* "Kenneth B. Russell" wrote: > > Already did. We're using [GL4Java] 2.8.2, and SDK 1.3.1, and > > Java3D 1.3. (We're avoiding SDK 1.4 for the moment because it > > has a serious bug when rendering images in Swing. For example, > > button images blink in-and-out, they show up of the wrong > > button sometimes, and show up in other strange places.) We're > > running on Sparc Ultra 10 with Elite 3D graphics card under > > Solaris 8. > > Frankly, combining GL4Java with Java3D sounds terrifying. You > don't know what Java3D is doing with OpenGL contexts under the > hood; I hope you're not trying to integrate too tightly with that > library. > > > > Make sure you have all of the recommended patches, especially X > > > server patches. > > > > Interesting. I'll pass this on to the sys admins. Any specific > > patch numbers you can say? > > Nothing specific. I have the recommended patch set on my machine > at work and it is completely stable. > > If you have a specific GL4Java-only test case which crashes with > multiple windows under Solaris but works under e.g., MS Windows, > send it to me and I'll try to look at it. |