--- old/modules/javafx.graphics/src/main/native-glass/gtk/GlassTimer.cpp 2016-09-05 14:04:49.379942400 +0300 +++ new/modules/javafx.graphics/src/main/native-glass/gtk/GlassTimer.cpp 2016-09-05 14:04:49.154413800 +0300 @@ -79,8 +79,18 @@ return FALSE; } else if (context->runnable) { - mainEnv->CallVoidMethod(context->runnable, jRunnableRun, NULL); - LOG_EXCEPTION(mainEnv); + JNIEnv *env; + int envStatus = javaVM->GetEnv((void **)&env, JNI_VERSION_1_6); + if (envStatus == JNI_EDETACHED) { + javaVM->AttachCurrentThread((void **)&env, NULL); + } + + env->CallVoidMethod(context->runnable, jRunnableRun, NULL); + LOG_EXCEPTION(env); + + if (envStatus == JNI_EDETACHED) { + javaVM->DetachCurrentThread(); + } } return TRUE; }