File tree Expand file tree Collapse file tree 1 file changed +17
-5
lines changed
spring-web/src/main/java/org/springframework/http/codec/multipart Expand file tree Collapse file tree 1 file changed +17
-5
lines changed Original file line number Diff line number Diff line change @@ -688,6 +688,16 @@ public void body(DataBuffer dataBuffer) {
688
688
@ Override
689
689
public void onComplete () {
690
690
this .completed = true ;
691
+ public void partComplete (boolean finalPart ) {
692
+ State state = PartGenerator .this .state .get ();
693
+ // writeComplete might have changed our state to IdleFileState
694
+ if (state != this ) {
695
+ state .partComplete (finalPart );
696
+ }
697
+ else {
698
+ this .completed = true ;
699
+ this .finalPart = finalPart ;
700
+ }
691
701
}
692
702
693
703
public void writeBuffer (DataBuffer dataBuffer ) {
@@ -711,14 +721,16 @@ public void writeBuffers(Iterable<DataBuffer> dataBuffers) {
711
721
712
722
private void writeComplete () {
713
723
IdleFileState newState = new IdleFileState (this );
714
- if (this .completed ) {
715
- newState .onComplete ();
716
- }
717
- else if (this .disposed ) {
724
+ if (this .disposed ) {
718
725
newState .dispose ();
719
726
}
720
727
else if (changeState (this , newState )) {
721
- requestToken ();
728
+ if (this .completed ) {
729
+ newState .partComplete (this .finalPart );
730
+ }
731
+ else {
732
+ requestToken ();
733
+ }
722
734
}
723
735
else {
724
736
MultipartUtils .closeChannel (this .channel );
You can’t perform that action at this time.
0 commit comments