@@ -92,20 +92,12 @@ public boolean doHandle(final FilterChainContext ctx,
92
92
93
93
@ Override
94
94
public void updated (WriteResult result ) {
95
- final AsyncHandler handler = context .getHandler ();
96
- if (handler != null ) {
97
- if (handler instanceof TransferCompletionHandler ) {
98
- // WriteResult keeps a track of the total amount written,
99
- // so we need to calculate the delta ourselves.
100
- final long resultTotal = result .getWrittenSize ();
101
- final long written = resultTotal - context .getTotalBodyWritten ().get ();
102
- final long total = context .getTotalBodyWritten ().addAndGet (written );
103
- ((TransferCompletionHandler ) handler ).onContentWriteProgress (
104
- written ,
105
- total ,
106
- requestPacket .getContentLength ());
107
- }
108
- }
95
+ notifyHandlerIfNeeded (context , requestPacket , result );
96
+ }
97
+
98
+ @ Override
99
+ public void completed (WriteResult result ) {
100
+ notifyHandlerIfNeeded (context , requestPacket , result );
109
101
}
110
102
});
111
103
}
@@ -117,6 +109,27 @@ public void updated(WriteResult result) {
117
109
// --------------------------------------------------------- Private Methods
118
110
119
111
112
+ private static void notifyHandlerIfNeeded (final HttpTransactionContext context ,
113
+ final HttpRequestPacket requestPacket ,
114
+ final WriteResult writeResult ) {
115
+ final AsyncHandler handler = context .getHandler ();
116
+ if (handler != null ) {
117
+ if (handler instanceof TransferCompletionHandler ) {
118
+ // WriteResult keeps a track of the total amount written,
119
+ // so we need to calculate the delta ourselves.
120
+ final long resultTotal = writeResult .getWrittenSize ();
121
+ final long written =
122
+ (resultTotal - context .getTotalBodyWritten ().get ());
123
+ final long total = context .getTotalBodyWritten ().addAndGet (written );
124
+ ((TransferCompletionHandler ) handler ).onContentWriteProgress (
125
+ written ,
126
+ total ,
127
+ requestPacket .getContentLength ());
128
+ }
129
+ }
130
+ }
131
+
132
+
120
133
private static boolean configSendFileSupport () {
121
134
return !((System .getProperty ("os.name" ).equalsIgnoreCase ("linux" )
122
135
&& !linuxSendFileSupported ())
0 commit comments