You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicecomb.apache.org by "sukesh (JIRA)" <ji...@apache.org> on 2018/01/12 09:59:00 UTC

[jira] [Resolved] (SCB-179) When RequestParam name contains -, exception thrown when consumer invokes api using highway

     [ https://issues.apache.org/jira/browse/SCB-179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

sukesh resolved SCB-179.
------------------------
    Resolution: Fixed

> 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
>            Assignee: sukesh
>             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)