Uploading multiple files using the 'not mainly used for backwards compatibility' overrides filename of all FilesUploadV2Request.UploadFile objects passed to com.slack.api.methods.impl.MethodsClientImpl#filesUploadV2 via com.slack.api.methods.request.files.FilesUploadV2Request#uploadFiles.
Reproducible in:
The Slack SDK version
1.1.6 / model 1.40.3
+--- com.slack.api:bolt:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3
| | +--- com.slack.api:slack-api-model:1.40.3 (*)
| \--- com.slack.api:slack-app-backend:1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
+--- com.slack.api:bolt-servlet:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| \--- com.slack.api:bolt:1.1.6 (*)
+--- com.slack.api:bolt-jetty:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| +--- com.slack.api:bolt:1.1.6 (*)
| +--- com.slack.api:bolt-servlet:1.1.6 (*)
+--- com.slack.api:slack-api-client:1.+ -> 1.40.3 (*)
+--- com.slack.api:bolt:1.1.+ (n)
+--- com.slack.api:bolt-servlet:1.1.+ (n)
+--- com.slack.api:bolt-jetty:1.1.+ (n)
+--- com.slack.api:slack-api-client:1.+ (n)
+--- com.slack.api:bolt:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3
| | +--- com.slack.api:slack-api-model:1.40.3 (*)
| \--- com.slack.api:slack-app-backend:1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
+--- com.slack.api:bolt-servlet:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| \--- com.slack.api:bolt:1.1.6 (*)
+--- com.slack.api:bolt-jetty:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| +--- com.slack.api:bolt:1.1.6 (*)
| +--- com.slack.api:bolt-servlet:1.1.6 (*)
+--- com.slack.api:slack-api-client:1.+ -> 1.40.3 (*)
+--- com.slack.api:bolt:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3
| | +--- com.slack.api:slack-api-model:1.40.3 (*)
| \--- com.slack.api:slack-app-backend:1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
+--- com.slack.api:bolt-servlet:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| \--- com.slack.api:bolt:1.1.6 (*)
+--- com.slack.api:bolt-jetty:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| +--- com.slack.api:bolt:1.1.6 (*)
| +--- com.slack.api:bolt-servlet:1.1.6 (*)
+--- com.slack.api:slack-api-client:1.+ -> 1.40.3 (*)
+--- com.slack.api:bolt:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3
| | +--- com.slack.api:slack-api-model:1.40.3 (*)
| \--- com.slack.api:slack-app-backend:1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
+--- com.slack.api:bolt-servlet:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| \--- com.slack.api:bolt:1.1.6 (*)
+--- com.slack.api:bolt-jetty:1.1.+ -> 1.1.6
| +--- com.slack.api:slack-api-model:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-api-client:1.1.6 -> 1.40.3 (*)
| +--- com.slack.api:slack-app-backend:1.1.6 (*)
| +--- com.slack.api:bolt:1.1.6 (*)
| +--- com.slack.api:bolt-servlet:1.1.6 (*)
+--- com.slack.api:slack-api-client:1.+ -> 1.40.3 (*)
Java Runtime version
(version-independent/this information is irrelevant)
openjdk version "21.0.4" 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu222.04, mixed mode, sharing)
OS info
(version-independent/this information is irrelevant)
#45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 15 16:40:02 UTC 2
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., pom.xml/build.gradle))
- attempt uploading any file using the
filesUploadV2 method (it doesn't matter if the FilesUploadV2Request#filename field is blank/null or set to any value)
- observe the filename of all files being replaced with
Uploaded File (if null was passed) or the passed FilesUploadV2Request#filename
- you can bypass this issue by uploading one single file at a time, by using the fields commented with
(this is mainly for backward compatibility - using uploadFiles instead is recommended)
- inspect the source code (
com.slack.api.methods.impl.MethodsClientImpl, line 2341) and confirm the error
Expected result:
The filenames don't get overridden
Actual result:
All filenames are replaced with one single value
How to fix:
in com.slack.api.methods.impl.MethodsClientImpl on line 2341, replace the call to req.getFilename() with a call to uploadFile.getFilename() .
This seems to be a simple copy-paste error - though i think it might be useful to check the entire method for additional errors i might've overlooked.
Requirements
Please make sure if this topic is specific to this SDK. For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. 🙇
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.
Uploading multiple files using the 'not mainly used for backwards compatibility' overrides filename of all
FilesUploadV2Request.UploadFileobjects passed tocom.slack.api.methods.impl.MethodsClientImpl#filesUploadV2viacom.slack.api.methods.request.files.FilesUploadV2Request#uploadFiles.Reproducible in:
The Slack SDK version
1.1.6/ model1.40.3Java Runtime version
(version-independent/this information is irrelevant)
OS info
(version-independent/this information is irrelevant)
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., pom.xml/build.gradle))
filesUploadV2method (it doesn't matter if theFilesUploadV2Request#filenamefield is blank/null or set to any value)Uploaded File(if null was passed) or the passedFilesUploadV2Request#filename(this is mainly for backward compatibility - using uploadFiles instead is recommended)com.slack.api.methods.impl.MethodsClientImpl, line 2341) and confirm the errorExpected result:
The filenames don't get overridden
Actual result:
All filenames are replaced with one single value
How to fix:
in
com.slack.api.methods.impl.MethodsClientImplon line 2341, replace the call toreq.getFilename()with a call touploadFile.getFilename().This seems to be a simple copy-paste error - though i think it might be useful to check the entire method for additional errors i might've overlooked.
Requirements
Please make sure if this topic is specific to this SDK. For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. 🙇
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.