'No default device available' exception

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

'No default device available' exception

mikaelhc
Hi,

I have seen this this error reported by two different users of our software (which uses Jogl 2.1.2), both running MacBook Pro's:
javax.media.opengl.GLException: No default device available
at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:2066)
at javax.media.opengl.GLProfile.get(GLProfile.java:906)
at javax.media.opengl.GLProfile.getDefault(GLProfile.java:640)
at javax.media.opengl.GLProfile.getDefault(GLProfile.java:651)
The error is always encountered at initialization, when calling 'GLProfile.getDefault()'.

For the one bug-reporter I'm in contact with I have his system configuration:
It is a MacBook Pro with a AMD Radeon HD 6490M and Intel HD Graphics 3000.
Mac OS X 10.9.3 x86_64, Java 1.6.0_65, JOGL 2.1.2

The user also reported the same error after updating to a newer version of our software, using Java 1.7.0_60.

The software is known to work on many hardware / OS combination, and I cannot reproduce this behavior on the MacBook Pro's in our company.

On thing I noticed was this unexpected entry in the users log file:
Exception in thread "AWT-EventQueue-2" java.lang.NoSuchMethodError: javax.media.opengl.GLDrawableFactory.initSingleton()V
at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1573)
But it only appeared once, during what I could see was many attempts from the user to start up our software.

It should be mentioned that I do not explicitly call GLProfile.initSingleton() even though some forum posts recommend this - and it is not clear to me from the description if it is needed, or could be related to the problems.
Reply | Threaded
Open this post in threaded view
|

Re: 'No default device available' exception

gouessej
Administrator
Hi

There is a conflict with another version of JOGL installed somewhere on his machine, probably as an extension. Moreover, switch to JOGL 2.1.5-01 if you really want to benefit of our latest bug fixes. We can't help you if you use an obsolete version.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: 'No default device available' exception

mikaelhc
gouessej wrote
Hi

There is a conflict with another version of JOGL installed somewhere on his machine, probably as an extension.
Thanks for your quick response.

That was also my first thought, because of the NoSuchMethodError. So I asked to him to search for 'jogl' files on his machine using Spotlight, but besides the ones we bundle, he could not find any.

I'm not sure about how extensions work: would it possible/plausible that there was a globally installed Java extension, which contained older JOGL classes, but was packaged into a jar-file with another name than 'jogl'? How could I test this?

gouessej wrote
Moreover, switch to JOGL 2.1.5-01 if you really want to benefit of our latest bug fixes. We can't help you if you use an obsolete version.
We do update on regular intervals - but we have a half-year release cycle, and need to provide support for older versions of our software as well. So I need to understand more about what the problem is, before trying to push a JOGL update.
Reply | Threaded
Open this post in threaded view
|

Re: 'No default device available' exception

gouessej
Administrator
Look at lib/ext within the JVM. You can skip the extensions by setting java.ext.dirs to "" in JNLP (which sometimes fails to work under Mac) or in VM options when launching your application. Several years ago, Apple installed by default an obsolete version of Java3D which relies on a very old version of JOGL :s I'm sure there is a conflict because of the NoSuchMethodError.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: 'No default device available' exception

mikaelhc
Thanks Julien, I will test this!