In your code in what conditions  joinOtherOrders gets called ?

Br's,
Marius

On Nov 29, 6:18 pm, Hannes <[email protected]> wrote:
> Hi Tim,> Hannes,
>
> > Firstly, I really, really wouldn't write your code like that...
>
> > Things of note:
> > - two defs inside defs... you usually wouldnt do this without a good reason 
> > (like SHtml.submit(whatever _))
>
> The two defs only make sence together, that's why I put them together in
> one def. I think that's encapsulation...> - dont use while loops. period. you 
> have a List[T], use foreach if you have a unit operation
>
> Yeah, that's true. But the problem is, that my logic requires to stop
> the iteration at some point. How I gonna do that with a foreach construct?> 
> def joinAll(orders: List[LimitOrder]): Unit =
> >   orders.foreach(order => {
> >     // your logic here
> >   })
>
> > You should look to remove a lot of that boiler plate... its looks very 
> > javaish and mutable. Generally speaking, scala programmers avoid mutable 
> > state like one would avoid bubonic plague.
>
> Your totally right! Its mutable, cause its changing the state of my
> objects. But that's necessary at this point.> Before worrying about the 
> errors, id change your code, then take another look... its almost certainly 
> this bad organisation causing the issues.
>
> I agree with you, that this is not the most beautiful code I every saw,
> but I believe that the things you mentioned are not interfering with the
> problem I'm facing. At least not because of a while-loop and some inner
> local defs.
>
> > Cheers, Tim
>
> thanks.
>
> > On 29 Nov 2009, at 15:24, Hannes wrote:
>
> >> Hey Lifters,
>
> >> 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 == orders(i).lots.is){
>
> >>                    println("case-1")
>
> >>                    println("this=" + this + ", orders(i)=" + orders(i))
>
> >>                    this.open(orders(i))
>
> >>                    done = true
>
> >>                }
>
> >>                if (this.lots.is < orders(i).lots.is){
>
> >>                    println("case-2")
>
> >>                    println("this=" + this + ", orders(i)=" + orders(i))
>
> >>                    orders(i).reduceLots(this.lots.is)
>
> >>                    val newOrder = orders(i).cloneWith(this.lots.is)
>
> >>                    newOrder.save
>
> >>                    this.open(newOrder)
>
> >>                    println("before done=" + done)
>
> >>                    done = true
>
> >>                    println("after done=" + done)
>
> >>                }
>
> >>                if (this.lots.is > orders(i).lots.is){
>
> >>                    println("case-3")
>
> >>                    println("this=" + this + ", orders(i)=" + orders(i))
>
> >>                    this.reduceLots(orders(i).lots.is)
>
> >>                    val newOrder = this.cloneWith(orders(i).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   
> >>  
>
> ...
>
> read more »

--

You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.


Reply via email to