Hi Marius,

the method is called from an Actor, everytime a new order is created. I 
did override def afterCreate in my LimitOrder MetaObject.

thanks.
> 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.
>
>
>   

--

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