Запуск leveldb с JNI приводит к сбою Java 11 с 0xC00000F1

Я получил проблему, связанную с Java 11 и сбоем моего программного обеспечения ( https://github.com/GoMint/GoMint/issues/390). В результате расследования я обнаружил, что моя JNI-привязка leveldb вызывает этот сбой:

Код этой библиотеки: https://github.com/Mojang/leveldb-mcpe/blob/master/util/env_win.cc#L603

static INIT_ONCE g_InitOnce = INIT_ONCE_STATIC_INIT;
static Env* default_env;
static BOOL CALLBACK InitDefaultEnv(PINIT_ONCE InitOnce,
    PVOID Parameter,
    PVOID *lpContext) {
    ::memset(global_read_only_buf, 0, sizeof(global_read_only_buf));
    default_env = new WinEnv;
    return TRUE;
}

Env* Env::Default() {
    PVOID lpContext;
    InitOnceExecuteOnce(&g_InitOnce,          // One-time initialization structure
        InitDefaultEnv,   // Pointer to initialization callback function
        NULL,                 // Optional parameter to callback function (not used)
        &lpContext);          // Receives pointer to event object stored in g_InitOnce

    return default_env;
}

Из-за кода ошибки MS Docs говорит, что в позиции 3 указан недопустимый параметр, который будет равен NULL.

Что меня интересует, так это то, что этот код работает с Java 8 и до сих пор не менялся.

При необходимости этот Jenkins предоставляет сборки аварийного программного обеспечения: http://ci.gomint.io/job/GoMint/job/master/

0 ответов

Другие вопросы по тегам