Mohammad Asif Siddiqui created SCB-179:
------------------------------------------

             Summary: When RequestParam name contains -, exception thrown when 
consumer invokes api using highway
                 Key: SCB-179
                 URL: https://issues.apache.org/jira/browse/SCB-179
             Project: Apache ServiceComb
          Issue Type: Bug
          Components: Java-Chassis
            Reporter: Mohammad Asif Siddiqui
             Fix For: java-chassis-1.0.0-m1


When RequestParam name contains -, exception thrown when consumer invokes api 
using highway 
Define api as below
public boolean buyWithTransaction(@RequestHeader(name = "user-name") long 
userId,
@RequestParam(name = "productId") long productId, @RequestParam(name = "price") 
double price) {
Below exception thrown
2017-12-10 16:54:35,237 [WARN] bizkeeper execution error 
io.servicecomb.bizkeeper.BizkeeperHandler$1.onExecutionError(BizkeeperHandler.java:59)
java.lang.Exception: Throwable caught while executing.
at 
com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable(AbstractCommand.java:1970)
at 
com.netflix.hystrix.AbstractCommand.wrapWithOnExecutionErrorHook(AbstractCommand.java:1490)
at com.netflix.hystrix.AbstractCommand.access$1300(AbstractCommand.java:60)
at 
com.netflix.hystrix.AbstractCommand$ExecutionHookApplication$1.onError(AbstractCommand.java:1361)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:56)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:8666)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:8666)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:8666)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:52)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:36)
at rx.Observable.subscribe(Observable.java:8759)
at rx.Observable.subscribe(Observable.java:8726)
at rx.Observable.subscribe(Observable.java:8619)
at io.servicecomb.bizkeeper.BizkeeperHandler.handle(BizkeeperHandler.java:82)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at 
io.servicecomb.loadbalance.LoadbalanceHandler.send(LoadbalanceHandler.java:157)
at 
io.servicecomb.loadbalance.LoadbalanceHandler.handle(LoadbalanceHandler.java:106)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at 
io.servicecomb.qps.ConsumerQpsFlowControlHandler.handle(ConsumerQpsFlowControlHandler.java:51)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at 
com.huawei.paas.cse.handler.stats.PerfStatsHandler.handle(PerfStatsHandler.java:60)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at 
io.servicecomb.core.handler.ShutdownHookHandler.handle(ShutdownHookHandler.java:68)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at io.servicecomb.edge.core.EdgeInvocation.doInvoke(EdgeInvocation.java:153)
at io.servicecomb.edge.core.EdgeInvocation.invoke(EdgeInvocation.java:80)
at com.huawei.cse.wkapp.edge.ApiDispatcher.onRequest(ApiDispatcher.java:69)
at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:215)
at 
io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:78)
at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:94)
at 
io.servicecomb.transport.rest.vertx.RestBodyHandler$BHandler.doEnd(RestBodyHandler.java:232)
at 
io.servicecomb.transport.rest.vertx.RestBodyHandler$BHandler.end(RestBodyHandler.java:210)
at 
io.servicecomb.transport.rest.vertx.RestBodyHandler.lambda$handle$0(RestBodyHandler.java:77)
at 
io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:406)
at io.vertx.core.http.impl.ServerConnection.handleEnd(ServerConnection.java:298)
at 
io.vertx.core.http.impl.ServerConnection.processMessage(ServerConnection.java:424)
at 
io.vertx.core.http.impl.ServerConnection.handleMessage(ServerConnection.java:139)
at 
io.vertx.core.http.impl.HttpServerImpl$ServerHandler.doMessageReceived(HttpServerImpl.java:615)
at 
io.vertx.core.http.impl.HttpServerImpl$ServerHandler.doMessageReceived(HttpServerImpl.java:522)
at 
io.vertx.core.http.impl.VertxHttpHandler.lambda$channelRead$0(VertxHttpHandler.java:71)
at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:314)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:190)
at 
io.vertx.core.http.impl.VertxHttpHandler.channelRead(VertxHttpHandler.java:71)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:122)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350)
at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350)
at 
io.vertx.core.http.impl.HttpServerImpl$Http1xOrHttp2Handler.http1(HttpServerImpl.java:1019)
at 
io.vertx.core.http.impl.HttpServerImpl$Http1xOrHttp2Handler.channelRead(HttpServerImpl.java:990)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350)
at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:610)
at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:551)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:465)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:437)
at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.Error: Failed to create 
gen.cse.gen.wkapp.customer_service.customer.CustomerServiceImplIntf.buyWithTransaction.Args
at 
io.servicecomb.common.javassist.JavassistUtils.createClass(JavassistUtils.java:184)
at 
io.servicecomb.common.javassist.JavassistUtils.createClass(JavassistUtils.java:136)
at 
io.servicecomb.codec.protobuf.utils.ProtobufSchemaUtils.createWrapSchema(ProtobufSchemaUtils.java:95)
at 
io.servicecomb.codec.protobuf.utils.ProtobufSchemaUtils.lambda$getOrCreateArgsSchema$1(ProtobufSchemaUtils.java:156)
at 
io.servicecomb.codec.protobuf.utils.ProtobufSchemaUtils.getOrCreateSchema(ProtobufSchemaUtils.java:66)
at 
io.servicecomb.codec.protobuf.utils.ProtobufSchemaUtils.getOrCreateArgsSchema(ProtobufSchemaUtils.java:133)
at 
io.servicecomb.codec.protobuf.definition.OperationProtobuf.<init>(OperationProtobuf.java:39)
at 
io.servicecomb.codec.protobuf.definition.ProtobufManager.getOrCreateOperation(ProtobufManager.java:53)
at io.servicecomb.transport.highway.HighwayClient.send(HighwayClient.java:86)
at 
io.servicecomb.transport.highway.HighwayTransport.send(HighwayTransport.java:68)
at 
io.servicecomb.core.handler.impl.TransportClientHandler.handle(TransportClientHandler.java:41)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at 
com.huawei.paas.cse.tcc.handler.ConsumerTccTransactionHandler.handle(ConsumerTccTransactionHandler.java:98)
at io.servicecomb.core.Invocation.next(Invocation.java:132)
at 
io.servicecomb.bizkeeper.BizkeeperCommand.lambda$construct$2(BizkeeperCommand.java:78)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50)
... 92 more
Caused by: javassist.CannotCompileException: [source error] no such field: user
at javassist.CtNewMethod.make(CtNewMethod.java:79)
at javassist.CtNewMethod.make(CtNewMethod.java:45)
at javassist.CtMethod.make(CtMethod.java:130)
at 
io.servicecomb.common.javassist.JavassistUtils.createClass(JavassistUtils.java:174)
... 107 more
Caused by: compile error: no such field: user
at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:819)
at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:777)
at javassist.compiler.TypeChecker.atMember(TypeChecker.java:962)
at javassist.compiler.JvstTypeChecker.atMember(JvstTypeChecker.java:66)
at javassist.compiler.ast.Member.accept(Member.java:39)
at javassist.compiler.TypeChecker.atBinExpr(TypeChecker.java:327)
at javassist.compiler.ast.BinExpr.accept(BinExpr.java:41)
at javassist.compiler.TypeChecker.atArrayAssign(TypeChecker.java:262)
at javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:225)
at javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:39)
at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:242)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:330)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)
at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:292)
at javassist.compiler.CodeGen.atMethodDecl(CodeGen.java:274)
at javassist.compiler.ast.MethodDecl.accept(MethodDecl.java:44)
at javassist.compiler.Javac.compileMethod(Javac.java:169)
at javassist.compiler.Javac.compile(Javac.java:95)
at javassist.CtNewMethod.make(CtNewMethod.java:74)
... 110 more



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to