yDelouis / selfoss-android

Android application for Selfoss
MIT License
41 stars 9 forks source link

Exception if the server response is a 301 redirect when configuring the URL. #49

Closed hsanson closed 2 years ago

hsanson commented 8 years ago

When configuring the selfoss URL, if the server response is 301 the app crashes. The 301 response body contains normal html that causes the Jackson parser to throw an exception.

On 301 response the client should follow the redirect without trying to parse the body.

I/Selfoss API(12933): 301 : <html><head><title>301 Moved Permanently</title></head><body bgcolor="white"><center><h1>301 Moved Permanently</h1></center><hr><center>nginx/1.1.19</center></body></html>
E/AndroidRuntime(12933): FATAL EXCEPTION: pool-2-thread-8
E/AndroidRuntime(12933): Process: fr.ydelouis.selfoss.debug, PID: 12933
E/AndroidRuntime(12933): org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true'
, 'false' or 'null')
E/AndroidRuntime(12933):  at [Source: java.io.ByteArrayInputStream@1e056a87; line: 1, column: 2]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a
 valid value (number, String, array, object, 'true', 'false' or 'null')
E/AndroidRuntime(12933):  at [Source: java.io.ByteArrayInputStream@1e056a87; line: 1, column: 2]
E/AndroidRuntime(12933):        at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readInternal(MappingJackson2HttpMessageConverter.java:126)
E/AndroidRuntime(12933):        at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:147)
E/AndroidRuntime(12933):        at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:76)
E/AndroidRuntime(12933):        at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:655)
E/AndroidRuntime(12933):        at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:641)
E/AndroidRuntime(12933):        at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:484)
E/AndroidRuntime(12933):        at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439)
E/AndroidRuntime(12933):        at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:415)
E/AndroidRuntime(12933):        at fr.ydelouis.selfoss.rest.SelfossRest_.login(SelfossRest_.java:151)
E/AndroidRuntime(12933):        at fr.ydelouis.selfoss.config.model.ConfigValidator.checkUrl(ConfigValidator.java:113)
E/AndroidRuntime(12933):        at fr.ydelouis.selfoss.config.model.ConfigValidator.validateUrl(ConfigValidator.java:62)
E/AndroidRuntime(12933):        at fr.ydelouis.selfoss.config.ui.ConfigActivity.validateUrl(ConfigActivity.java:110)
E/AndroidRuntime(12933):        at fr.ydelouis.selfoss.config.ui.ConfigActivity_.access$401(ConfigActivity_.java:32)
E/AndroidRuntime(12933):        at fr.ydelouis.selfoss.config.ui.ConfigActivity_$6.execute(ConfigActivity_.java:199)
E/AndroidRuntime(12933):        at org.androidannotations.api.BackgroundExecutor$Task.run(BackgroundExecutor.java:393)
E/AndroidRuntime(12933):        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
E/AndroidRuntime(12933):        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime(12933):        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
E/AndroidRuntime(12933):        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
E/AndroidRuntime(12933):        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/AndroidRuntime(12933):        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/AndroidRuntime(12933):        at java.lang.Thread.run(Thread.java:818)
E/AndroidRuntime(12933): Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
E/AndroidRuntime(12933):  at [Source: java.io.ByteArrayInputStream@1e056a87; line: 1, column: 2]
E/AndroidRuntime(12933):        at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:599)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:520)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2267)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:779)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:665)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2926)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2873)
E/AndroidRuntime(12933):        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2094)
E/AndroidRuntime(12933):        at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readInternal(MappingJackson2HttpMessageConverter.java:123)
E/AndroidRuntime(12933):        ... 21 more
D/ActivityManager( 1255): New dropbox entry: fr.ydelouis.selfoss.debug, data_app_crash, 24a511c1-e182-46c3-ada8-d739e5c7d9ab
W/ActivityManager( 1255):   Force finishing activity fr.ydelouis.selfoss.debug/fr.ydelouis.selfoss.config.ui.ConfigActivity_
herrxyz commented 7 years ago

maybe it's the same problem I had, so it may help to look at my suggestion

hsanson commented 2 years ago

Moved to ttrss long ago.