24
24
/**
25
25
* Data class containing required information for sending the given input stream
26
26
* to the client.
27
+ * <p>
28
+ * The given input stream will be read at a later time and will be automatically
29
+ * closed by the caller.
27
30
*
28
31
* @since 24.8
29
32
*/
@@ -36,12 +39,14 @@ public class DownloadResponse implements Serializable {
36
39
private final int size ;
37
40
38
41
private Integer error ;
42
+ private String errorMessage ;
39
43
40
44
/**
41
45
* Create a download response with content stream and content data.
42
46
*
43
47
* @param inputStream
44
- * data stream for data to send to client
48
+ * data stream for data to send to client, stream will be closed
49
+ * automatically after use by the caller.
45
50
* @param fileName
46
51
* file name of download
47
52
* @param contentType
@@ -59,6 +64,8 @@ public DownloadResponse(InputStream inputStream, String fileName,
59
64
60
65
/**
61
66
* Get the InputStream to read the content data from.
67
+ * <p>
68
+ * InputStream needs to be closed by the called after reading is over.
62
69
*
63
70
* @return content InputStream
64
71
*/
@@ -107,6 +114,22 @@ public static DownloadResponse error(int statusCode) {
107
114
return downloadResponse ;
108
115
}
109
116
117
+ /**
118
+ * Generate an error response for download with message.
119
+ *
120
+ * @param statusCode
121
+ * error status code
122
+ * @param message
123
+ * error message for details on what went wrong
124
+ * @return DownloadResponse for request
125
+ */
126
+ public static DownloadResponse error (int statusCode , String message ) {
127
+ DownloadResponse downloadResponse = new DownloadResponse (null , null ,
128
+ null , -1 );
129
+ downloadResponse .setError (statusCode , message );
130
+ return downloadResponse ;
131
+ }
132
+
110
133
/**
111
134
* Generate an error response for download.
112
135
*
@@ -121,6 +144,23 @@ public static DownloadResponse error(HttpStatusCode statusCode) {
121
144
return downloadResponse ;
122
145
}
123
146
147
+ /**
148
+ * Generate an error response for download with message.
149
+ *
150
+ * @param statusCode
151
+ * error status code
152
+ * @param message
153
+ * error message for details on what went wrong
154
+ * @return DownloadResponse for request
155
+ */
156
+ public static DownloadResponse error (HttpStatusCode statusCode ,
157
+ String message ) {
158
+ DownloadResponse downloadResponse = new DownloadResponse (null , null ,
159
+ null , -1 );
160
+ downloadResponse .setError (statusCode , message );
161
+ return downloadResponse ;
162
+ }
163
+
124
164
/**
125
165
* Check if response has an error code.
126
166
*
@@ -140,6 +180,19 @@ public void setError(int error) {
140
180
this .error = error ;
141
181
}
142
182
183
+ /**
184
+ * Set http error code and error message.
185
+ *
186
+ * @param error
187
+ * error code
188
+ * @param errorMessage
189
+ * error message
190
+ */
191
+ public<
8000
/span> void setError (int error , String errorMessage ) {
192
+ this .error = error ;
193
+ this .errorMessage = errorMessage ;
194
+ }
195
+
143
196
/**
144
197
* Set http error code.
145
198
*
@@ -150,6 +203,19 @@ public void setError(HttpStatusCode error) {
150
203
this .error = error .getCode ();
151
204
}
152
205
206
+ /**
207
+ * Set http error code and error message.
208
+ *
209
+ * @param error
210
+ * error code
211
+ * @param errorMessage
212
+ * error message
213
+ */
214
+ public void setError (HttpStatusCode error , String errorMessage ) {
215
+ this .error = error .getCode ();
216
+ this .errorMessage = errorMessage ;
217
+ }
218
+
153
219
/**
154
220
* Get the set error code.
155
221
*
@@ -161,4 +227,13 @@ public int getError() {
161
227
}
162
228
return error ;
163
229
}
230
+
231
+ /**
232
+ * Get error message if set for error response.
233
+ *
234
+ * @return error message or null if not set
235
+ */
236
+ public String getErrorMessage () {
237
+ return errorMessage ;
238
+ }
164
239
}
0 commit comments