{"action":"created","issue":{"url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/issues/182","repository_url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules","labels_url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/issues/182/labels{/name}","comments_url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/issues/182/comments","events_url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/issues/182/events","html_url":"https://github.com/OneBusAway/onebusaway-application-modules/issues/182","id":181529632,"number":182,"title":"Can't retrieve arrivals for stopIds containing forward slash \"/\"","user":{"login":"barbeau","id":928045,"avatar_url":"https://avatars.githubusercontent.com/u/928045?v=3","gravatar_id":"","url":"https://api.github.com/users/barbeau","html_url":"https://github.com/barbeau","followers_url":"https://api.github.com/users/barbeau/followers","following_url":"https://api.github.com/users/barbeau/following{/other_user}","gists_url":"https://api.github.com/users/barbeau/gists{/gist_id}","starred_url":"https://api.github.com/users/barbeau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barbeau/subscriptions","organizations_url":"https://api.github.com/users/barbeau/orgs","repos_url":"https://api.github.com/users/barbeau/repos","events_url":"https://api.github.com/users/barbeau/events{/privacy}","received_events_url":"https://api.github.com/users/barbeau/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/labels/bug","name":"bug","color":"e11d21"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-10-06T21:24:30Z","updated_at":"2016-10-07T12:08:38Z","closed_at":null,"body":"In the Boston OBA server, we hit the following stopId:\r\n`1_Forge Park / 495`\r\n\r\nIt can be seen in the list of stops returned in this stops-for-location query:\r\nhttp://developer.onebusaway.org/mbta-api/api/where/stops-for-location.json?lat=42.078482127189595&lon=-71.43382396548986&latSpan=0.08702002322407765&lonSpan=0.07993753999471664&version=2&key=TEST\r\n\r\nWhen using this `stopId` in a REST API request URL, I believe forward slashes should be escaped as `%2F`?\r\n\r\nBut getting arrivals using the escaped slash gives a 404: \r\nhttp://developer.onebusaway.org/mbta-api/api/where/arrivals-and-departures-for-stop/1_Forge%20Park%20%2F%20495.json&key=TEST\r\n\r\n@sheldonabrown Do you know if OBA server requests are expected to work with `/` in the stopId?  Not sure how the entire OBA stack would react to this, or if it should be preprocessed out of the data.\r\n\r\nWe’re trying to figure out how to handle client-side."},"comment":{"url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/issues/comments/252236287","html_url":"https://github.com/OneBusAway/onebusaway-application-modules/issues/182#issuecomment-252236287","issue_url":"https://api.github.com/repos/OneBusAway/onebusaway-application-modules/issues/182","id":252236287,"user":{"login":"sheldonabrown","id":1001757,"avatar_url":"https://avatars.githubusercontent.com/u/1001757?v=3","gravatar_id":"","url":"https://api.github.com/users/sheldonabrown","html_url":"https://github.com/sheldonabrown","followers_url":"https://api.github.com/users/sheldonabrown/followers","following_url":"https://api.github.com/users/sheldonabrown/following{/other_user}","gists_url":"https://api.github.com/users/sheldonabrown/gists{/gist_id}","starred_url":"https://api.github.com/users/sheldonabrown/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sheldonabrown/subscriptions","organizations_url":"https://api.github.com/users/sheldonabrown/orgs","repos_url":"https://api.github.com/users/sheldonabrown/repos","events_url":"https://api.github.com/users/sheldonabrown/events{/privacy}","received_events_url":"https://api.github.com/users/sheldonabrown/received_events","type":"User","site_admin":false},"created_at":"2016-10-07T12:08:38Z","updated_at":"2016-10-07T12:08:38Z","body":"I did quite a bit of research into this, and there is nothing that precludes the AgencyAndId from containing a slash.  Upon introspection, the value is happily stored as \"1_Forge Park / 495\" in the transit graph.  However, it appears the Struts stack is trying to url decode parameters on our behalf and getting it wrong.  The Struts convention plugin is making the assumption '/' will not be embedded in strings and not passing the '/' through as part of the parameter.  As such, there is no way to properly request that value.\r\n\r\nInitial research is inconclusive if struts can be configured to support this.  I see references to '/' characters in action names but not in the parameters themselves.\r\n\r\nIt looks like forward slash works with the SIRI API however.\r\n\r\nSo yes, this seems like a bug in the struts configuration of the api webapp, if not struts itself.  \r\n"}}
{"actor":{"display_login":"sheldonabrown"}}