It seems like the ATM doesn't dispose my resource explicitly . The
dispose method in AbstractTransaction just clear the Resources,
doesn't call the resource's dispose method. And I will dispose my
UnitOfWork when the resource dispose. So in this situation, my
unitofwork don't be disposed, when I use it again, it still try to
persist dirty entity again.  I find the problem because when I execute
all of my unit test, one will be failed. But when I only execute it,
it pass.

On Mon, Dec 8, 2008 at 1:32 PM, Ayende Rahien <[EMAIL PROTECTED]> wrote:
> IIRC, you shouldn't do anything, if the transaction wasn't committed, it
> will be rolled back on dispose.
>
> On Mon, Dec 8, 2008 at 12:28 AM, karron <[EMAIL PROTECTED]> wrote:
>>
>> Thank you very much for your very quick response, Ayende.
>>
>>  I set ISession.FlushMode = FlushMode.Commit.  So when the transaction
>> commit, my entity will be persisted to db. And before inserting my
>> entity, the validator will check if the entity is valid, it throws an
>> exception. In other words, the validation exceptions are raised at
>> commit.  So how to change my codes to avoid this problem? I have no
>> idea about it. Thank you very much.
>>
>> On Mon, Dec 8, 2008 at 1:13 PM, Ayende Rahien <[EMAIL PROTECTED]> wrote:
>> >  CommittedResourceException means that you have failed to commit the
>> > transaction so you can't even roll it back.
>> >
>> > On Mon, Dec 8, 2008 at 12:10 AM, karron <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Hi,
>> >>
>> >> I implemented a customer resource from IResource interface, it begins(
>> >> commit, rollback) nhibernate transactions. I also add my customer
>> >> IPreInsertEventListener to nh for validations. When my resource
>> >> commit, the validation listener checks if the entity is valid, if not,
>> >> it throws an exception. And AbstractTransaction catches the exception,
>> >> and wraps it as CommitResourceException, and throws it.
>> >> TransactionInterceptor catches this exception, but it says "// Whoops.
>> >> Special case, let's throw without  attempt to rollback anything" ( in
>> >>
>> >>
>> >> D:\Sources\castle\Facilities\AutomaticTransactionManagement\Castle.Facilities.AutomaticTransactionManagement\TransactionInterceptor.cs,
>> >> line 128). I don't know why not rollback the transaction. I don't know
>> >> which is special.  Any suggestion?
>> >>
>> >> I haven't used NHIntegrationFacility yet.
>> >>
>> >> Thanks.
>> >>
>> >> --
>> >> Regards,
>> >> Karron
>> >>
>> >>
>> >
>> >
>> > >
>> >
>>
>>
>>
>> --
>> Regards,
>> Karron
>>
>>
>
>
> >
>



-- 
Regards,
Karron

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" 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/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to