Hey Jon, Sounds like Mapper is not quite sure what to do with one of the types it created - If memory serves Derek is looking after the DB drivers these days (the fellow who wrote oracle driver isn't active anymore), so my advice would be log a issue here so that it doesn't get missed:
http://github.com/dpp/liftweb/issues Cheers, Tim On Jul 23, 12:12 pm, Jon Kleiser <jon.klei...@usit.uio.no> wrote: > Hi, > > I just tried to run the todo app. > (http://liftweb.net/docs/getting_started/mod_master.html) against our > Oracle (10something) database. The two tables got created like this: > > INFO - CREATE TABLE users (id ROWID , firstname VARCHAR(32) , lastname > VARCHAR(32) , email VARCHAR(48) , locale VARCHAR(16) , timezone > VARCHAR(32) , password_pw VARCHAR(48) , password_slt VARCHAR(20) , > textarea VARCHAR(2048) , validated NUMBER , uniqueid VARCHAR(32) , > superuser NUMBER) > INFO - ALTER TABLE users ADD CONSTRAINT users_PK PRIMARY KEY(id) > INFO - CREATE TABLE todo (id ROWID , desc_c VARCHAR(128) , done NUMBER , > owner NUMBER , priority NUMBER) > INFO - ALTER TABLE todo ADD CONSTRAINT todo_PK PRIMARY KEY(id) > INFO - CREATE INDEX users_email ON users ( email ) > INFO - CREATE INDEX users_uniqueid ON users ( uniqueid ) > INFO - CREATE INDEX todo_owner ON todo ( owner ) > > I then used Oracle's SQLDeveloper to confirm that the tables had been > created and had the right columns. However, when I tried to "Sign Up" in > the todo app., I got this nasty stuff right in the browser (nothing in > the log): > > Exception occured while processing /user_mgt/sign_up > Message: java.sql.SQLException: Invalid column type > > oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) > > oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) > > oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) > > oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePrepared > Statement.java:9262) > > oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePrepared > Statement.java:8843) > > oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatemen > t.java:9316) > > net.liftweb.mapper.MetaMapper$$anonfun$12$$anonfun$prepStat$1$1.apply(MetaM > apper.scala:622) > > net.liftweb.mapper.MetaMapper$$anonfun$12$$anonfun$prepStat$1$1.apply(MetaM > apper.scala:616) > scala.Iterator$class.foreach(Iterator.scala:414) > scala.Iterator$$anon$14.foreach(Iterator.scala:265) > scala.Iterable$class.foreach(Iterable.scala:256) > scala.collection.mutable.HashMap.foreach(HashMap.scala:33) > > net.liftweb.mapper.MetaMapper$$anonfun$12.prepStat$1(MetaMapper.scala:616) > > net.liftweb.mapper.MetaMapper$$anonfun$12$$anonfun$19.apply(MetaMapper.scal > a:659) > > net.liftweb.mapper.MetaMapper$$anonfun$12$$anonfun$19.apply(MetaMapper.scal > a:659) > net.liftweb.mapper.DB$$anonfun$prepareStatement$2.apply(DB.scala:292) > net.liftweb.mapper.DB$$anonfun$prepareStatement$2.apply(DB.scala:288) > net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:241) > net.liftweb.util.Helpers$.calcTime(Helpers.scala:29) > net.liftweb.mapper.DB$.prepareStatement(DB.scala:288) > net.liftweb.mapper.MetaMapper$$anonfun$12.apply(MetaMapper.scala:658) > net.liftweb.mapper.MetaMapper$$anonfun$12.apply(MetaMapper.scala:578) > net.liftweb.mapper.DB$.use(DB.scala:305) > net.liftweb.mapper.MetaMapper$class.save(MetaMapper.scala:577) > com.liftworkshop.model.User$$$M$5d72f813.save(User.scala:9) > com.liftworkshop.model.User$$$A$5d72f813.save(<generated>) > com.liftworkshop.model.User$.save(<generated>) > net.liftweb.mapper.Mapper$$anonfun$save$1.apply(Mapper.scala:84) > net.liftweb.mapper.Mapper$$anonfun$save$1.apply(Mapper.scala:84) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.mapper.Safe$.runSafe(Safe.scala:44) > net.liftweb.mapper.Mapper$class.runSafe(Mapper.scala:50) > com.liftworkshop.model.User$$M$7ee2c84f.runSafe(User.scala:24) > com.liftworkshop.model.User$$A$7ee2c84f.runSafe(<generated>) > com.liftworkshop.model.User.runSafe(<generated>) > net.liftweb.mapper.Mapper$class.save(Mapper.scala:83) > com.liftworkshop.model.User$$M$7ee2c84f.save(User.scala:24) > com.liftworkshop.model.User$$A$7ee2c84f.save(<generated>) > com.liftworkshop.model.User.save(<generated>) > > net.liftweb.mapper.MetaMegaProtoUser$class.testSignup$1(ProtoUser.scala:343 ) > > net.liftweb.mapper.MetaMegaProtoUser$$anonfun$innerSignup$1$1.apply(ProtoUs > er.scala:360) > > net.liftweb.mapper.MetaMegaProtoUser$$anonfun$innerSignup$1$1.apply(ProtoUs > er.scala:360) > net.liftweb.http.S$NFuncHolder$$anonfun$apply$46.apply(S.scala:941) > net.liftweb.http.S$NFuncHolder$$anonfun$apply$46.apply(S.scala:941) > scala.List.map(List.scala:805) > net.liftweb.http.S$NFuncHolder.apply(S.scala:941) > > net.liftweb.http.LiftSession$$anonfun$buildFunc$1$2.apply(LiftSession.scala > :307) > > net.liftweb.http.LiftSession$$anonfun$5$$anonfun$apply$19.apply(LiftSession > .scala:322) > > net.liftweb.http.LiftSession$$anonfun$5$$anonfun$apply$19.apply(LiftSession > .scala:322) > scala.List.map(List.scala:805) > net.liftweb.http.LiftSession$$anonfun$5.apply(LiftSession.scala:322) > net.liftweb.http.LiftSession$$anonfun$5.apply(LiftSession.scala:311) > scala.List.flatMap(List.scala:1125) > net.liftweb.http.LiftSession.runParams(LiftSession.scala:311) > net.liftweb.http.LiftSession.processRequest(LiftSession.scala:449) > > net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$$dispatchStateful > Request(LiftServlet.scala:244) > net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:176) > net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:176) > net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:398) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$ > apply$16.apply(S.scala:453) > net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:372) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1.apply(S.scala:37 3) > > net.liftweb.mapper.DB$$anon$1.net$liftweb$mapper$DB$$anon$$doWith(DB.scala: > 117) > > net.liftweb.mapper.DB$$anon$1$$anonfun$net$liftweb$mapper$DB$$anon$$doWith$ > 1.apply(DB.scala:118) > > net.liftweb.mapper.DB$$anon$1$$anonfun$net$liftweb$mapper$DB$$anon$$doWith$ > 1.apply(DB.scala:118) > net.liftweb.mapper.DB$.use(DB.scala:305) > > net.liftweb.mapper.DB$$anon$1.net$liftweb$mapper$DB$$anon$$doWith(DB.scala: > 118) > net.liftweb.mapper.DB$$anon$1.apply(DB.scala:124) > net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:373) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1.apply(S.s > cala:451) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit(S.scala:450) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply > $19$$anonfun$apply$20$$anonfun$apply$21$$anonfun$apply$22$$anonfun$apply$23 > $$anonfun$apply$24.apply(S.scala:471) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply > $19$$anonfun$apply$20$$anonfun$apply$21$$anonfun$apply$22$$anonfun$apply$23 > .apply(S.scala:470) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply > $19$$anonfun$apply$20$$anonfun$apply$21$$anonfun$apply$22.apply(S.scala:469 ) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply > $19$$anonfun$apply$20$$anonfun$apply$21.apply(S.scala:468) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply > $19$$anonfun$apply$20.apply(S.scala:467) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun$apply > $19.apply(S.scala:466) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply(S.scala: > 465) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:464) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27$$anonfun$apply$28$$an > onfun$apply$29$$anonfun$apply$30.apply(S.scala:495) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27$$anonfun$apply$28$$an > onfun$apply$29.apply(S.scala:494) > net.liftweb.http.RequestVarHandler$.apply(Vars.scala:191) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27$$anonfun$apply$28.app > ly(S.scala:493) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27.apply(S.scala:492) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:491) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.http.S$._init(S.scala:490) > net.liftweb.http.S$.init(S.scala:334) > net.liftweb.http.LiftServlet.doService(LiftServlet.scala:175) > > net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:104) > > net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply(LiftServlet.scala:104) > net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:241) > net.liftweb.util.Helpers$.calcTime(Helpers.scala:29) > net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:250) > net.liftweb.util.Helpers$.logTime(Helpers.scala:29) > net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:103) > net.liftweb.http.LiftServlet.service(LiftServlet.scala:112) > > net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1$$anonfun$apply$22.appl > y(LiftServlet.scala:525) > > net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1$$anonfun$apply$22.appl > y(LiftServlet.scala:525) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.http.URLRewriter$.doWith(Req.scala:390) > > net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply(LiftServlet.scal > a:524) > > net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply(LiftServlet.scal > a:518) > > net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply$4$$anonf > un$apply$5$$anonfun$apply$6.apply(Vars.scala:197) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply$4$$anonf > un$apply$5.apply(Vars.scala:196) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply$4.apply( > Vars.scala:195) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > > net.liftweb.http.RequestVarHandler$$anonfun$apply$3.apply(Vars.scala:194) > net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65) > net.liftweb.http.RequestVarHandler$.apply(Vars.scala:193) > net.liftweb.http.LiftFilterTrait$class.doFilter(LiftServlet.scala:517) > net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:536) > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandle > r.java:1148) > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCol > lection.java:230) > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:1 > 14) > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > org.mortbay.jetty.Server.handle(Server.java:324) > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535) > > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java > :880) > org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409 ) > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:52 0) > > -- > > What can that "Invalid column type" be indicating? > I'm using Lift 1.0. > > /Jon --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---