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
>  >>  > [email protected]
>  >>  > https://lists.neo4j.org/mailman/listinfo/user
>  >>  >
>  >>
>  >> _______________________________________________
>  >>  Neo mailing list
>  >>  [email protected]
>  >>  https://lists.neo4j.org/mailman/listinfo/user
>  >>
>  >>
>  > _______________________________________________
>  > Neo mailing list
>  > [email protected]
>  > https://lists.neo4j.org/mailman/listinfo/user
>  >
>
> _______________________________________________
>  Neo mailing list
>  [email protected]
>  https://lists.neo4j.org/mailman/listinfo/user
>
>
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to