bytebuddy error-java.lang.IllegalStateException: Unexpected complex array component type boolean #725

Closed
@zheyiyi

Description

I instrument this function but it show the following error

package com.att.brandservices.shared.supporting.storage.cassandra.accessors;
import com.att.brandservices.shared.supporting.model.lookup.RewardByPayoutDate;
import com.datastax.driver.mapping.Result;
import com.datastax.driver.mapping.annotations.Accessor;
import com.datastax.driver.mapping.annotations.Query;
import com.datastax.driver.mapping.annotations.QueryParameters;
import java.time.LocalDate; 
@Accessor
public interface RewardByPayoutDateAccessor {
@Query("SELECT * FROM lookup_reward_by_payout WHERE payout = :payoutDate and actor = :actor")
@QueryParameters(consistency = "LOCAL_QUORUM")
Result<RewardByPayoutDate> getAll(LocalDate payoutDate, String actor);
@Query("DELETE FROM lookup_reward_by_payout WHERE payout = :payoutDate and actor = :actor and rewardid = :rewardid")
@QueryParameters(consistency = "LOCAL_QUORUM")
Result<RewardByPayoutDate> delete(LocalDate payoutDate, String actor, String rewardid);

My instrumentation is

            defaultAgent = defaultAgent.type(ElementMatchers.isInterface().and(ElementMatchers.named("com.att.brandservices.shared.supporting.storage.cassandra.accessors.RewardByPayoutDateAccessor")))
            .transform(new AgentBuilder.Transformer.ForAdvice()
                    .include(CassandraInterceptor.class.getClassLoader())
                    .advice(ElementMatchers.isMethod().and(ElementMatchers.nameContains("getAll")),
                            (CassandraInterceptor.class.getName())));

My interceptor is :

public class CassandraInterceptor {
@Advice.OnMethodEnter
private static void before(@Advice.Origin Method method, @Advice.AllArguments Object[] allArguments){
@Advice.OnMethodExit
static void exit(@Advice.Origin Method method) {
[Byte Buddy] ERROR com.att.brandservices.shared.supporting.storage.cassandra.accessors.RewardByPayoutDateAccessor [sun.misc.Launcher$AppClassLoader@18b4aac2, null, loaded=false]
java.lang.IllegalStateException: Unexpected complex array component type boolean
	at net.bytebuddy.pool.TypePool$AbstractBase$RawDescriptionArray.resolve(TypePool.java:881)
	at net.bytebuddy.pool.TypePool$AbstractBase$RawDescriptionArray.hashCode(TypePool.java:904)
	at net.bytebuddy.description.annotation.AnnotationDescription$AbstractBase.hashCode(AnnotationDescription.java:513)
	at java.util.AbstractList.hashCode(AbstractList.java:541)
	at net.bytebuddy.description.method.MethodDescription$Token.hashCode(MethodDescription.java:1943)
	at java.util.HashMap.hash(HashMap.java:339)
	at java.util.HashMap.containsKey(HashMap.java:596)
	at java.util.HashSet.contains(HashSet.java:204)
	at net.bytebuddy.dynamic.scaffold.inline.RebaseDynamicTypeBuilder$RebaseableMatcher.matches(RebaseDynamicTypeBuilder.java:273)
	at net.bytebuddy.dynamic.scaffold.inline.RebaseDynamicTypeBuilder$RebaseableMatcher.matches(RebaseDynamicTypeBuilder.java:241)
	at net.bytebuddy.matcher.FilterableList$AbstractBase.filter(FilterableList.java:125)
	at net.bytebuddy.dynamic.scaffold.inline.RebaseDynamicTypeBuilder.make(RebaseDynamicTypeBuilder.java:216)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple$Resolution.apply(AgentBuilder.java:10050)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doTransform(AgentBuilder.java:10469)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:10432)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1500(AgentBuilder.java:10198)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:10807)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:10754)
	at java.security.AccessController.doPrivileged(Native Method)
	at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:10355)
	at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
	at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at com.att.brandservices.shared.supporting.service.RewardPayout.applyPayout(RewardPayout.java:121)
	at com.att.brandservices.shared.supporting.service.RewardPayout.applyPayout(RewardPayout.java:102)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
	at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)