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