Raised JIRAs https://issues.apache.org/jira/browse/QPID-7124 and
https://issues.apache.org/jira/browse/QPID-7125 to cover the issues brought
up here.

-- Rob

On 4 March 2016 at 14:06, Rob Godfrey <[email protected]> wrote:

>
>
> On 4 March 2016 at 13:49, Julien Charon <[email protected]>
> wrote:
>
>>   Hi,
>>
>>
>> I'm currently doing some tests with the java broker's REST API (6.0.1),
>> mainly queue management, i.e. GET, PUT, DELETE and ran into something
>> strange.
>> Assuming the broker is running on localhost and on port 8080, I can
>> perform following requests:
>> GET: http://localhost:8080/api/latest/queue will return all defined
>> queues, even those not defined on the default vhost / vhostnode
>> DELETE: http://localhost:8080/api/latest/queue?name=newQueue will delete
>> queue with name "newQueue"
>>
>> But
>> PUT: http://localhost:8080/api/latest/queue with body content {"name":
>> "newQueue"} will result in an error (HTTP status 500 and a
>> java.lang.IndexOutOfBoundsException in the broker's logs).
>>
>
>
> OK - that should fail more gracefully... but it does need to fail as a
> queue must be created within the context of a virtual host... since there
> is no path to a virtual host here, it doesn't know where to put the queue
>
>
>> PUT: http://localhost:8080/api/latest/queue/newQueue with body content
>> {} will result in an error, too (HTTP status 422 and errorMessage "Either
>> parent path or full object path must be specified on object creation. Full
>> object path must be specified on object update. Found [] of size 0
>> expecting 3")
>>
>>
> Not a particularly helpful error message, but failure is the correct
> response here, as per the above
>
>
>
>> PUT: http://localhost:8080/api/latest/queue/default/default/newQueue
>> with body content {}
>> and
>> PUT: http://localhost:8080/api/latest/queue/default/default with body
>> content {"name": "newQueue"}
>> will succeed.
>>
>> Is that somehow intended or is it a bug? I would have expected the queue
>> to be created for the virtual host (node) configured as default either ways.
>>
>>
> Nope - the default is really only about AMQP connections where a virtual
> host has not been specified... the REST API doesn't use the default (or
> virtual host aliases) to locate virtual hosts - it works purely off the
> actual configuration path.
>
>
>> 2 other behaviours I noticed that I find strange:
>> A DELETE request, if not resulting in an error, will always return HTTP
>> status 200 and no body content, no matter if a queue with that name exists
>> or not
>> A DELETE request, if not resulting in an error, will always return HTTP
>> status 200 and no body content, no matter if a queue with that name exists
>> or not
>>
>> I would expect to somehow be notified of the fact that a queue I try to
>> delete does not exist or that a queue I try to create already exists.
>>
>
> What was the other behaviour (I presume a cut and paste error above as (as
> far as I can tell) the two behaviours above are exactly the same)?
>
> I agree that a DELETE that causes change should behave differently to a
> DELETE that deletes nothing... we should change that behaviour.
>
>
> -- Rob
>
>
>
>>
>>
>> Best regards,
>> Julien
>>
>> Avitech GmbH
>> Engineering AxL
>> Tel.: +49 (0)7541/282-177
>> Fax: +49 (0)7541/282-199
>> e-mail: [email protected]<mailto:[email protected]>
>> ________________________________________________
>> Avitech GmbH
>> Principal Office: Bahnhofplatz 1 | 88045 Friedrichshafen | Germany
>> Court Registration: Amtsgericht Ulm | HRB 728293
>> Geschäftsführer/Managing Director: Jon Joseba Goyarzu Caño
>> http://avitech.aero<http://avitech.aero/>
>>
>> This message may contain confidential information and is intended only
>> for the individual named. If you are not the named addressee you should not
>> disseminate, distribute or copy this e-mail. Please notify the sender
>> immediately by e-mail if you have received this e-mail by mistake and
>> delete this e-mail from your system.
>>
>>
>

Reply via email to