Allright, gotcha. I could try to reproduce the problem you had using
your code and maybe find bugs related to it!

2008/5/11 Philip Jägenstedt <[EMAIL PROTECTED]>:
> No, that part of the code isn't the problem. It's there because I left
> it when moving the transaction outside the loop to reproduce the
> error, it wasn't even there when the problem first occured.
>
> On 5/11/08, Mattias Persson <[EMAIL PROTECTED]> wrote:
>> Also with some irrelevant parts taken out:
>>
>>  for ( UUID id : artistIds ) {
>>  ...
>>
>>      try {
>>            artist.updateWikipediaBlurb();
>>        } catch (WikipediaException e) {
>>            // FIXME: log this error!
>>            tx.failure();
>>            continue;
>>        }
>>
>> ...
>>
>> }
>>
>>  2008/5/11 Philip Jägenstedt <[EMAIL PROTECTED]>:
>>  > With some irrelevant parts taken out:
>>  >
>>  > Transaction tx = Transaction.begin();
>>  > try {
>>  >   for (UUID id : artistIds) {
>>  >       MushArtist artist = maf.getArtistById(id);
>>  >       if (artist == null) {
>>  >           // replicate data from MusicBrainz WebService
>>  >           try {
>>  >               Query q = new Query();
>>  >               Includes inc = new Includes();
>>  >               inc.include("url-rels");
>>  >               Artist mbArtist = q.getArtistById(id, inc);
>>  >               artist = maf.copyArtist(mbArtist);
>>  >           } catch (WebServiceException e) {
>>  >               throw new ServletException(e);
>>  >           }
>>  >       }
>>  >   }
>>  >   tx.success();
>>  > } finally {
>>  >   tx.finish();
>>  > }
>>  >
>>  > Philip
>>  >
>>  > On 5/11/08, Mattias Persson <[EMAIL PROTECTED]> wrote:
>>  >> 2008/5/11 Philip Jägenstedt <[EMAIL PROTECTED]>:
>>  >>
>>  >> > On 5/11/08, Mattias Persson <[EMAIL PROTECTED]> wrote:
>>  >>  >> Allright, I'm pretty sure that it's all about the usage of
>>  >>  >>  tx.failure() (which is very seldom needed btw). In the first code
>>  >>  >>  snippet you call tx.failure() inside the for-loop and continues.
>>  >>  >
>>  >>  > No, I throw an Exception. updateWikipediaBlurb() isn't failing, it's
>>  >>  > the musicbrainz webservice that fails with a WebServiceException.
>>  >>  > After throwing a ServletException the finally block with tx.finish()
>>  >>  > ought to be run, after which the webserver returns HTTP 500 or
>>  >>  > similar.
>>  >>
>>  >> Well, somewhere inside that for-loop is a tx.failure(); followed by a
>>  >>  continue; statement. I was refering to that piece of code.
>>  >>
>>  >> >
>>  >>  >>  LuceneIndexService seems to ignore that fact. Then you continue to
>>  >>  >
>>  >>  > But I'm using NeoIndexService, how does that change matters?
>>  >>
>>  >> Since NeoIndexService only uses neo it should react properly to the
>>  >>  transaction failure/success, weird that it didn't in your case.
>>  >>
>>  >> >
>>  >>  > Philip
>>  >>  > _______________________________________________
>>  >>  > Neo mailing list
>>  >>  > User@lists.neo4j.org
>>  >>  > https://lists.neo4j.org/mailman/listinfo/user
>>  >>  >
>>  >>
>>  >> _______________________________________________
>>  >>  Neo mailing list
>>  >>  User@lists.neo4j.org
>>  >>  https://lists.neo4j.org/mailman/listinfo/user
>>  >>
>>  >>
>>  > _______________________________________________
>>  > Neo mailing list
>>  > User@lists.neo4j.org
>>  > https://lists.neo4j.org/mailman/listinfo/user
>>  >
>>
>> _______________________________________________
>>  Neo mailing list
>>  User@lists.neo4j.org
>>  https://lists.neo4j.org/mailman/listinfo/user
>>
>>
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to