Skip to content

Commit 4950835

Browse files
committed
more feedback
1 parent ac24d5a commit 4950835

File tree

7 files changed

+45
-45
lines changed

7 files changed

+45
-45
lines changed

hll/s3-transfer-manager-codegen/src/main/kotlin/aws/sdk/kotlin/hll/s3transfermanager/codegen/utils/S3TransferManagerCodegenException.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
package aws.sdk.kotlin.hll.s3transfermanager.codegen.utils
77

88
/**
9-
* Exception thrown when an error occurs during S3 transfer codegen.
9+
* Exception thrown when an error occurs during S3 Transfer Manager codegen.
1010
*
1111
* @param message Description of the error.
1212
* @param cause The underlying cause of the exception, if any.

hll/s3-transfer-manager/api/s3-transfer-manager.api

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,13 @@ public final class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Builde
3030

3131
public final class aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Companion {
3232
public final fun invoke (Laws/sdk/kotlin/services/s3/S3Client;Lkotlin/jvm/functions/Function1;)Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager;
33+
public static synthetic fun invoke$default (Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager$Companion;Laws/sdk/kotlin/services/s3/S3Client;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Laws/sdk/kotlin/hll/s3transfermanager/S3TransferManager;
3334
}
3435

3536
public final class aws/sdk/kotlin/hll/s3transfermanager/interceptors/MutableTransferContext : aws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferInterceptorContext {
3637
public fun <init> ()V
3738
public fun <init> (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)V
3839
public synthetic fun <init> (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
39-
public final fun component1 ()Ljava/lang/Object;
40-
public final fun component2 ()Ljava/lang/Object;
41-
public final fun component3 ()Ljava/lang/Object;
42-
public final fun component4 ()Ljava/lang/Object;
43-
public final fun component5 ()Ljava/lang/Long;
44-
public final fun component6 ()Ljava/lang/Long;
45-
public final fun component7 ()Ljava/lang/Long;
46-
public final fun component8 ()Ljava/lang/Long;
47-
public final fun copy (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)Laws/sdk/kotlin/hll/s3transfermanager/interceptors/MutableTransferContext;
48-
public static synthetic fun copy$default (Laws/sdk/kotlin/hll/s3transfermanager/interceptors/MutableTransferContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Laws/sdk/kotlin/hll/s3transfermanager/interceptors/MutableTransferContext;
49-
public fun equals (Ljava/lang/Object;)Z
5040
public fun getS3Request ()Ljava/lang/Object;
5141
public fun getS3Response ()Ljava/lang/Object;
5242
public fun getTmRequest ()Ljava/lang/Object;
@@ -55,7 +45,6 @@ public final class aws/sdk/kotlin/hll/s3transfermanager/interceptors/MutableTran
5545
public fun getTransferableObjects ()Ljava/lang/Long;
5646
public fun getTransferredBytes ()Ljava/lang/Long;
5747
public fun getTransferredObjects ()Ljava/lang/Long;
58-
public fun hashCode ()I
5948
public fun setS3Request (Ljava/lang/Object;)V
6049
public fun setS3Response (Ljava/lang/Object;)V
6150
public fun setTmRequest (Ljava/lang/Object;)V
@@ -64,24 +53,12 @@ public final class aws/sdk/kotlin/hll/s3transfermanager/interceptors/MutableTran
6453
public fun setTransferableObjects (Ljava/lang/Long;)V
6554
public fun setTransferredBytes (Ljava/lang/Long;)V
6655
public fun setTransferredObjects (Ljava/lang/Long;)V
67-
public fun toString ()Ljava/lang/String;
6856
}
6957

7058
public final class aws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferContext : aws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferInterceptorContext {
7159
public fun <init> ()V
7260
public fun <init> (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)V
7361
public synthetic fun <init> (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
74-
public final fun component1 ()Ljava/lang/Object;
75-
public final fun component2 ()Ljava/lang/Object;
76-
public final fun component3 ()Ljava/lang/Object;
77-
public final fun component4 ()Ljava/lang/Object;
78-
public final fun component5 ()Ljava/lang/Long;
79-
public final fun component6 ()Ljava/lang/Long;
80-
public final fun component7 ()Ljava/lang/Long;
81-
public final fun component8 ()Ljava/lang/Long;
82-
public final fun copy (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)Laws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferContext;
83-
public static synthetic fun copy$default (Laws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Laws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferContext;
84-
public fun equals (Ljava/lang/Object;)Z
8562
public fun getS3Request ()Ljava/lang/Object;
8663
public fun getS3Response ()Ljava/lang/Object;
8764
public fun getTmRequest ()Ljava/lang/Object;
@@ -90,8 +67,6 @@ public final class aws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferCon
9067
public fun getTransferableObjects ()Ljava/lang/Long;
9168
public fun getTransferredBytes ()Ljava/lang/Long;
9269
public fun getTransferredObjects ()Ljava/lang/Long;
93-
public fun hashCode ()I
94-
public fun toString ()Ljava/lang/String;
9570
}
9671

9772
public abstract interface class aws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferInterceptor {
@@ -347,3 +322,8 @@ public final class aws/sdk/kotlin/hll/s3transfermanager/model/UploadObjectRespon
347322
public final fun invoke (Lkotlin/jvm/functions/Function1;)Laws/sdk/kotlin/hll/s3transfermanager/model/UploadObjectResponse;
348323
}
349324

325+
public final class aws/sdk/kotlin/hll/s3transfermanager/utils/S3TransferManagerException : java/lang/Exception {
326+
public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V
327+
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
328+
}
329+

hll/s3-transfer-manager/common/src/aws/sdk/kotlin/hll/s3transfermanager/S3TransferManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public class S3TransferManager private constructor(public val s3Client: S3Client
6666
public val maxConcurrentPartUploads: Int = builder.maxConcurrentPartUploads
6767

6868
public companion object {
69-
public operator fun invoke(client: S3Client, block: Builder.() -> Unit): S3TransferManager =
69+
public operator fun invoke(client: S3Client, block: Builder.() -> Unit = {}): S3TransferManager =
7070
Builder().apply(block).build(client)
7171
}
7272

hll/s3-transfer-manager/common/src/aws/sdk/kotlin/hll/s3transfermanager/interceptors/TransferContext.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public interface TransferInterceptorContext {
5656
* The context around an [aws.sdk.kotlin.hll.s3transfermanager.S3TransferManager] transfer.
5757
* Used to track transfer progress or to modify in progress transfers.
5858
*/
59-
public data class TransferContext(
59+
public class TransferContext(
6060
override val s3Request: Any? = null,
6161
override val s3Response: Any? = null,
6262
override val tmRequest: Any? = null,
@@ -71,7 +71,7 @@ public data class TransferContext(
7171
* The context around an [aws.sdk.kotlin.hll.s3transfermanager.S3TransferManager] transfer.
7272
* Used to track transfer progress or to modify in progress transfers.
7373
*/
74-
public data class MutableTransferContext(
74+
public class MutableTransferContext(
7575
override var s3Request: Any? = null,
7676
override var s3Response: Any? = null,
7777
override var tmRequest: Any? = null,
@@ -92,4 +92,16 @@ public data class MutableTransferContext(
9292
transferableObjects,
9393
transferredObjects,
9494
)
95+
96+
internal fun copy() =
97+
MutableTransferContext(
98+
s3Request,
99+
s3Response,
100+
tmRequest,
101+
tmResponse,
102+
transferableBytes,
103+
transferredBytes,
104+
transferableObjects,
105+
transferredObjects,
106+
)
95107
}

hll/s3-transfer-manager/common/src/aws/sdk/kotlin/hll/s3transfermanager/operations/uploadobject/HelperFunctions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ internal suspend fun nextPartBytes(
7474

7575
when (partSource) {
7676
is ByteArray -> {
77-
// Long to Int is safe here because the ByteArray max size is Int.MAX_VALUE, it's size is managed as an Int.
77+
// Long to Int is safe here because the ByteArray max size is Int.MAX_VALUE, its size is managed as an Int.
7878
val readBytes = readBytes.toInt()
7979
val readableBytes = readableBytes.toInt()
8080
val partSize = partSize.toInt()

hll/s3-transfer-manager/common/src/aws/sdk/kotlin/hll/s3transfermanager/operations/uploadobject/phases/TransferBytes.kt

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import aws.sdk.kotlin.services.s3.model.UploadPartResponse
2727
import aws.smithy.kotlin.runtime.telemetry.logging.Logger
2828
import kotlinx.coroutines.CoroutineScope
2929
import kotlinx.coroutines.channels.ReceiveChannel
30+
import kotlinx.coroutines.channels.consumeEach
3031
import kotlinx.coroutines.channels.produce
3132
import kotlinx.coroutines.coroutineScope
3233
import kotlinx.coroutines.launch
@@ -70,19 +71,26 @@ internal suspend fun transferBytes(
7071
bufferSemaphore,
7172
)
7273

73-
val mutex = Mutex()
74-
repeat(maxConcurrentPartUploads) {
75-
consumer(
76-
producer,
77-
uploadObjectRequest,
78-
mpuUploadId!!,
79-
context,
80-
interceptors,
81-
client,
82-
uploadedParts,
83-
mutex,
84-
bufferSemaphore,
85-
)
74+
try {
75+
repeat(maxConcurrentPartUploads) {
76+
consumer(
77+
producer,
78+
uploadObjectRequest,
79+
mpuUploadId!!,
80+
context,
81+
interceptors,
82+
client,
83+
uploadedParts,
84+
Mutex(),
85+
bufferSemaphore,
86+
)
87+
}
88+
} catch (e: Exception) {
89+
// Consume remaining in memory parts and reduce part count
90+
producer.consumeEach {
91+
bufferSemaphore.release()
92+
}
93+
throw e
8694
}
8795

8896
if (uploadedParts.size != numberOfParts) {

hll/s3-transfer-manager/common/src/aws/sdk/kotlin/hll/s3transfermanager/utils/S3TransferManagerException.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ package aws.sdk.kotlin.hll.s3transfermanager.utils
1111
* @param message Description of the error.
1212
* @param cause The underlying cause of the exception, if any.
1313
*/
14-
internal class S3TransferManagerException(message: String, cause: Throwable? = null) : Exception(message, cause)
14+
public class S3TransferManagerException(message: String, cause: Throwable? = null) : Exception(message, cause)

0 commit comments

Comments
 (0)