Skip to content

Commit 0a95ec0

Browse files
Fixed code with empty data for detection and updated gradle version
1 parent ccea208 commit 0a95ec0

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip

src/main/kotlin/org/ktypeparser/processors/FileHelper.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,20 @@ import java.nio.file.Files
1111
import java.nio.file.Paths
1212
import java.util.*
1313

14-
internal fun deleteTempFile(file: File) = file.delete()
14+
internal fun deleteTempFile(file: File?) = file?.delete()
1515

1616
internal suspend fun deleteTempFileAsync(file: File) = GlobalScope.launch { file.delete() }
1717

18-
internal suspend fun createTempFileAsync(bytes: ByteArray): Deferred<File> =
18+
internal suspend fun createTempFileAsync(bytes: ByteArray): Deferred<File?> =
1919
GlobalScope.async { createTempFile(bytes) }
2020

21-
internal suspend fun createTempFileAsync(inputStream: InputStream): Deferred<File> =
21+
internal suspend fun createTempFileAsync(inputStream: InputStream): Deferred<File?> =
2222
GlobalScope.async { createTempFile(inputStream) }
2323

24-
internal fun createTempFile(bytes: ByteArray): File = createTempFile(ByteArrayInputStream(bytes))
24+
internal fun createTempFile(bytes: ByteArray): File? =
25+
bytes.takeIf { it.isNotEmpty() }?.let { createTempFile(ByteArrayInputStream(it)) }
2526

26-
internal fun createTempFile(inputStream: InputStream): File = inputStream.use {
27+
internal fun createTempFile(inputStream: InputStream): File? = inputStream.takeIf { it.available() > 0 }?.use {
2728
val outputTempFilePath = "$tempDirectory/$randomName"
2829
Files.copy(it, Paths.get(outputTempFilePath))
2930

src/main/kotlin/org/ktypeparser/processors/MediaTypeAsyncDetector.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,17 @@ internal object MediaTypeAsyncDetector {
1919

2020
suspend fun detectAsync(bytes: ByteArray): Deferred<MediaType?> {
2121
val file = createTempFileAsync(bytes)
22-
return file.await().toPath().detectAsync()
22+
return file.await()?.toPath().detectAsync()
2323
}
2424

2525
suspend fun detectAsync(inputStream: InputStream): Deferred<MediaType?> =
26-
createTempFileAsync(inputStream).await().toPath().detectAsync()
27-
28-
private suspend fun Path.detectAsync() =
29-
GlobalScope.async { mimeTypeDetector.detectMimeTypeAsync(this@detectAsync).await().parseMediaType() }
26+
createTempFileAsync(inputStream).await()?.toPath().detectAsync()
27+
28+
private suspend fun Path?.detectAsync() =
29+
GlobalScope.async {
30+
this@detectAsync?.let {
31+
mimeTypeDetector.detectMimeTypeAsync(it).await().parseMediaType()
32+
}
33+
}
3034

3135
}

src/main/kotlin/org/ktypeparser/processors/MediaTypeSyncDetector.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ internal object MediaTypeSyncDetector {
2424
}
2525
}
2626

27-
fun detect(file: File): MediaType? {
28-
return parseMediaType(file)
27+
fun detect(file: File?): MediaType? {
28+
return file?.let { parseMediaType(it) }
2929
}
3030

3131
private fun parseMediaType(file: File): MediaType? = mimeTypeDetector.detectMimeType(file)?.parseMediaType()

0 commit comments

Comments
 (0)