2016-07-11 8 views
1

우선이 문제에 대해 많이 읽었으며 해결책을 찾지 못했습니다.분기의 스택 맵 프레임이 일치하지 않습니다. - Java8 메이븐 유닛 테스트

다른 클래스에 모의 정적 메서드를 사용하는 단위 테스트 클래스가 있습니다. 그런 다음 테스트를 실행하면 "분기 스택 프레임이 일치하지 않습니다 ..."오류가 발생합니다.

나는 모두 나를 위해 알려진 방법을 시도했다. -XX : -UseSplitVerifier 또는 -noverify params가 maven surefire 플러그인에 추가되었지만 아무 것도 잘 동작하지 않습니다. 나는 항상 같은 상태에있다.

PowerMock의 버전을 변경하려고 시도했습니다. 이전 버전과 최신 버전은 변경되지 않았습니다.

내가 사용하는 라이브러리 : PowerMockito 1.62 자바 1.8 메이븐 3.2.5

알려 주시기 바랍니다 (사용와 Javassist 3.19.0-GA 버전), Java8에서이 문제를 방지하는 방법을 어떤 작업 솔루션이 + ?

도움에 감사드립니다!

+0

'-XX : -UseSplitVerifier'가 더 이상 Java 8에서 작동하지 않습니다. 유일한 해결책은 올바른 스택 맵을 지원하는 버전으로 도구를 업데이트하는 것입니다. 10 년 동안 ... – Holger

+0

maven-surefire-plugin의 어떤 버전을 사용합니까? – khmarbaise

+0

처음에는 2.18.1이었고 마지막으로 2.19.1로 변경했습니다. 아무것도 바뀌지 않았다. – Andrew

답변

1

바이트 코드 조작 도구는 변경되는 코드의 스택 맵 프레임을 업데이트해야합니다. 그렇지 않은 경우 VerifierError이 발생합니다. 이전의 검증 자()를 요구하여 스택 맵 프레임의 유효성을 비활성화하는 것은 Java 8에서 더 이상 지원되지 않습니다.

Javassist에서 스택 맵 프레임을 인식하고 잘못 매핑 한 버그를 발견했다고 가정합니다. 라이브러리 the latest version으로 업데이트 해보세요. 그래도 문제가 해결되지 않으면 오류를 재현하고 버그를 신고하십시오.