Skip to content

Commit 8578619

Browse files
committed
Fix autoreporter not following Link headers correctly
Fixes #712
1 parent 47dd223 commit 8578619

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

src/main/kotlin/errorreporter/AnonymousFeedback.kt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import java.net.HttpURLConnection
2222
import java.nio.ByteBuffer
2323
import java.nio.charset.CodingErrorAction
2424
import org.apache.commons.io.IOUtils
25+
import org.apache.http.HttpHeaders
26+
import org.apache.http.entity.ContentType
2527

2628
object AnonymousFeedback {
2729

@@ -206,7 +208,11 @@ object AnonymousFeedback {
206208
continue
207209
}
208210

209-
data = connection.inputStream.reader().use(InputStreamReader::readCharSequence).toString()
211+
val charset = connection.getHeaderField(HttpHeaders.CONTENT_TYPE)?.let {
212+
ContentType.parse(it).charset
213+
} ?: Charsets.UTF_8
214+
215+
data = connection.inputStream.reader(charset).readText()
210216

211217
response = Gson().fromJson(data)
212218
list.addAll(response)
@@ -219,18 +225,21 @@ object AnonymousFeedback {
219225
return list
220226
}
221227

222-
private fun getNextLink(link: String?): String? {
223-
if (link == null) {
228+
private fun getNextLink(linkHeader: String?): String? {
229+
if (linkHeader == null) {
224230
return null
225231
}
226-
val lines = link.split(",")
227-
for (line in lines) {
228-
if (!line.contains("rel=\"next\"")) {
232+
val links = linkHeader.split(",")
233+
for (link in links) {
234+
if (!link.contains("rel=\"next\"")) {
229235
continue
230236
}
231237

232-
val parts = line.split(";")
233-
return parts[0].substring(1, parts[0].length - 1)
238+
val parts = link.split(";")
239+
if (parts.isEmpty()) {
240+
continue
241+
}
242+
return parts[0].trim().removePrefix("<").removeSuffix(">")
234243
}
235244

236245
return null

0 commit comments

Comments
 (0)