Hi James,

I've managed to recreate the problem.  I'll do some more investigation soon 
when I get some time.

Cheers,
    Richard
  From: James Crowley 
  Sent: Wednesday, May 05, 2010 3:16 PM
  To: [email protected] 
  Cc: [email protected] 
  Subject: Re: [nhusers] Re: [nhibernate-development] Thread safety problem in 
QueryParameters.PrepareParameterTypes ?


  Anyone managed to try this? Should just be a case of opening the proj and 
running the test. Would be good to know I'm not going crazy. 


  Thanks :)


  James


  On 4 May 2010 21:24, James Crowley <[email protected]> wrote:

    Hi guys, 


    I've posted a ZIP with a unit test up here: 
http://216.121.112.228/browse/NH-2192


    Please let me know if you can reproduce or not!!


    Thank you


    James


    On 23 April 2010 16:41, Ayende Rahien <[email protected]> wrote:

      There _was_ a problem there, IIRC.  
      I am pretty sure that we fix that.
      Are you using the latest? Can you provide a failing test? 



      On Fri, Apr 23, 2010 at 3:09 PM, James Crowley <[email protected]> 
wrote:

        Hi guys,


        Are you aware of a threading issue within 
QueryParameters.PrepareParameterTypes? I've got two threads (operating over 
different sessions) that, when run starting from the same execution point at 
the start of the PrepareParameterTypes method. All works fine when the other 
thread is frozen, but when both are run at the same time, there are issues with 
the parameter locations.


        It's something to do with here:


        while ((location < sqlParameters.Count) && 
(sqlParameters[location].ParameterPosition != null))
        location++;


        in that this can actually result in location being equal to 
sqlParameters.Count (and later having an IndexOutOfRange exception being 
thrown). However, it's only happening because ParameterPosition is unexpectedly 
set. Still trying to figure out how, as all I can see are local variables right 
now.


        I'm still trying to pin this down exactly, but wanted to check if you 
were already aware of not?


        Thanks,


        James



Reply via email to