Sounds good! I've updated the bug to reflect this decision.
Israel
On Friday, December 16, 2011 3:37 PM, Joshua Bell wrote:
On Fri, Dec 16, 2011 at 3:30 PM, Jonas Sicking <jonas@sicking.cc<mailto:jonas@sicking.cc>> wrote:
On Fri, Dec 16, 2011 at 2:41 PM, Israel Hilerio <israelh@microsoft.com<mailto:israelh@microsoft.com>> wrote:
> On December 15, 2011 10:20 PM, Jonas Sicking wrote:
>> On Thu, Dec 15, 2011 at 12:54 PM, Joshua Bell <jsbell@chromium.org<mailto:jsbell@chromium.org>>
>> wrote:
>> > Is there any particular reason why IDBTransaction.objectStore() and
>> > IDBObjectStore.index() should be usable (i.e. return values vs. raise
>> > exceptions) after the containing transaction has finished?
>> >
>> > Changing the spec so that calling these methods after the containing
>> > transaction has finished raises InvalidStateError (or
>> > TransactionInactiveError) could simplify implementations.
>>
>> That would be ok with me.
>>
>> Please file a bug though.
>>
>> / Jonas
>>
> Do we want to throw two Exceptions or one?
> We currently throw a NOT_ALLOWED_ERR for IDBTransaction.objectStore() and a TRANSACTION_INACTIVE_ERR for IDBObjectStore.index().
>
> It seems that we could throw a TRANSACTION_INACTIVE_ERR for both.
> What do you think?
I think InvalidStateError is slightly more correct (for both
IDBTransaction.objectStore() and IDBObjectStore.index) since we're not
planning on throwing if those functions are called in between
transaction-request callbacks, right?
I.e. TransactionInactiveError is more appropriate if it's always
thrown whenever a transaction is inactive, which isn't the case here.
/ Jonas
Agreed - that we should be consistent between methods, and that InvalidStateError is slightly more correct for the reason Jonas cites.
For reference, Chrome currently throws NOT_ALLOWED_ERR for IDBTransaction.objectStore() but does not throw for IDBObjectStore.index().