@ -609,6 +609,7 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -609,6 +609,7 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
}
else{
MultipartUtils.closeChannel(newState.channel);
MultipartUtils.deleteFile(newState.file);
this.content.forEach(DataBufferUtils::release);
}
}
@ -640,6 +641,8 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -640,6 +641,8 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
privatevolatilebooleancloseOnDispose=true;
privatevolatilebooleandeleteOnDispose=true;
publicIdleFileState(WritingFileStatestate){
this.headers=state.headers;
@ -654,16 +657,20 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -654,16 +657,20 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
"Part exceeded the disk usage limit of "+PartGenerator.this.maxDiskUsagePerPart+
@ -674,6 +681,7 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -674,6 +681,7 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@ -685,6 +693,9 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -685,6 +693,9 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
if(this.closeOnDispose){
MultipartUtils.closeChannel(this.channel);
}
if(this.deleteOnDispose){
MultipartUtils.deleteFile(this.file);
}
}
@ -710,6 +721,8 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -710,6 +721,8 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@ -761,11 +774,15 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -761,11 +774,15 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
if(this.completed){
newState.partComplete(this.finalPart);
}
elseif(this.disposed){
newState.dispose();
}
elseif(changeState(this,newState)){
requestToken();
}
else{
MultipartUtils.closeChannel(this.channel);
MultipartUtils.deleteFile(this.file);
}
}
@ -779,6 +796,8 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -779,6 +796,8 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
returnMono.empty();
}
catch(IOExceptionex){
MultipartUtils.closeChannel(this.channel);
MultipartUtils.deleteFile(this.file);
returnMono.error(ex);
}
finally{
@ -786,6 +805,12 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {
@@ -786,6 +805,12 @@ final class PartGenerator extends BaseSubscriber<MultipartParser.Token> {