fwbrasil / activate

Abandoned: Pluggable persistence in Scala
GNU Lesser General Public License v2.1
299 stars 46 forks source link

More descriptive error message in MutableEntityMap initialization #92

Closed odwrotnie closed 10 years ago

odwrotnie commented 10 years ago

There would be nice to have more descriptive error message when you set field with a wrong type in MutableEntityMap.

This is what you get when you set .field -> entity instead of .field -> Some(entity).

Exception occured while processing /model/view/ce81f7f1-54fd-11e3-8a5d-258445003aed-285feb00
Message: java.lang.IllegalArgumentException: requirement failed
    scala.Predef$.require(Predef.scala:221)
    net.fwbrasil.radon.transaction.Transaction.net$fwbrasil$radon$transaction$Transaction$$setRefContent(Transaction.scala:212)
    net.fwbrasil.radon.transaction.Transaction$$anonfun$flushToMemory$1.apply(Transaction.scala:174)
    net.fwbrasil.radon.transaction.Transaction$$anonfun$flushToMemory$1.apply(Transaction.scala:174)
    scala.collection.Iterator$class.foreach(Iterator.scala:727)
    scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    net.fwbrasil.radon.transaction.Transaction.flushToMemory(Transaction.scala:174)
    net.fwbrasil.radon.transaction.Transaction.net$fwbrasil$radon$transaction$Transaction$$flushTransaction(Transaction.scala:166)
    net.fwbrasil.radon.transaction.Transaction.commit(Transaction.scala:123)
    net.fwbrasil.radon.transaction.Transaction.commit(Transaction.scala:69)
    net.fwbrasil.radon.transaction.TransactionManager.runInTransactionWithRetry(TransactionManager.scala:70)
    net.fwbrasil.radon.transaction.TransactionManager.runInNewTransactionWithRetry(TransactionManager.scala:62)
    net.fwbrasil.radon.transaction.Required.execute(Propagation.scala:26)
    net.fwbrasil.radon.transaction.TransactionContext$class.transactional(TransactionContext.scala:60)
    net.fwbrasil.radon.transaction.TransactionContext$class.transactional(TransactionContext.scala:33)
    model.SContext$.transactional(SContext.scala:9)
    transaction.Transaction$.apply(Transaction.scala:8)
    bootstrap.liftweb.Boot$$anon$1.apply(Boot.scala:116)
    net.liftweb.http.S$class.net$liftweb$http$S$$doAround(S.scala:1390)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.scala:1623)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.net$liftweb$http$S$$_nest2InnerInit(S.scala:1622)
    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:1666)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$withReq$1.apply(S.scala:1676)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.withReq(S.scala:1675)
    net.liftweb.http.S$.withReq(S.scala:47)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41$$anonfun$apply$42$$anonfun$apply$43.apply(S.scala:1662)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41$$anonfun$apply$42.apply(S.scala:1660)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply$41.apply(S.scala:1659)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala:1658)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.net$liftweb$http$S$$_innerInit(S.scala:1657)
    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:1699)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    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:1697)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:613)
    net.liftweb.http.RequestVarHandler$.apply(Vars.scala:515)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47$$anonfun$apply$48$$anonfun$apply$49.apply(S.scala:1696)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:613)
    net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:528)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47$$anonfun$apply$48.apply(S.scala:1695)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1$$anonfun$apply$47.apply(S.scala:1694)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_init$1.apply(S.scala:1693)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.S$class.net$liftweb$http$S$$_init(S.scala:1692)
    net.liftweb.http.S$class.init(S.scala:1274)
    net.liftweb.http.S$.init(S.scala:47)
    net.liftweb.http.LiftServlet.doSession$1(LiftServlet.scala:300)
    net.liftweb.http.LiftServlet.doService(LiftServlet.scala:310)
    net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:148)
    net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:147)
    net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:345)
    net.liftweb.util.Helpers$.calcTime(Helpers.scala:34)
    net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:364)
    net.liftweb.util.Helpers$.logTime(Helpers.scala:34)
    net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:147)
    net.liftweb.http.LiftServlet.service(LiftServlet.scala:158)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(HTTPProvider.scala:72)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(HTTPProvider.scala:71)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(HTTPProvider.scala:71)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.URLRewriter$.doWith(Req.scala:1278)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply$mcV$sp(HTTPProvider.scala:70)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply(HTTPProvider.scala:70)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2$$anonfun$apply$mcV$sp$1.apply(HTTPProvider.scala:70)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply$mcV$sp(HTTPProvider.scala:66)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply(HTTPProvider.scala:60)
    net.liftweb.http.provider.HTTPProvider$$anonfun$service$2.apply(HTTPProvider.scala:60)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.provider.HTTPProvider$class.service(HTTPProvider.scala:60)
    net.liftweb.http.LiftFilter.service(LiftServlet.scala:928)
    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)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ServletFilterProvider.scala:82)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ServletFilterProvider.scala:82)
    net.liftweb.http.provider.servlet.ServletFilterProvider$class.handleLoan$1(ServletFilterProvider.scala:59)
    net.liftweb.http.provider.servlet.ServletFilterProvider$class.net$liftweb$http$provider$servlet$ServletFilterProvider$$handleLoanWrappers(ServletFilterProvider.scala:63)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ServletFilterProvider.scala:82)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply(ServletFilterProvider.scala:77)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1$$anonfun$apply$mcV$sp$1.apply(ServletFilterProvider.scala:77)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14$$anonfun$apply$15$$anonfun$apply$16$$anonfun$apply$17.apply(Vars.scala:619)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14$$anonfun$apply$15$$anonfun$apply$16.apply(Vars.scala:618)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14$$anonfun$apply$15.apply(Vars.scala:617)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14.apply(Vars.scala:616)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:615)
    net.liftweb.http.RequestVarHandler$.apply(Vars.scala:515)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply$mcV$sp(ServletFilterProvider.scala:75)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:75)
    net.liftweb.http.provider.servlet.ServletFilterProvider$$anonfun$doFilter$1.apply(ServletFilterProvider.scala:75)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14$$anonfun$apply$15$$anonfun$apply$16$$anonfun$apply$17.apply(Vars.scala:619)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14$$anonfun$apply$15$$anonfun$apply$16.apply(Vars.scala:618)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14$$anonfun$apply$15.apply(Vars.scala:617)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$$anonfun$apply$14.apply(Vars.scala:616)
    net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:71)
    net.liftweb.http.CoreRequestVarHandler$class.apply(Vars.scala:615)
    net.liftweb.http.TransientRequestVarHandler$.apply(Vars.scala:528)
    net.liftweb.http.provider.servlet.ServletFilterProvider$class.doFilter(ServletFilterProvider.scala:74)
    net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:928)
    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
    org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
    org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
    org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    org.eclipse.jetty.server.Server.handle(Server.java:361)
    org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
    org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
    org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
    org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
    org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
    org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    java.lang.Thread.run(Thread.java:744)
fwbrasil commented 10 years ago

I couldn't reproduce the same error that you have, but I added code to verify the values passed on the constructor.