OpenBankProject / OpenBankProject/OBP-API

java.lang.RuntimeException: can't render 'nothing'

Open
#597 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.7k
Forks
482
Avg merge
1d 12h
Merged PRs (30d)
15

Description

A few exceptions like this have popped up recently on https://bnpparibas-irb.openbankproject.com:



Sat Jun 10 08:52:11 UTC 2017: java.lang.RuntimeException: can't render 'nothing'
	at scala.sys.package$.error(package.scala:27)
	at net.liftweb.json.JsonAST$.render(JsonAST.scala:420)
	at net.liftweb.json.package$.render(package.scala:44)
	at code.api.v3_0_0.APIMethods300$$$$$$7835b6eedb02c949e3f7b37318425eb$$$$nonfun$apply$60.apply(APIMethods300.scala:514)
	at code.api.v3_0_0.APIMethods300$$$$$$7835b6eedb02c949e3f7b37318425eb$$$$nonfun$apply$60.apply(APIMethods300.scala:511)
	at net.liftweb.common.Full.map(Box.scala:610)
	at code.api.v3_0_0.APIMethods300$$$$$$e252edb52b327da3375e64736c12612$$$$nonfun$apply$58.apply(APIMethods300.scala:511)
	at code.api.v3_0_0.APIMethods300$$$$$$e252edb52b327da3375e64736c12612$$$$nonfun$apply$58.apply(APIMethods300.scala:510)
	at net.liftweb.common.Full.flatMap(Box.scala:612)
	at code.api.v3_0_0.APIMethods300$$$$$$d5a11ee4cea717857e3ce2883ac3ee2$$$$n$applyOrElse$9.apply(APIMethods300.scala:510)
	at code.api.v3_0_0.APIMethods300$$$$$$d5a11ee4cea717857e3ce2883ac3ee2$$$$n$applyOrElse$9.apply(APIMethods300.scala:508)
	at code.api.OBPRestHelper$class.failIfBadAuthorizationHeader(OBPRestHelper.scala:145)
	at code.api.v3_0_0.OBPAPI3_0_0$.failIfBadAuthorizationHeader(OBPAPI3_0_0.scala:49)
	at code.api.OBPRestHelper$$anon$2.apply(OBPRestHelper.scala:198)
	at code.api.OBPRestHelper$$anon$2.apply(OBPRestHelper.scala:191)
	at code.api.OBPRestHelper$$anon$3.apply(OBPRestHelper.scala:228)
	at code.api.OBPRestHelper$$anon$3.apply(OBPRestHelper.scala:225)
	at net.liftweb.http.rest.RestHelper$class.apply(RestHelper.scala:522)
	at code.api.v3_0_0.OBPAPI3_0_0$.apply(OBPAPI3_0_0.scala:49)
	at code.api.v3_0_0.OBPAPI3_0_0$.apply(OBPAPI3_0_0.scala:49)
	at net.liftweb.util.NamedPF$$anonfun$applyBox$1.apply(NamedPartialFunction.scala:97)
	at net.liftweb.util.NamedPF$$anonfun$applyBox$1.apply(NamedPartialFunction.scala:97)
	at net.liftweb.common.Full.map(Box.scala:610)
	at net.liftweb.util.NamedPF$.applyBox(NamedPartialFunction.scala:97)
	at net.liftweb.http.LiftServlet$$anonfun$1.apply$mcZ$sp(LiftServlet.scala:281)
	at net.liftweb.http.LiftServlet$$anonfun$1.apply(LiftServlet.scala:279)
	at net.liftweb.http.LiftServlet$$anonfun$1.apply(LiftServlet.scala:279)
	at net.liftweb.http.S$class.net$liftweb$http$S$$wrapQuery(S.scala:1470)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$37.apply(S.scala:1635)
	at net.liftweb.http.S$class.net$liftweb$http$S$$doAround(S.scala:1399)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1.apply(S.scala:1400)
	at net.liftweb.db.DB$$anon$2$$anonfun$apply$15.net$liftweb$db$DB$class$$anon$$anonfun$$recurseMe$1(DB.scala:244)
	at net.liftweb.db.DB$$anon$2$$anonfun$apply$15$$anonfun$net$liftweb$db$DB$class$$anon$$anonfun$$recurseMe$1$1.apply(DB.scala:260)
	at net.liftweb.db.DB$$anon$2$$anonfun$apply$15$$anonfun$net$liftweb$db$DB$class$$anon$$anonfun$$recurseMe$1$1.apply(DB.scala:260)
	at net.liftweb.db.DB$$anonfun$use$1.apply(DB.scala:701)
	at net.liftweb.util.DynoVar$class.run(ThreadGlobal.scala:95)
	at net.liftweb.db.DB$currentConn$.run(DB.scala:686)
	at net.liftweb.db.DB$class.use(DB.scala:698)
	at net.liftweb.db.DB$$anon$1.use(DB.scala:40)
	at net.liftweb.db.DB$$anon$2$$anonfun$apply$15.net$liftweb$db$DB$class$$anon$$anonfun$$recurseMe$1(DB.scala:260)
	at net.liftweb.db.DB$$anon$2$$anonfun$apply$15.apply(DB.scala:262)
	at net.liftweb.util.DynoVar$class.run(ThreadGlobal.scala:95)
	at net.liftweb.db.DB$$anon$2$DepthCnt$.run(DB.scala:233)
	at net.liftweb.db.DB$$anon$2.apply(DB.scala:236)
	at net.liftweb.http.S$class.net$liftweb$http$S$$doAround(S.scala:1400)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.scala:1633)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$class.net$liftweb$http$S$$_nest2InnerInit(S.scala:1632)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$43$$anonfun$apply$44.apply(S.scala:1676)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$withReq$1.apply(S.scala:1686)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$class.withReq(S.scala:1685)
	at net.liftweb.http.S$.withReq(S.scala:47)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$43.apply(S.scala:1672)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41$$anonfun$apply$42.apply(S.scala:1670)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41.apply(S.scala:1669)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala:1668)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$class.net$liftweb$http$S$$_innerInit(S.scala:1667)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49$$anonfun$apply$50$$anonfun$apply$51.apply(S.scala:1709)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49$$anonfun$apply$50.apply(S.scala:1707)
	at net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:605)
	at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:507)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49.apply(S.scala:1706)
	at net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:605)
	at net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:520)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47$$anonfun$apply$48.apply(S.scala:1705)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47.apply(S.scala:1704)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1.apply(S.scala:1703)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.S$class.net$liftweb$http$S$$_init(S.scala:1702)
	at net.liftweb.http.S$class.statelessInit(S.scala:1302)
	at net.liftweb.http.S$.statelessInit(S.scala:47)
	at net.liftweb.http.LiftServlet.doService(LiftServlet.scala:279)
	at net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:148)
	at net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:147)
	at net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:346)
	at net.liftweb.util.Helpers$.calcTime(Helpers.scala:34)
	at net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:365)
	at net.liftweb.util.Helpers$.logTime(Helpers.scala:34)
	at net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:147)
	at net.liftweb.http.LiftServlet.service(LiftServlet.scala:158)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(HTTPProvider.scala:72)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(HTTPProvider.scala:71)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(HTTPProvider.scala:71)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.URLRewriter$.doWith(Req.scala:1327)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply$mcV$sp(HTTPProvider.scala:70)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply(HTTPProvider.scala:70)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply(HTTPProvider.scala:70)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply$mcV$sp(HTTPProvider.scala:66)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply(HTTPProvider.scala:60)
	at net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply(HTTPProvider.scala:60)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.provider.HTTPProvider$class.service(HTTPProvider.scala:60)
	at net.liftweb.http.LiftFilter.service(LiftServlet.scala:928)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(ServletFilterProvider.scala:82)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ServletFilterProvider.scala:82)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ServletFilterProvider.scala:82)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$class.handleLoan$1(ServletFilterProvider.scala:59)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$class.net$liftweb$http$provider$servlet$ServletFilterProvider$$handleLoanWrappers(ServletFilterProvider.scala:63)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ServletFilterProvider.scala:82)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply(ServletFilterProvider.scala:77)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply(ServletFilterProvider.scala:77)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19.apply(Vars.scala:611)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18.apply(Vars.scala:610)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17.apply(Vars.scala:609)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16.apply(Vars.scala:608)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:607)
	at net.liftweb.http.RequestVarHandler$.apply(Vars.scala:507)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply$mcV$sp(ServletFilterProvider.scala:75)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:75)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:75)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18$$anonfun$apply$19.apply(Vars.scala:611)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17$$anonfun$apply$18.apply(Vars.scala:610)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16$$anonfun$apply$17.apply(Vars.scala:609)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$16.apply(Vars.scala:608)
	at net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
	at net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:607)
	at net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:520)
	at net.liftweb.http.provider.servlet.ServletFilterProvider$class.doFilter(ServletFilterProvider.scala:74)
	at net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:928)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1022)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:748)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at code.api.v3_0_0.APIMethods300.scala around lines 510–514, where the stack trace reaches net.liftweb.json.render. Trace the request path that produces the 'nothing' value and identify a reproducible API request. Done means the failing request no longer raises this rendering exception and the relevant behavior is covered by an available test.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.