Как правильно издеваться над GSSManager?

Я хочу издеваться над GSSManager для модульного тестирования с использованием Powermock. Это не удалось, когда я сделал mockStatic(GSSManager.class) из-за этой ошибки:

java.lang.VerifyError: Bad return type
Exception Details:
  Location:
    org/ietf/jgss/GSSManager.getInstance()Lorg/ietf/jgss/GSSManager; @157: areturn
  Reason:
    Type 'sun/security/jgss/GSSManagerImpl' (current frame, stack[0]) is not assignable to 'org/ietf/jgss/GSSManager' (from method signature)
  Current Frame:
    bci: @157
    flags: { }
    locals: { 'java/lang/Object', null, 'sun/security/jgss/GSSManagerImpl', 'java/lang/Object' }
    stack: { 'sun/security/jgss/GSSManagerImpl' }

Я не могу понять почему. GetInstance в GSSManager возвращает новый GSSManagerImpl

Я думаю, что это может быть ошибка связи:

java.lang.LinkageError: loader constraint violation: when resolving overridden method "sun.security.jgss.GSSManagerImpl$$EnhancerByCGLIB$$3bcb7afc.getMechs()[Lorg/ietf/jgss/Oid;" the class loader (instance of org/powermock/core/classloader/MockClassLoader) of the current class, sun/security/jgss/GSSManagerImpl$$EnhancerByCGLIB$$3bcb7afc, and its superclass loader (instance of <bootloader>), have different Class objects for the type [Lorg/ietf/jgss/Oid; used in the signature

0 ответов

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