Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error Handling for urlConnection #2902

Merged
Merged
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
494f766
added try catch
anandwana001 Dec 9, 2024
e00b968
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Dec 10, 2024
d41ab05
not throwing
anandwana001 Dec 12, 2024
ff4c85f
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Dec 16, 2024
96871f2
added failure handling
anandwana001 Dec 16, 2024
60d4787
nit fix
anandwana001 Dec 16, 2024
b70eb4a
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Dec 16, 2024
a16a172
nit fixes
anandwana001 Dec 17, 2024
e8555fe
Merge remote-tracking branch 'origin/anandwana001/2683/prevent-socket…
anandwana001 Dec 17, 2024
6b8fa5e
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Dec 17, 2024
a0fe855
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Dec 19, 2024
9530810
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
shobhitagarwal1612 Jan 1, 2025
48890ae
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Jan 8, 2025
7bcb1a0
partial test added
anandwana001 Jan 8, 2025
4d1c6ad
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Jan 13, 2025
011d10f
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Feb 3, 2025
2d7e8eb
import fix
anandwana001 Feb 3, 2025
f88c972
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Feb 5, 2025
ea08f37
merge latest
anandwana001 Feb 5, 2025
027c3bd
few fixes
anandwana001 Feb 7, 2025
73902c2
Automatically added GitHub issue links to TODOs
anandwana001 Feb 7, 2025
6729e81
Merge branch 'master' into anandwana001/2683/prevent-socket-timeout-e…
anandwana001 Feb 7, 2025
1dabbe2
remove test
anandwana001 Feb 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
import java.net.HttpURLConnection
import java.net.URL

const val READ_TIMEOUT_MS = 5 * 1000
private const val READ_TIMEOUT_MS = 5 * 1000
private const val CONNECT_TIMEOUT_MS = 30_000

/**
* @constructor Creates a [UrlInputStream] by opening a connection to an actual URL, requesting the
Expand All @@ -38,19 +39,25 @@

private fun openStream(): InputStream {
val urlConnection = URL(url).openConnection() as HttpURLConnection
urlConnection.requestMethod = "GET"
urlConnection.readTimeout = READ_TIMEOUT_MS
if (byteRange != null) {
urlConnection.setRequestProperty("Range", "bytes=${byteRange.first}-${byteRange.last}")
try {
urlConnection.requestMethod = "GET"
urlConnection.connectTimeout = CONNECT_TIMEOUT_MS
urlConnection.readTimeout = READ_TIMEOUT_MS

Check warning on line 45 in ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt

View check run for this annotation

Codecov / codecov/patch

ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt#L42-L45

Added lines #L42 - L45 were not covered by tests
if (byteRange != null) {
urlConnection.setRequestProperty("Range", "bytes=${byteRange.first}-${byteRange.last}")

Check warning on line 47 in ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt

View check run for this annotation

Codecov / codecov/patch

ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt#L47

Added line #L47 was not covered by tests
}
urlConnection.connect()
val responseCode = urlConnection.responseCode

Check warning on line 50 in ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt

View check run for this annotation

Codecov / codecov/patch

ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt#L49-L50

Added lines #L49 - L50 were not covered by tests
if (responseCode == 404) throw FileNotFoundException("$url not found")
val expectedResponseCode = if (byteRange == null) 200 else 206
if (responseCode != expectedResponseCode) {
throw IOException("HTTP $responseCode accessing $url")

Check warning on line 54 in ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt

View check run for this annotation

Codecov / codecov/patch

ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt#L54

Added line #L54 was not covered by tests
}
return urlConnection.inputStream
} catch (e: Exception) {
urlConnection.disconnect()
error("Attempt Failed with $e")

Check warning on line 59 in ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt

View check run for this annotation

Codecov / codecov/patch

ground/src/main/java/com/google/android/ground/ui/map/gms/mog/UrlInputStream.kt#L56-L59

Added lines #L56 - L59 were not covered by tests
anandwana001 marked this conversation as resolved.
Show resolved Hide resolved
}
urlConnection.connect()
val responseCode = urlConnection.responseCode
if (responseCode == 404) throw FileNotFoundException("$url not found")
val expectedResponseCode = if (byteRange == null) 200 else 206
if (responseCode != expectedResponseCode) {
throw IOException("HTTP $responseCode accessing $url")
}
return urlConnection.inputStream
}

override fun read(): Int = inputStream.read()
Expand Down
Loading