{"action":"created","issue":{"url":"https://api.github.com/repos/changmingxie/tcc-transaction/issues/20","repository_url":"https://api.github.com/repos/changmingxie/tcc-transaction","labels_url":"https://api.github.com/repos/changmingxie/tcc-transaction/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/changmingxie/tcc-transaction/issues/20/comments","events_url":"https://api.github.com/repos/changmingxie/tcc-transaction/issues/20/events","html_url":"https://github.com/changmingxie/tcc-transaction/issues/20","id":167189821,"number":20,"title":"更新到1.1.2版报错，感觉是新增的序列化有问题","user":{"login":"weldon01","id":19607330,"avatar_url":"https://avatars.githubusercontent.com/u/19607330?v=3","gravatar_id":"","url":"https://api.github.com/users/weldon01","html_url":"https://github.com/weldon01","followers_url":"https://api.github.com/users/weldon01/followers","following_url":"https://api.github.com/users/weldon01/following{/other_user}","gists_url":"https://api.github.com/users/weldon01/gists{/gist_id}","starred_url":"https://api.github.com/users/weldon01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weldon01/subscriptions","organizations_url":"https://api.github.com/users/weldon01/orgs","repos_url":"https://api.github.com/users/weldon01/repos","events_url":"https://api.github.com/users/weldon01/events{/privacy}","received_events_url":"https://api.github.com/users/weldon01/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-23T15:47:58Z","updated_at":"2016-07-24T13:29:22Z","closed_at":null,"body":"[ERROR][20160723 23:38:06,215][TransactionManager:102] compensable transaction confirm failed.\r\norg.mengyun.tcctransaction.SystemException: java.lang.reflect.InvocationTargetException\r\n        at org.mengyun.tcctransaction.Terminator.invoke(Terminator.java:89)\r\n        at org.mengyun.tcctransaction.Terminator.commit(Terminator.java:49)\r\n        at org.mengyun.tcctransaction.Participant.commit(Participant.java:46)\r\n        at org.mengyun.tcctransaction.Transaction.commit(Transaction.java:136)\r\n        at org.mengyun.tcctransaction.TransactionManager.commit(TransactionManager.java:99)\r\n        at org.mengyun.tcctransaction.interceptor.CompensableTransactionInterceptor.rootMethodProceed(CompensableTransactionInterceptor.java:86)\r\n        at org.mengyun.tcctransaction.interceptor.CompensableTransactionInterceptor.interceptCompensableMethod(CompensableTransactionInterceptor.java:51)\r\n        at org.mengyun.tcctransaction.spring.TccCompensableAspect.interceptCompensableMethod(TccCompensableAspect.java:49)\r\n        at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n        at java.lang.reflect.Method.invoke(Method.java:606)\r\n        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)\r\n        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)\r\n        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)\r\n        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633)\r\n        at com.xxx.service.trade.impl.PaymentManagerImpl$$EnhancerBySpringCGLIB$$603ab65b.completeOrder(<generated>)\r\n        at com.xxx.service.trade.aip.impl.PaymentManagerServiceImpl.completePay(PaymentManagerServiceImpl.java:267)\r\n        at com.xxx.service.trade.aip.impl.PaymentManagerServiceImpl$$FastClassBySpringCGLIB$$abb72538.invoke(<generated>)\r\n        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)\r\n        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)\r\n        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)\r\n        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)\r\n        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)\r\n        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633)\r\n        at com.xxx.service.trade.aip.impl.PaymentManagerServiceImpl$$EnhancerBySpringCGLIB$$dfa1887b.completePay(<generated>)\r\n        at com.alibaba.dubbo.common.bytecode.Wrapper7.invokeMethod(Wrapper7.java)\r\n        at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)\r\n        at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)\r\n        at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)\r\n        at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)\r\n        at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)\r\n        at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)\r\n        at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)\r\n        at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)\r\n        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\r\n        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\r\n        at java.lang.Thread.run(Thread.java:744)\r\nCaused by: java.lang.reflect.InvocationTargetException\r\n        at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)\r\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n        at java.lang.reflect.Method.invoke(Method.java:606)\r\n        at org.mengyun.tcctransaction.Terminator.invoke(Terminator.java:86)\r\n        ... 57 more\r\nCaused by: java.lang.RuntimeException: org.mengyun.tcctransaction.repository.TransactionIOException: java.lang.IndexOutOfBoundsException: Index: 186, Size: 38\r\norg.mengyun.tcctransaction.repository.TransactionIOException: java.lang.IndexOutOfBoundsException: Index: 186, Size: 38\r\n        at org.mengyun.tcctransaction.repository.JdbcTransactionRepository.doFind(JdbcTransactionRepository.java:245)\r\n        at org.mengyun.tcctransaction.repository.JdbcTransactionRepository.doFindOne(JdbcTransactionRepository.java:153)\r\n        at org.mengyun.tcctransaction.repository.CachableTransactionRepository.findByXid(CachableTransactionRepository.java:77)\r\n        at org.mengyun.tcctransaction.TransactionManager.propagationExistBegin(TransactionManager.java:72)\r\n        at org.mengyun.tcctransaction.interceptor.CompensableTransactionInterceptor.providerMethodProceed(CompensableTransactionInterceptor.java:109)\r\n        at org.mengyun.tcctransaction.interceptor.CompensableTransactionInterceptor.interceptCompensableMethod(CompensableTransactionInterceptor.java:54)\r\n        at org.mengyun.tcctransaction.spring.TccCompensableAspect.interceptCompensableMethod(TccCompensableAspect.java:49)\r\n        at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)\r\n        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n        at java.lang.reflect.Method.invoke(Method.java:606)\r\n        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)\r\n        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)\r\n        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)\r\n        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)\r\n        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633)\r\n        at com.xxx.service.point.aip.impl.AccountServiceImpl$$EnhancerBySpringCGLIB$$95cd7c66.creditToPointAccountTcc(<generated>)\r\n        at com.alibaba.dubbo.common.bytecode.Wrapper0.invokeMethod(Wrapper0.java)\r\n        at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)\r\n        at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)\r\n        at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)\r\n        at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)\r\n        at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)\r\n        at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)\r\n        at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)\r\n        at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)\r\n        at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)\r\n        at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)\r\n        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\r\n        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\r\n        at java.lang.Thread.run(Thread.java:744)\r\nCaused by: java.lang.IndexOutOfBoundsException: Index: 186, Size: 38\r\n        at java.util.ArrayList.rangeCheck(ArrayList.java:635)\r\n        at java.util.ArrayList.get(ArrayList.java:411)\r\n        at com.esotericsoftware.kryo.util.MapReferenceResolver.getReadObject(MapReferenceResolver.java:60)\r\n        at com.esotericsoftware.kryo.Kryo.readReferenceOrNull(Kryo.java:857)\r\n        at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:707)\r\n        at org.mengyun.tcctransaction.serializer.KryoTransactionSerializer.deserialize(KryoTransactionSerializer.java:44)\r\n        at org.mengyun.tcctransaction.serializer.KryoTransactionSerializer.deserialize(KryoTransactionSerializer.java:17)\r\n        at org.mengyun.tcctransaction.repository.JdbcTransactionRepository.doFind(JdbcTransactionRepository.java:241)\r\n        ... 43 more\r\n\r\n        at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:108)\r\n        ... 23 more"},"comment":{"url":"https://api.github.com/repos/changmingxie/tcc-transaction/issues/comments/234777460","html_url":"https://github.com/changmingxie/tcc-transaction/issues/20#issuecomment-234777460","issue_url":"https://api.github.com/repos/changmingxie/tcc-transaction/issues/20","id":234777460,"user":{"login":"changmingxie","id":4179031,"avatar_url":"https://avatars.githubusercontent.com/u/4179031?v=3","gravatar_id":"","url":"https://api.github.com/users/changmingxie","html_url":"https://github.com/changmingxie","followers_url":"https://api.github.com/users/changmingxie/followers","following_url":"https://api.github.com/users/changmingxie/following{/other_user}","gists_url":"https://api.github.com/users/changmingxie/gists{/gist_id}","starred_url":"https://api.github.com/users/changmingxie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/changmingxie/subscriptions","organizations_url":"https://api.github.com/users/changmingxie/orgs","repos_url":"https://api.github.com/users/changmingxie/repos","events_url":"https://api.github.com/users/changmingxie/events{/privacy}","received_events_url":"https://api.github.com/users/changmingxie/received_events","type":"User","site_admin":false},"created_at":"2016-07-24T13:29:22Z","updated_at":"2016-07-24T13:29:22Z","body":"@weldon01 \r\nKryo 在序列化和反序列化方面还有些限制，如序列化类型必须有默认构造函数；可以选择使用JDK 的序列化机制，在SpringJdbcTransactionRepository中选择JdkSerializationSerializer类型的序列化，如下：\r\n\r\n <bean id=\"transactionRepository\"\r\n          class=\"org.mengyun.tcctransaction.spring.repository.SpringJdbcTransactionRepository\">\r\n        <property name=\"dataSource\" ref=\"dataSource\"/>\r\n        <property name=\"serializer\" ref=\"transactionSerializer\"/>\r\n    </bean>\r\n\r\n    <bean id=\"transactionSerializer\" class=\"org.mengyun.tcctransaction.serializer.JdkSerializationSerializer\"/>\r\n"}}
{"actor":{"display_login":"changmingxie"}}