another one-to-one problem

12 views
Skip to first unread message

Tim Pigden

unread,
Aug 5, 2013, 8:06:28 AM8/5/13
to mapp...@googlegroups.com
this is occuring during a write operation rather than a read. 
my main record that I'm writing (Activity) has an option manytoone to [ScheduleItem] which in turn has a onetoonereverse option to [Visit]



scala.MatchError: null
at com.googlecode.mapperdao.state.persistcmds.CmdPhase$$anonfun$related$1$$anonfun$12.apply(CmdPhase.scala:464)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase$$anonfun$related$1.apply(CmdPhase.scala:462)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase$$anonfun$related$1.apply(CmdPhase.scala:109)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:309)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase.related(CmdPhase.scala:109)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase.com$googlecode$mapperdao$state$persistcmds$CmdPhase$$update(CmdPhase.scala:88)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase.com$googlecode$mapperdao$state$persistcmds$CmdPhase$$doUpdate(CmdPhase.scala:517)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase$$anonfun$related$1.apply(CmdPhase.scala:272)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase$$anonfun$related$1.apply(CmdPhase.scala:109)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:309)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase.related(CmdPhase.scala:109)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase.com$googlecode$mapperdao$state$persistcmds$CmdPhase$$insert(CmdPhase.scala:52)
at com.googlecode.mapperdao.state.persistcmds.CmdPhase.toInsertCmd(CmdPhase.scala:29)
at com.googlecode.mapperdao.jdbc.impl.MapperDaoImpl$$anonfun$1.apply(MapperDaoImpl.scala:77)
at com.googlecode.mapperdao.jdbc.impl.MapperDaoImpl$$anonfun$1.apply(MapperDaoImpl.scala:74)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:309)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at com.googlecode.mapperdao.jdbc.impl.MapperDaoImpl.insert0(MapperDaoImpl.scala:73)
at com.googlecode.mapperdao.MapperDao$class.insertBatch(MapperDao.scala:57)
at com.googlecode.mapperdao.jdbc.impl.MapperDaoImpl.insertBatch(MapperDaoImpl.scala:29)
at com.googlecode.mapperdao.utils.CRUD$class.createBatch(CRUD.scala:32)
at com.optrak.bi.etl.BIPersist$ActivityDao.createBatch(BIPersist.scala:268)
at com.optrak.bi.etl.BIPersist$ActivityDao$$anonfun$saveActities$1.apply(BIPersist.scala:274)
at com.optrak.bi.etl.BIPersist$ActivityDao$$anonfun$saveActities$1.apply(BIPersist.scala:273)
at com.optrak.scalautil.ScalazBits$ExceptionWrap.apply(ScalazBits.scala:434)
at com.optrak.scalautil.ScalazBits$ExceptionWrap$.apply(ScalazBits.scala:455)
at com.optrak.bi.etl.BIPersist$ActivityDao.saveActities(BIPersist.scala:273)
at com.optrak.bi.etl.TestDataConnections$$anonfun$1$$anonfun$apply$10$$anonfun$apply$11$$anonfun$apply$12.apply(TestDataConnections.scala:74)
at com.optrak.bi.etl.TestDataConnections$$anonfun$1$$anonfun$apply$10$$anonfun$apply$11$$anonfun$apply$12.apply(TestDataConnections.scala:73)
at scalaz.Validation$class.flatMap(Validation.scala:22)
at scalaz.Success.flatMap(Validation.scala:82)
at com.optrak.bi.etl.TestDataConnections$$anonfun$1$$anonfun$apply$10$$anonfun$apply$11.apply(TestDataConnections.scala:73)
at com.optrak.bi.etl.TestDataConnections$$anonfun$1$$anonfun$apply$10$$anonfun$apply$11.apply(TestDataConnections.scala:71)
at com.optrak.scalautil.ScalazBits$.eWrap(ScalazBits.scala:424)
at com.optrak.bi.etl.TestDataConnections$$anonfun$1$$anonfun$apply$10.apply(TestDataConnections.scala:71)
at com.optrak.bi.etl.TestDataConnections$$anonfun$1$$anonfun$apply$10.apply(TestDataConnections.scala:66)
at org.specs2.mutable.SpecificationFeatures$$anon$1$$anonfun$asResult$1.apply(Specification.scala:34)
at org.specs2.mutable.SpecificationFeatures$$anon$1$$anonfun$asResult$1.apply(Specification.scala:34)
at org.specs2.execute.AsResult$$anon$10.asResult(Result.scala:230)
at org.specs2.execute.AsResult$.apply(Result.scala:238)
at org.specs2.specification.Contexts$$anon$4.apply(Contexts.scala:44)
at org.specs2.mutable.SpecificationFeatures$$anon$1.asResult(Specification.scala:34)
at org.specs2.execute.AsResult$.apply(Result.scala:238)
at org.specs2.specification.Example$$anonfun$apply$1.apply(Fragment.scala:141)
at org.specs2.specification.Example$$anonfun$apply$1.apply(Fragment.scala:141)
at org.specs2.specification.Example.execute(Fragment.scala:104)
at org.specs2.specification.FragmentExecution$$anonfun$1.apply(FragmentExecution.scala:52)
at org.specs2.specification.FragmentExecution$$anonfun$1.apply(FragmentExecution.scala:52)
at org.specs2.execute.ResultExecution$class.execute(ResultExecution.scala:22)
at org.specs2.execute.ResultExecution$.execute(ResultExecution.scala:76)
at org.specs2.specification.FragmentExecution$class.executeBody(FragmentExecution.scala:28)
at org.specs2.runner.NotifierRunner$$anon$2$$anon$1.executeBody(NotifierRunner.scala:14)
at org.specs2.specification.FragmentExecution$class.execute(FragmentExecution.scala:52)
at org.specs2.runner.NotifierRunner$$anon$2$$anon$1.execute(NotifierRunner.scala:14)
at org.specs2.specification.FragmentExecution$$anonfun$executeFragment$1$$anonfun$apply$1.apply(FragmentExecution.scala:35)
at org.specs2.specification.FragmentExecution$$anonfun$executeFragment$1$$anonfun$apply$1.apply(FragmentExecution.scala:35)
at org.specs2.control.Exceptions$class.catchAllOr(Exceptions.scala:54)
at org.specs2.control.Exceptions$.catchAllOr(Exceptions.scala:109)
at org.specs2.specification.FragmentExecution$$anonfun$executeFragment$1.apply(FragmentExecution.scala:35)
at org.specs2.specification.FragmentExecution$$anonfun$executeFragment$1.apply(FragmentExecution.scala:35)
at org.specs2.reporter.DefaultExecutionStrategy$class.executeWithBarrier$1(ExecutionStrategy.scala:103)
at org.specs2.reporter.DefaultExecutionStrategy$$anonfun$executeConcurrently$1$$anonfun$apply$2.apply(ExecutionStrategy.scala:105)
at org.specs2.reporter.DefaultExecutionStrategy$$anonfun$executeConcurrently$1$$anonfun$apply$2.apply(ExecutionStrategy.scala:105)
at org.specs2.internal.scalaz.concurrent.Promise$Unfulfilled$.fulfill(Promise.scala:117)
at org.specs2.internal.scalaz.concurrent.Promise$Done.eval(Promise.scala:147)
at org.specs2.internal.scalaz.concurrent.Promise$$anonfun$e$1.apply(Promise.scala:17)
at org.specs2.internal.scalaz.concurrent.Promise$$anonfun$e$1.apply(Promise.scala:17)
at org.specs2.internal.scalaz.concurrent.Actor.org$specs2$internal$scalaz$concurrent$Actor$$act(Actor.scala:53)
at org.specs2.internal.scalaz.concurrent.Actor$$anonfun$work$1.apply$mcV$sp(Actor.scala:44)
at org.specs2.internal.scalaz.concurrent.Actor$$anonfun$work$1.apply(Actor.scala:44)
at org.specs2.internal.scalaz.concurrent.Actor$$anonfun$work$1.apply(Actor.scala:44)
at org.specs2.internal.scalaz.concurrent.StrategysLow$$anon$3$$anon$4.call(Strategy.scala:65)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

