W3C home > Mailing lists > Public > public-webapps@w3.org > October to December 2011

Re: [IndexedDB] Throwing when *creating* a transaction

From: Jonas Sicking <jonas@sicking.cc>
Date: Tue, 1 Nov 2011 00:39:46 -0700
Message-ID: <CA+c2ei9LVYU3iHpWQXjkYf5i3RATh==PCpmjnYBXkG9W0vdPKw@mail.gmail.com>
To: Israel Hilerio <israelh@microsoft.com>
Cc: "jsbell@google.com" <jsbell@google.com>, "public-webapps@w3.org" <public-webapps@w3.org>
Removed!

On Mon, Oct 31, 2011 at 11:15 PM, Israel Hilerio <israelh@microsoft.com> wrote:
> IE is okay with removing this from the spec.
>
>
>
> Israel
>
>
>
> On Monday, October 31, 2011 5:06 PM, Joshua Bell wrote:
>
> From: jsbell@google.com [mailto:jsbell@google.com] On Behalf Of Joshua Bell
> Sent: Monday, October 31, 2011 5:06 PM
> To: Webapps WG
> Subject: Re: [IndexedDB] Throwing when *creating* a transaction
>
>
>
> On Mon, Oct 31, 2011 at 3:02 PM, Jonas Sicking <jonas@sicking.cc> wrote:
>
> Hi guys,
>
> Currently the spec contains the following sentence:
>
> "Conforming user agents must automatically abort a transaction at the
> end of the scope in which it was created, if an exception is
> propagated to that scope."
>
> This means that the following code:
>
> setTimeout(function() {
>  doStuff();
>  throw "booo";
> }, 10);
>
> function doStuff() {
>  var trans = db.transaction(["store1"], IDBTransaction.READ_WRITE)
>  trans.objectStore("store1").put({ some: "value" }, 5);
> }
>
> is supposed to abort the transaction. I.e. since the same callback (in
> this case a setTimeout callback) which created the transaction later
> on throws, the spec says to abort the transaction. This was something
> that we debated a long time ago, but my recollection was that we
> should not spec this behavior. It appears that this was never removed
> from the spec though.
>
> One reason that I don't think that we should spec this behavior is
> that it's extremely tedious and error prone to implement. At every
> point that an implementation calls into javascript, the implementation
> has to add code which checks if an exception was thrown and if so,
> check if any transactions were started, and if so abort them.
>
> I'd like to simply remove this sentence. Any objections?
>
>
>
> No objections here. Chrome doesn't currently implement this behavior.
>
>
>
> Note, this does *not* affect the aborting that happens if an exception
> is thrown during a "success" or "error" event handler.
>
> / Jonas
>
>
Received on Tuesday, 1 November 2011 07:40:50 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:48 GMT