2017-01-17 12 views
0

なぜ私の統合テストでは、オブジェクト化がクラッシュしているかテストできません。 1つずつ実行したり、デバッグしても問題ありません。オブジェクト化されたJunitの致命的なエラー

これはオブジェクト化されたコードです。

protected void before() throws Throwable { 
    original = ObjectifyService.factory(); 
    ObjectifyFactory factory = newObjectifyFactory(); 
    for (Class<?> type : register) { 
     factory.register(type); 
    } 
    ObjectifyService.setFactory(factory); 
    closeable = ObjectifyService.begin(); 
} 

protected void after() { 
    ObjectifyService.setFactory(original); 
    closeable.close(); 
} 

いくつかのテストの後、ランナーストップと私はこのメッセージを受け取ります。

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000000003, pid=15104, tid=9848 
# 
# JRE version: Java(TM) SE Runtime Environment (7.0_80-b15) (build 1.7.0_80-b15) 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.80-b11 mixed mode windows-amd64 compressed oops) 
# Problematic frame: 
# C 0x0000000000000003 
# 
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows 
# 
# An error report file with more information is saved as: Compiled method (nm) 7403 625  n  java.lang.Class::isInstance (native) total in heap [0x0000000002b4bf10,0x0000000002b4c2b8] = 936 relocation  [0x0000000002b4c030,0x0000000002b4c088] = 88 main code [0x0000000002b4c0a0,0x0000000002b4c2b8] = 536 Compiled method (c2) 7404 752    java.lang.invoke.LambdaForm$NamedFunction::invoke_L_L (28 bytes) total in heap [0x0000000002c38490,0x0000000002c38778] = 744 relocation  [enter image description here][1][0x0000000002c385b0,0x0000000002c385d0] = 32 main code [0x0000000002c385e0,0x0000000002c38660] = 128 stub code  [0x0000000002c38660,0x0000000002c38698] = 56 oops   [0x0000000002c38698,0x0000000002c386a0] = 8 scopes data [0x0000000002c386a0,0x0000000002c386e8] = 72 scopes pcs  [0x0000000002c386e8,0x0000000002c38748] = 96 dependencies [0x0000000002c38748,0x0000000002c38750] = 8 handler table [0x0000000002c38750,0x0000000002c38768] = 24 nul chk table [0x0000000002c38768,0x0000000002c38778] = 16 
+0

'newObjectifyFactory()'のコードを追加できますか? ?あなたが新工場を作成し、ここで元 –

+0

に工場をリセットするための推論何されていることは、コードです: \t保護ObjectifyFactory newObjectifyFactory(){ \t \tリターン新しいObjectifyFactory(); \t} \t しかし、これは一例です私は研究者の中でこの問題を解決しようとしています。 私がO bjectifyService.register(); 'および' ObjectifyService.begin(); '。それで十分ですが、エラーは同じです。 –

答えて

0

ここに表示されている内容は、JVMのバグです。これは可能ではありません。最新バージョンのJDKがインストールされていることを確認してください。そうであれば、実際に問題を提出できる唯一の場所はOracleです:-(

+0

ありがとう、私は理解しようとします。 今のところ、私はメモリストレージをあきらめ、LocalDatastoreServiceTestConfigをファイルのストレージに設定しました。これは問題を解決しました。 –