Konstantinos Kougios

unread,
Aug 5, 2013, 3:38:25 PM8/5/13
to mapp...@googlegroups.com
Hi Tim,

    What version of mapperdao are you on?

The code on the failed line has a case for null, maybe a fix I did after the version you are using:

                            val oldFVM = oldVMO.map {
                                oldVM =>
                                    oldVM.oneToOneReverse(column) match {
                                        case oldFo: DeclaredIds[_] =>
                                            oldFo.mapperDaoValuesMap
                                        case null => null
                                    }
                            }

Can you try 1.0.0.rc24-${scala.version}-SNAPSHOT and let me know how it goes? If it fails again, can you please copy-paste the source code around the line of CmdPhase where it fails?

Thanks
--
You received this message because you are subscribed to the Google Groups "mapperdao" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapperdao+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Tim Pigden

unread,
Aug 5, 2013, 3:52:17 PM8/5/13
to mapp...@googlegroups.com
can't test anything at the moment, just in middle of massive refactoring.
But just re-got the code (did play update and idea with-sources=yes. It definitely went to get a new version but all I get in the code is this

val foreignTpe = foreignEntity.tpe
if (fo == null) {
val oldFVM = oldVMO.map {
oldVM =>
oldVM.oneToOneReverse(column) match {
case oldFo: DeclaredIds[_] =>
oldFo.mapperDaoValuesMap
}
}
if (oldFVM.isDefined && oldFVM.get != null) {
EntityRelatedCmd(fo, column, null, oldFVM, tpe, newVM, oldVMO, true) :: doDelete(foreignTpe, oldFVM.get, updateConfig.deleteConfig)
} else {
Nil
}

--
Tim Pigden
Optrak Distribution Software Limited
+44 (0)1992 517100
http://www.linkedin.com/in/timpigden
http://optrak.com
Optrak Distribution Software Ltd is a limited company registered in England and Wales.
Company Registration No. 2327613 Registered Offices: Suite 6, Hoe Lane, Ware, SG12 9LR England 
This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. Any views or opinions expressed are solely those of the author and do not necessarily represent those of Optrak Distribution Software Ltd. If you are not the intended recipient of this email, you must neither take any action based upon its contents, nor copy or show it to anyone. Please contact the sender if you believe you have received this email in error.

Konstantinos Kougios

unread,
Aug 5, 2013, 4:28:47 PM8/5/13
to mapp...@googlegroups.com
yes seems it is fixed in rc24-snapshot

anyway, when you can give it a try, please let me know

cheers
Reply all
Reply to author
Forward
0 new messages