Hi David, In my LimitOrder Meta Object, I did:
override def afterCreate to inform an Actor, everytime a new Order is created. The Actor than calls the joinOtherOrders method. # I think I understand it now. Cause I'm creating new orders inside the loop at some point. But still I don' t really know, why it gets called after the old scope of joinOtherOrders ends... thanks. > > > On Sun, Nov 29, 2009 at 7:24 AM, Hannes <hannes.flo...@gmx.li > <mailto:hannes.flo...@gmx.li>> wrote: > > Hey Lifters, > > > How is joinOtherOrders being invoked? > > > > I've some really strange things going on here. Please consider this > method definition. I've put alot of print "debug" statements between > other statements. There's a while-loop that only starts, when the > given > list (orders) is not empty. It stops when "done" is set to true. > So far, > so good. Than, have a look at the Lift output. I put in a comment, > pointing out where the program runs into the while loop. > > What really shocks me, are these print statements : > > before done=false > after done=true > i += 1 > outside while > INFO - Service request (GET) / took 121 Milliseconds > start of joinAll! > > > The loop ends with "outside while" and than the method gets called > again > immediately! But who calls it? I don't.... > > Any ideas? > > thanks. > > > > ---------------------------- method definition > -------------------------------------------------------------------------- > > def joinOtherOrders: Unit = { > > def joinAll(orders: List[LimitOrder]) = { > > println("start of joinAll!") > > var done = false > > var i = 0 > > while (!orders.isEmpty && !done) { > > println("i=" + i + ", " + "orders.isEmpty=" + > orders.isEmpty + ", " + "done=" + done) > > if (this.lots.is <http://this.lots.is> == > orders(i).lots.is <http://lots.is>){ > > println("case-1") > > println("this=" + this + ", orders(i)=" + > orders(i)) > > this.open(orders(i)) > > done = true > > } > > if (this.lots.is <http://this.lots.is> < > orders(i).lots.is <http://lots.is>){ > > println("case-2") > > println("this=" + this + ", orders(i)=" + > orders(i)) > > orders(i).reduceLots(this.lots.is > <http://this.lots.is>) > > val newOrder = orders(i).cloneWith(this.lots.is > <http://this.lots.is>) > > newOrder.save > > this.open(newOrder) > > println("before done=" + done) > > done = true > > println("after done=" + done) > > } > > if (this.lots.is <http://this.lots.is> > > orders(i).lots.is <http://lots.is>){ > > println("case-3") > > println("this=" + this + ", orders(i)=" + > orders(i)) > > this.reduceLots(orders(i).lots.is <http://lots.is>) > > val newOrder = this.cloneWith(orders(i).lots.is > <http://lots.is>) > > newOrder.save > > newOrder.open(orders(i)) > > } > > i += 1 > > println("i += 1") > > } > > println("outside while") > > } > > def findLimitOrdersById: List[LimitOrder] = > > this.findCandidates.map(x => LimitOrderMetaObj.findAll( > > By(LimitOrderMetaObj.id, x)).head) > > joinAll(findLimitOrdersById) > > } > > > ---------- Lift Output > > ------------------------------------------------------------------------------- > > > [INFO] Started Jetty Server > [INFO] Starting scanner at interval of 5 seconds. > INFO - Service request (GET) > /comet_request/54834680365/y7kybsmuyv1g took 64 Milliseconds > INFO - Service request (GET) > /comet_request/85319966940/y7kybsmuyv1g took 23 Milliseconds > INFO - Service request (GET) /favicon.ico took 86 Milliseconds > INFO - Service request (GET) > /comet_request/41521581405/y7kybsmuyv1g took 48 Milliseconds > INFO - Service request (GET) > /comet_request/93176242746/y7kybsmuyv1g took 7 Milliseconds > INFO - Service request (GET) /favicon.ico took 38 Milliseconds > INFO - Service request (GET) /favicon.ico took 5 Milliseconds > INFO - Service request (GET) / took 551 Milliseconds > INFO - Service request (GET) > /comet_request/81361316835/y7kybsmuyv1g took 9 Milliseconds > INFO - Service request (GET) /favicon.ico took 16 Milliseconds > INFO - Service request (GET) / took 61 Milliseconds > INFO - Service request (GET) > /comet_request/76898140873/y7kybsmuyv1g took 30 Milliseconds > INFO - Service request (GET) > /comet_request/e8jesgmo10oq/cometAjax.js took 14 Milliseconds > INFO - Service request (GET) / took 354 Milliseconds > INFO - Service request (GET) / took 734 Milliseconds > INFO - Service request (GET) / took 484 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 7 > Milliseconds > INFO - Service request (GET) /favicon.ico took 4 Milliseconds > INFO - Service request (GET) > /comet_request/78026241833/e8jesgmo10oq took 55 Milliseconds > INFO - Service request (GET) > /comet_request/28225538857/e8jesgmo10oq took 600 Milliseconds > INFO - Service request (GET) /user_mgt/sign_up took 711 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (GET) /user_mgt/login took 38 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (POST) /user_mgt/login took 122 Milliseconds > INFO - Service request (GET) / took 93 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (GET) > /comet_request/42818301584/e8jesgmo10oq took 1144 Milliseconds > INFO - Service request (GET) /limitorder/list took 99 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (GET) /limitorder/create took 77 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (POST) /limitorder/create took 134 Milliseconds > start of joinAll! > outside while > INFO - Service request (GET) /limitorder/list took 270 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (GET) /limitorder/create took 51 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (POST) /limitorder/create took 11 Milliseconds > start of joinAll! > outside while > INFO - Service request (GET) /limitorder/list took 56 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (GET) /user_mgt/logout took 21 Milliseconds > INFO - The CometActor org.tobster.comet.mar...@c595bcd Received > Shutdown > INFO - Service request (GET) / took 82 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (GET) > /comet_request/16awv92sf1zgl/cometAjax.js took 2 Milliseconds > INFO - Service request (GET) > /comet_request/21077236431/16awv92sf1zgl took 41 Milliseconds > INFO - Service request (GET) > /comet_request/89548874922/16awv92sf1zgl took 817 Milliseconds > INFO - Service request (GET) /user_mgt/sign_up took 325 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (POST) /user_mgt/sign_up took 69 Milliseconds > INFO - Service request (GET) / took 21 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (GET) > /comet_request/33304915285/16awv92sf1zgl took 2485 Milliseconds > INFO - Service request (GET) /limitorder/create took 102 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (POST) /limitorder/create took 33 Milliseconds > start of joinAll! > outside while > INFO - Service request (GET) / took 42 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (GET) > /comet_request/43041247578/16awv92sf1zgl took 1270 Milliseconds > INFO - Service request (GET) /limitorder/create took 72 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 2 > Milliseconds > INFO - Service request (POST) /limitorder/create took 34 Milliseconds > start of joinAll! > outside while > INFO - Service request (GET) / took 28 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (GET) > /comet_request/94649970499/16awv92sf1zgl took 2455 Milliseconds > INFO - Service request (GET) /limitorder/create took 25 Milliseconds > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > INFO - Service request (POST) /limitorder/create took 10 Milliseconds > > ####### Interesting things start here > ##################################### > > start of joinAll! > i=0, orders.isEmpty=false, done=false > case-3 > this={ owner=2, type=, lots=2, market= }, orders(i)={ owner=1, > type=SELL, lots=1, market=Beginner } > computeAndSetMarketValue > computeNewMarketValue > setMarketValue from ID=1 to: 10001 > findAndCloseOpenOrder: found=0 > findAndCloseOpenOrder: found=0 > i += 1 > i=1, orders.isEmpty=false, done=false > case-2 > this={ owner=2, type=, lots=1, market= }, orders(i)={ owner=1, > type=SELL, lots=2, market=Beginner } > computeAndSetMarketValue > computeNewMarketValue > setMarketValue from ID=1 to: 10001 > findAndCloseOpenOrder: found=0 > findAndCloseOpenOrder: found=0 > before done=false > after done=true > i += 1 > outside while > INFO - Service request (GET) / took 121 Milliseconds > start of joinAll! > i=0, orders.isEmpty=false, done=false > case-1 > this={ owner=2, type=BUY, lots=1, market=Beginner }, orders(i)={ > owner=1, type=SELL, lots=1, market=Beginner } > computeAndSetMarketValue > computeNewMarketValue > setMarketValue from ID=1 to: 10001 > findAndCloseOpenOrder: found=0 > findAndCloseOpenOrder: found=0 > i += 1 > outside while > start of joinAll! > outside while > INFO - Service request (GET) /images/ajax-loader.gif took 1 > Milliseconds > > -- > > 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 > <mailto:liftweb@googlegroups.com>. > To unsubscribe from this group, send email to > liftweb+unsubscr...@googlegroups.com > <mailto:liftweb%2bunsubscr...@googlegroups.com>. > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en. > > > > > > -- > Lift, the simply functional web framework http://liftweb.net > Beginning Scala http://www.apress.com/book/view/1430219890 > Follow me: http://twitter.com/dpp > Surf the harmonics > > -- > > You received this message because you are subscribed to the Google > Groups "Lift" group. > To post to this group, send email to lift...@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. -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@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.