diff --git a/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala b/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala index a60bc07adff..ad5f2247204 100644 --- a/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala +++ b/file-service/src/main/scala/org/apache/texera/service/resource/DatasetResource.scala @@ -1994,7 +1994,7 @@ class DatasetResource { URLDecoder.decode(encodedFilePath, StandardCharsets.UTF_8.name()) ) - withTransaction(context) { ctx => + val (repoName, uploadId, physicalAddr) = withTransaction(context) { ctx => if (!userHasWriteAccess(ctx, did, uid)) { throw new ForbiddenException(ERR_USER_HAS_NO_ACCESS_TO_DATASET_MESSAGE) } @@ -2030,21 +2030,6 @@ class DatasetResource { } val physicalAddr = Option(session.getPhysicalAddress).map(_.trim).getOrElse("") - if (physicalAddr.isEmpty) { - throw new WebApplicationException( - "Upload session is missing physicalAddress. Restart the upload.", - Response.Status.INTERNAL_SERVER_ERROR - ) - } - - withLakeFSErrorHandling { - LakeFSStorageClient.abortPresignedMultipartUploads( - dataset.getRepositoryName, - filePath, - session.getUploadId, - physicalAddr - ) - } // Delete session; parts removed via ON DELETE CASCADE ctx @@ -2057,8 +2042,14 @@ class DatasetResource { ) .execute() - Response.ok(Map("message" -> "Multipart upload aborted successfully")).build() + (dataset.getRepositoryName, session.getUploadId, physicalAddr) + } + + withLakeFSErrorHandling { + LakeFSStorageClient.abortPresignedMultipartUploads(repoName, filePath, uploadId, physicalAddr) } + + Response.ok(Map("message" -> "Multipart upload aborted successfully")).build() } /**