Unable to Resolve UnsafeAccess

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

Unable to Resolve UnsafeAccess

drakoskai
Hello, I've been working with Maven and Gluegen and I can't seem to resolve the symbol "UnsafeAccess" in the  com.sun.gluegen.runtime.BufferFactoryInternal.java.  Is there some sort of code generation or library I'm missing?

thanks!
Reply | Threaded
Open this post in threaded view
|

Re: Unable to Resolve UnsafeAccess

gouessej
Administrator
Hi

In fact, GlueGen's purpose is to generate JNI code

Maybe use it without Maven first.

Edit.: com.sun.gluegen.runtime comes from an extremely old version of GlueGen that was used with JOGL 1. We only maintain JOGL 2.x.

Edit.2: This class is there now:
https://github.com/sgothel/gluegen/blob/master/src/java/com/jogamp/gluegen/runtime/BufferFactoryInternal.java
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Unable to Resolve UnsafeAccess

drakoskai
Understood.  
Unfortunately my legacy code requires jogl 1.1.2-ish and  I'm not authorized to update that part, company politics ect... I'm going to infer from your statement that class I'm looking for is generated by the native compile?  So based on that assumption my course of action will be to encapsulate the natives as an artifact and have that build out.  Then, have this source depend on that artifact.  

Thanks!
Reply | Threaded
Open this post in threaded view
|

Re: Unable to Resolve UnsafeAccess

gouessej
Administrator
I'm really sorry and JOGL 1.1.2 is something a bit mysterious for me, I only found its JARs in Ardor3D just before porting this engine to JOGL 2. On Github, there is a branch with the source code of JOGL 1.1.1 but not the one of JOGL 1.1.2 and I fear that nobody will really be able to help you. As far as I know, maybe Wade Walker would be able to build JOGL 1.1.1. If your company politics consist in using unmaintainable piece of software whose source code is currently unavailable, it is coherent
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Unable to Resolve UnsafeAccess

Wade Walker
Administrator
In reply to this post by drakoskai
Maybe you're using a very new version of Java that doesn't allow the sun.misc.Unsafe import? I founds some mention around the web that this doesn't work anymore, but I've compiled gluegen and jogl (2.x) just recently with a relatively new Java 7.x, and it still works. Or maybe you're using a non-Oracle/Sun JRE?
Reply | Threaded
Open this post in threaded view
|

Re: Unable to Resolve UnsafeAccess

gouessej
Administrator
sun.misc.Unsafe is in OpenJDK but not in Harmony. It will be removed only in Java 1.9 and only when there is a public API to replace it as far as I know.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Unable to Resolve UnsafeAccess

drakoskai
In reply to this post by gouessej
I was able to resolve it. It turns out that UnsafeAccess is a Private class in Unsafe so I just added some code to the factory class to get at it using reflection.  probably not the best solution but it compiles.  Currently I'm working on configuring the native maven plugin to properly build the natives but I'm a java developer and I haven't look at C code since my Junior year in college. Needless to say I don't have much C/C++ build pattern knowledge so I'm working on that.


Anyway, thanks for the help :)

I decided to build this in a personal project outside of work and upload it to git.

https://github.com/Drakoskai/massive-ninja/blob/master/WorldWind_1.5.1/gluegen/gluegen-rt/src/main/java/com/sun/gluegen/runtime/BufferFactoryInternal.java

https://github.com/Drakoskai/massive-ninja/tree/master/WorldWind_1.5.1/gluegen