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