When I execute a GET request for a room that doesn't exist, I get an HTTP 500 (Internal Server Error) back instead of HTTP 404 (Not Found), which would be the correct return code for REST.
GET http://localhost:9090/plugins/restapi/v1/chatrooms/doesnt.exist/ HTTP/1.1
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
HTTP/1.1 500 Internal Server Error
Date: Sat, 20 Aug 2016 09:45:10 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Frame-Options: deny Content-Length: 0
The Server Log is pretty clear:
2016.08.20 11:45:10 ERROR [Jetty-QTP-AdminConsole-63]: org.jivesoftware.openfire.plugin.rest.exceptions.RESTExceptionMapper - RoomNotFoundException: Could not find the chat room with ressource doesnt.exist
I didn't test it for other entities, but 404 should always be returned for cases where the requested entity isn't found. HTTP 500 Should really only be returned in case an unexpected Exception occurs.