Skip to content

swagger NullPointerException #343

@pajooh

Description

@pajooh

based on official guide i added swagger to my project.
in swagger annotation, i have something like

val getBookss =
  (apiOperation[List[Book]]("getBooks")
...

which Book is database connection object from scala-activerecord:

case class Book(var name: String, var age: Int) extends ActiveRecord
object Book extends ActiveRecordCompanion[Book]

i get java.lang.NullPointerException error arroung my apiOperation definitin.
also, upgrading to latest scalatra 2.3.0-M1 with latest swagger can not help,
here is my error log:

java.lang.NullPointerException: null
        at org.scalatra.swagger.reflect.ScalaSigReader$$anonfun$findScalaSig$1.apply(ScalaSigReader.scala:133) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$$anonfun$findScalaSig$1.apply(ScalaSigReader.scala:133) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at scala.Option.orElse(Option.scala:257) ~[scala-library-2.10.3.jar:na]
        at org.scalatra.swagger.reflect.ScalaSigReader$.findScalaSig(ScalaSigReader.scala:133) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$$anonfun$findScalaSig$1.apply(ScalaSigReader.scala:133) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$$anonfun$findScalaSig$1.apply(ScalaSigReader.scala:133) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at scala.Option.orElse(Option.scala:257) ~[scala-library-2.10.3.jar:na]
        at org.scalatra.swagger.reflect.ScalaSigReader$.findScalaSig(ScalaSigReader.scala:133) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$.findClass(ScalaSigReader.scala:41) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$.org$scalatra$swagger$reflect$ScalaSigReader$$read$1(ScalaSigReader.scala:35) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$$anonfun$org$scalatra$swagger$reflect$ScalaSigReader$$read$1$1.apply(ScalaSigReader.scala:35) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$$anonfun$org$scalatra$swagger$reflect$ScalaSigReader$$read$1$1.apply(ScalaSigReader.scala:35) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at scala.Option.getOrElse(Option.scala:120) ~[scala-library-2.10.3.jar:na]
        at org.scalatra.swagger.reflect.ScalaSigReader$.org$scalatra$swagger$reflect$ScalaSigReader$$read$1(ScalaSigReader.scala:35) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.ScalaSigReader$.readField(ScalaSigReader.scala:37) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$$anonfun$2.apply(Reflector.scala:92) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$$anonfun$2.apply(Reflector.scala:91) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[scala-library-2.10.3.jar:na]
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[scala-library-2.10.3.jar:na]
        at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) ~[scala-library-2.10.3.jar:na]
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) ~[scala-library-2.10.3.jar:na]
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) ~[scala-library-2.10.3.jar:na]
        at scala.collection.AbstractTraversable.map(Traversable.scala:105) ~[scala-library-2.10.3.jar:na]
        at org.scalatra.swagger.reflect.Reflector$.fields$1(Reflector.scala:91) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$.fields$1(Reflector.scala:102) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$.properties$1(Reflector.scala:105) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$.createDescriptor(Reflector.scala:159) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$$anonfun$describe$2.apply(Reflector.scala:44) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$$anonfun$describe$2.apply(Reflector.scala:44) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.package$Memo.apply(package.scala:16) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.reflect.Reflector$.describe(Reflector.scala:44) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.Swagger$.collectModels(Swagger.scala:59) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.Swagger$.collectModels(Swagger.scala:48) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.swagger.SwaggerSupportSyntax$class.registerModel(SwaggerSupport.scala:398) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at rwa.controllers.IndicatorController.registerModel(IndicatorController.scala:13) ~[classes/:na]
        at org.scalatra.swagger.SwaggerSupport$class.apiOperation(SwaggerSupport.scala:511) ~[scalatra-swagger_2.10-2.3.0.M1.jar:2.3.0.M1]
        at rwa.controllers.IndicatorController.apiOperation(IndicatorController.scala:13) ~[classes/:na]
        at rwa.controllers.IndicatorController.<init>(IndicatorController.scala:26) ~[classes/:na]
        at ScalatraBootstrap.init(ScalatraBootstrap.scala:13) ~[classes/:na]
        at org.scalatra.servlet.ScalatraListener.configureCycleClass(ScalatraListener.scala:67) ~[scalatra_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.scalatra.servlet.ScalatraListener.contextInitialized(ScalatraListener.scala:23) ~[scalatra_2.10-2.3.0.M1.jar:2.3.0.M1]
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:799) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:434) [jetty-servlet-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:284) [jetty-servlet-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1346) [jetty-webapp-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:743) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:491) [jetty-webapp-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:99) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:154) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.Server.start(Server.java:355) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:99) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.server.Server.doStart(Server.java:324) [jetty-server-9.1.0.v20131115.jar:9.1.0.v20131115]
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69) [jetty-util-9.1.0.v20131115.jar:9.1.0.v20131115]
        at com.earldouglas.xsbtwebplugin.Jetty9Runner.start(Jetty9Runner.scala:103) [xsbt-web-plugin-0.5.0.jar:0.5.0]
        at com.earldouglas.xsbtwebplugin.Container$$anonfun$containerSettings$7.apply(Container.scala:64) [xsbt-web-plugin-0.5.0.jar:0.5.0]
        at com.earldouglas.xsbtwebplugin.Container$$anonfun$containerSettings$7.apply(Container.scala:63) [xsbt-web-plugin-0.5.0.jar:0.5.0]
        at scala.Function7$$anonfun$tupled$1.apply(Function7.scala:35) [scala-library.jar:0.13.0]
        at scala.Function7$$anonfun$tupled$1.apply(Function7.scala:34) [scala-library.jar:0.13.0]
        at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) [scala-library.jar:0.13.0]
        at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) [collections-0.13.0.jar:0.13.0]
        at sbt.std.Transform$$anon$4.work(System.scala:64) [task-system-0.13.0.jar:0.13.0]
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) [tasks-0.13.0.jar:0.13.0]
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) [tasks-0.13.0.jar:0.13.0]
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) [control-0.13.0.jar:0.13.0]
        at sbt.Execute.work(Execute.scala:244) [tasks-0.13.0.jar:0.13.0]
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) [tasks-0.13.0.jar:0.13.0]
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) [tasks-0.13.0.jar:0.13.0]
        at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) [tasks-0.13.0.jar:0.13.0]
        at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) [tasks-0.13.0.jar:0.13.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_45]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_45]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_45]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
        at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions