Catch the underlying exception when WebDAV writing fails due to closed pipe
This commit is contained in:
parent
823eb4ffab
commit
7afd496db9
1 changed files with 26 additions and 0 deletions
|
@ -197,6 +197,32 @@ internal abstract class WebDavStorage(
|
||||||
|
|
||||||
private var onClose: (() -> Unit)? = null
|
private var onClose: (() -> Unit)? = null
|
||||||
|
|
||||||
|
override fun write(b: Int) {
|
||||||
|
try {
|
||||||
|
super.write(b)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
try {
|
||||||
|
onClose?.invoke()
|
||||||
|
} catch (closeException: Exception) {
|
||||||
|
e.addSuppressed(closeException)
|
||||||
|
}
|
||||||
|
throw e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun write(b: ByteArray?, off: Int, len: Int) {
|
||||||
|
try {
|
||||||
|
super.write(b, off, len)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
try {
|
||||||
|
onClose?.invoke()
|
||||||
|
} catch (closeException: Exception) {
|
||||||
|
e.addSuppressed(closeException)
|
||||||
|
}
|
||||||
|
throw e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Throws(IOException::class)
|
@Throws(IOException::class)
|
||||||
override fun close() {
|
override fun close() {
|
||||||
super.close()
|
super.close()
|
||||||
|
|
Loading…
Reference in a new issue