February 01, 2011
Mark Wielaard: New GPG key.
Finally created a new GPG key using gnupg. The old one was a DSA/1024 bits one and 8 years old. The new one is a RSA/2048 bits one. I will use the new one in the future to sign any release tarballs I might create. pub 2048R/57816A6A 2011-01-29 Key f...
More »
February 01, 2011
Andrew Hughes: [SECURITY] IcedTea6 1.7.8, 1.8.5, 1.9.5 Released!.
We are pleased to announce a new set of security releases, IcedTea6 1.7.8, IcedTea6 1.8.5 and IcedTea6 1.9.5.
This update contains the following security updates:
The IcedTea project provides a harness to build the source code from OpenJDK6 u...
More »
December/2024
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
|
|
Multithreaded JNI Issues
Blue sky, 25°C, the ideal weather to solve strange JNI problems. So I spent another valueable free day to solve on of the mysteries of mankind: Why is my ShellExtension crashing? (For those who do not know what a Shell Extension is: In short you could say it is a custom icon in the Windows File Explorer, and I want to have it implemented in Java using JNI).
Everytime XP's Windows Explorer unloads and reloads my DLL (what happens quite often since the explorer seems to be instructed to free as much available memory as possible; I wonder why it not already had a heart stroke of all the stress it makes, looking at the log files) JNI crashs down. In fact I do not understand why. All it does is creating a Java VM using JNI, and in fact, the code is right (otherwise it would not run for the first time, too). So I logged a lot and drilled down to the core of the problem, and here is the result. If you ever want to use JNI, I hope you will remember this:
In fact, the JNI documentation is wrong. It currently says, a process can only created one JVM. In fact that is not really wrong (if you try it a second time, it will crash actually). But they forgot to tell you: You even cannot destroy your JVM and create it again. So actually the documentation should say: "A process can call JNI_CreateJavaVM only once.". In fact, that is what it works like. Sad, ...
Date: January, 03 2010
Url: http://www.java.net/blog/mkarg/archive/2010/01/03/multithreaded-jni-issues
Others News
|