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