[CDS API] Return an error code when browsing with an invalid profileId
Issue #662
resolved
If you make a browse request with a profileId that does not exist on the server, you get an empty result tag. It would be helpful if the server returned a defined error code in this case.
<result/>
Comments (5)
-
repo owner -
reporter OK, I'll check tonight. If its returning 400 then thats fine.
-
reporter It detects it but then returns a 500 server error
2013-05-21 14:15:47,169 WARN [CDSBrowseServerResource] Profile with id fake_profile doesn't exist 2013-05-21 14:15:47,169 WARN [CDSBrowseServerResource] Browse for object id V_LA failed with exception: null org.serviio.restlet.HttpCodeException at org.serviio.upnp.service.contentdirectory.rest.resources.server.CDSBrowseServerResource.browse(CDSBrowseServerResource.java:105) at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.restlet.resource.ServerResource.doHandle(ServerResource.java:449) at org.restlet.resource.ServerResource.get(ServerResource.java:645) at org.restlet.resource.ServerResource.doHandle(ServerResource.java:527) at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:587) at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:299) at org.serviio.restlet.AbstractProEditionServerResource.doConditionalHandle(AbstractProEditionServerResource.java:35) at org.serviio.upnp.service.contentdirectory.rest.resources.server.AbstractCDSServerResource.doConditionalHandle(AbstractCDSServerResource.java:52) at org.serviio.upnp.service.contentdirectory.rest.resources.server.AbstractRestrictedCDSServerResource.doConditionalHandle(AbstractRestrictedCDSServerResource.java:53) at org.restlet.resource.ServerResource.handle(ServerResource.java:846) at org.restlet.resource.Finder.handle(Finder.java:510) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:497) at org.restlet.routing.Router.handle(Router.java:737) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72) at org.restlet.Application.handle(Application.java:391) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:497) at org.restlet.routing.Router.handle(Router.java:737) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:497) at org.restlet.routing.Router.handle(Router.java:737) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.Component.handle(Component.java:388) at org.restlet.Server.handle(Server.java:488) at org.restlet.engine.http.connector.BaseServerHelper.handle(BaseServerHelper.java:158) at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:167) at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418) at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:696) at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 2013-05-21 14:15:47,171 WARN [ContentDirectoryRestletApplication] Exception or error caught in resource java.lang.RuntimeException: org.serviio.restlet.HttpCodeException at org.serviio.upnp.service.contentdirectory.rest.resources.server.CDSBrowseServerResource.browse(CDSBrowseServerResource.java:119) at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.restlet.resource.ServerResource.doHandle(ServerResource.java:449) at org.restlet.resource.ServerResource.get(ServerResource.java:645) at org.restlet.resource.ServerResource.doHandle(ServerResource.java:527) at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:587) at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:299) at org.serviio.restlet.AbstractProEditionServerResource.doConditionalHandle(AbstractProEditionServerResource.java:35) at org.serviio.upnp.service.contentdirectory.rest.resources.server.AbstractCDSServerResource.doConditionalHandle(AbstractCDSServerResource.java:52) at org.serviio.upnp.service.contentdirectory.rest.resources.server.AbstractRestrictedCDSServerResource.doConditionalHandle(AbstractRestrictedCDSServerResource.java:53) at org.restlet.resource.ServerResource.handle(ServerResource.java:846) at org.restlet.resource.Finder.handle(Finder.java:510) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:497) at org.restlet.routing.Router.handle(Router.java:737) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72) at org.restlet.Application.handle(Application.java:391) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:497) at org.restlet.routing.Router.handle(Router.java:737) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:497) at org.restlet.routing.Router.handle(Router.java:737) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.Component.handle(Component.java:388) at org.restlet.Server.handle(Server.java:488) at org.restlet.engine.http.connector.BaseServerHelper.handle(BaseServerHelper.java:158) at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:167) at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418) at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:696) at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.serviio.restlet.HttpCodeException at org.serviio.upnp.service.contentdirectory.rest.resources.server.CDSBrowseServerResource.browse(CDSBrowseServerResource.java:105) ... 51 more 2013-05-21 14:15:47,172 WARN [ServiioStatusService] RuntimeException occured. Returning error code 500 to the REST layer. Message: org.serviio.restlet.HttpCodeException 2013-05-21 14:15:47,173 INFO [LogService] 2013-05-21 14:15:47 192.168.15.201 - - 23424 GET /cds/browse/fake_profile/V_LA/BrowseDirectChildren/items/0/15 authToken=XXX 500 - 0 5 http://192.168.15.100:23424 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 -
-
repo owner - changed status to resolved
Right, fixed.
-
repo owner - changed version to 1.3
- Log in to comment
It should return 400 Bad request, though. Is that not enough?