2016-07-08 12 views
0

현재 테라코타를 사용하는 jdk7에서 jdk8로 maven java 코드를 이동했지만 제대로 작동했지만 jdk8로 변경 한 후 테스트 케이스 실패하고있다. 다음과 같은 오류가 발생하고 검색을 통해 단서를 얻지 못했습니다. 코멘트 중 하나에 명시된 바와 같이 java.lang.ArrayIndexOutOfBoundsException이있는 테스트 케이스 실패 : 28526 (JDK 8 및 테라코타 포함)

java.lang.ArrayIndexOutOfBoundsException: 28526 
at com.tc.asm.ClassReader.readClass(ClassReader.java:2015) 
at com.tc.asm.ClassReader.getClassName(ClassReader.java:229) 
at com.tc.aspectwerkz.reflect.impl.asm.AsmClassInfo.getClassInfo(AsmClassInfo.java:305) 
at com.tc.aspectwerkz.reflect.impl.asm.AsmClassInfo.createClassInfoFromStream(AsmClassInfo.java:717) 
at com.tc.aspectwerkz.reflect.impl.asm.AsmClassInfo.getClassInfo(AsmClassInfo.java:256) 
at com.tc.aspectwerkz.reflect.impl.asm.AsmClassInfo.getInterfaces(AsmClassInfo.java:558) 
at com.tc.aspectwerkz.expression.regexp.TypePattern.matchInterfaces(TypePattern.java:147) 
at com.tc.aspectwerkz.expression.regexp.TypePattern.matchInterfaces(TypePattern.java:147) 
at com.tc.aspectwerkz.expression.regexp.TypePattern.matchSuperClasses(TypePattern.java:120) 
at com.tc.aspectwerkz.expression.regexp.TypePattern.matchType(TypePattern.java:92) 
at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:437) 
at com.tc.aspectwerkz.expression.ast.ASTClassPattern.jjtAccept(ASTClassPattern.java:24) 
at com.tc.aspectwerkz.expression.ExpressionVisitor.visitAnnotatedNode(ExpressionVisitor.java:1016) 
at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:237) 
at com.tc.aspectwerkz.expression.ast.ASTWithin.jjtAccept(ASTWithin.java:22) 
at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:100) 
at com.tc.aspectwerkz.expression.ast.ASTExpression.jjtAccept(ASTExpression.java:22) 
at com.tc.aspectwerkz.expression.ExpressionVisitor.visit(ExpressionVisitor.java:88) 
at com.tc.aspectwerkz.expression.ExpressionVisitor.match(ExpressionVisitor.java:74) 
at com.tc.object.config.ClassExpressionMatcherImpl.match(ClassExpressionMatcherImpl.java:24) 
at com.tc.object.config.CompoundExpressionMatcher.match(CompoundExpressionMatcher.java:18) 
at com.tc.object.config.StandardDSOClientConfigHelperImpl.shouldBeAdapted(StandardDSOClientConfigHelperImpl.java:1242) 
at com.tc.object.bytecode.hook.impl.DefaultWeavingStrategy.transformInternal(DefaultWeavingStrategy.java:184) 
at com.tc.object.bytecode.hook.impl.DefaultWeavingStrategy.transform(DefaultWeavingStrategy.java:134) 
at com.tc.object.bytecode.hook.impl.DSOContextImpl.preProcess(DSOContextImpl.java:288) 
at com.tc.object.bytecode.hook.impl.DSOContextImpl.transform(DSOContextImpl.java:392) 
at org.terracotta.express.ClusteredStateLoader.transform(ClusteredStateLoader.java:124) 
at org.terracotta.express.ClusteredStateLoader.loadClass(ClusteredStateLoader.java:83) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory$1.call(TerracottaClusteredInstanceFactory.java:319) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory$1.call(TerracottaClusteredInstanceFactory.java:317) 
at org.terracotta.api.Terracotta.lookupOrCreateRoot(Terracotta.java:47) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.getStoreRoot(TerracottaClusteredInstanceFactory.java:316) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.getStoreMapForCacheManager(TerracottaClusteredInstanceFactory.java:77) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.getOrCreateStore(TerracottaClusteredInstanceFactory.java:68) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.createStore(TerracottaClusteredInstanceFactory.java:64) 
at net.sf.ehcache.terracotta.StandaloneTerracottaClusteredInstanceFactory.createStore(StandaloneTerracottaClusteredInstanceFactory.java:40) 

당신

+0

aspectwerkz.expression.regexp.TypePattern.matchInterfaces (TypePattern.java:147)와 같이 잘못된 일치 패턴이있는 것처럼 보입니다. 설정에서 나온 것처럼 보이는 경우 : StandardDSOClientConfigHelperImpl, 이것이 유일한 방법입니다. 주기. 추가 정보 필요 – Destrif

+0

응답 해 주셔서 감사합니다. 이클립스에서 성능 테스트 케이스를 실행하고이 예외가 발생하면 다른 정보가 필요한지 알려주십시오. – user2183017

+0

테라코타 버전을 Java 8 호환 버전으로 업데이트하겠습니다. 첫 번째 Google Hit : http://forums.terracotta.org/forums/posts/list/11437.page (3.7.7 ~ 3.7.10 사이의 고정 된 위치) – Holger

답변

0

감사, 테라코타 3.4.0 자바 8 호환 및 이전 테라코타 버전이 작동하는 방식 주어지지 않는다, 이것은 놀라운 일이 아니다.

Java 8을 지원해야하는 경우 later version으로 업데이트해야합니다.

정확한 버전은 테라코타의 용도에 따라 달라집니다. DSO 지원이 필요한 경우 3.7.x 라인을 고수해야합니다. Ehcache 지원의 경우 4.3.x 줄에서 최신 버전으로 업그레이드하는 것이 좋습니다.