See https://github.com/neo4j/neo4j/issues/1902
On Monday, February 3, 2014 10:30:15 AM UTC-5, brian wrote:
>
> This is what I'm seeing:
>
> Non-streaming: returns HTTP status 400 and a payload with {message="Unable
> to commit transaction","exception":"TransactionFailureException"..."}
> Streaming: returns HTTP 200 and payload with {"columns":[],"data":[]}
>
> So it looks like this is a bug in the streaming case.
>
> -brian
>
>
> On Saturday, February 1, 2014 3:59:29 PM UTC-5, Michael Hunger wrote:
>>
>> Yep, that's what it does in the non-streaming case.
>>
>> afaik case 3 and 4 return a http 500
>>
>> in streaming you don't know b/c you send the headers before each of the
>> queries is actually processed and their results come in even later than
>> that, so no way of updating http headers. that's why the streaming approach
>> adds error messages to the payload.
>>
>> e.g. see
>> http://docs.neo4j.org/chunked/stable/rest-api-transactional.html#rest-api-handling-errors
>>
>> HTH
>>
>> Michael
>>
>> Am 01.02.2014 um 16:23 schrieb brian <[email protected]>:
>>
>> Hi Michael,
>>
>> I can't give you the code, but I can probably work up a test case.
>> Although it's actually pretty simple. Just create two nodes with a
>> relationship between them. Then issue a Cypher query that would find one
>> of the nodes (it could just be a simple query on some property of one of
>> the nodes) and delete that node. So something like
>>
>> START n = node(*) WHERE n.myprop = something DELETE n
>>
>> As to what error I'm expecting... I would expect an error in the HTTP
>> status code. But I understand that there's some controversy around this
>> since the resource I'm addressing via the /cypher endpoint is the query
>> itself and the query was valid. This is part of the problem in issuing
>> queries in a RESTful API. Anyway, could you tell me what I should expect?
>> I think there are 3 cases:
>>
>> - The query was valid and the delete was successful and one or more
>> entities were deleted. I would expect to get an HTTP 200. Not sure what I
>> should see in the payload although some indication of which entities or how
>> many entities were deleted would be helpful.
>> - The query was valid and the delete was successful, but no entities were
>> deleted because the predicate didn't match any entities. I would expect an
>> HTTP 200 here.
>> - The query was valid and the delete was NOT successful due to an error
>> (such as the constraint violation I described). What is the expected
>> behavior here?
>> - The query was invalid. I'd expect at least an error in the HTTP status
>> (probably a 400) and maybe some more details in the payload.
>>
>> Thanks.
>>
>> -brian
>>
>>
>> On Friday, January 31, 2014 8:46:05 PM UTC-5, Michael Hunger wrote:
>>>
>>> Do you have the example code & REST call?
>>>
>>> What kind of error are you referring to? http status code or payload ?
>>>
>>> Michael
>>>
>>> Am 31.01.2014 um 22:50 schrieb brian <[email protected]>:
>>>
>>> Hi all,
>>>
>>> I've constructed a query that will result in a DELETE on a Node with
>>> existing relationships. When executed in the Neo4j browser, this returns an
>>> Exception as expected. And I can see a stack trace in console.log that
>>> ends with a ConstraintViolationException (also as expected). When I
>>> execute this same query via the REST API using the /cypher endpoint I still
>>> see the exception in console.log, but no error is returned by the REST API.
>>> I'm pretty sure this is a change in behavior as I now have a unit test
>>> that is failing against Neo4j 2.0, but is not failing against Neo4j
>>> 1.8.x/1.9.x.
>>>
>>> I'd be happy to create an issue on this, but wanted to get some feedback
>>> first.
>>>
>>> -brian
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Neo4j" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.