Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.13
-
None
-
Linux = Ubuntu 18.04.3 LTS
JDK = 1.8
Description
Hi,
trying to encode a file that is 1GB of size.
( linux :
fallocate -l 1GB 1gb.zip
)
I want to post that file to a RESTful-service, package in JSON.
here is the code
String filePath = "/tmp/1gb.zip"; System.out.println("\t Post to : ".concat(URL)); System.out.println("\t file : ".concat(filePath)); Path path = Paths.get(filePath); byte[] bArray = Files.readAllBytes(path); // testing commons codec 1.16 (2019-11-05) byte[] encodeBase64 = Base64.encodeBase64(bArray); final String contentToBeSaved = new String(encodeBase64); HttpClient client = HttpClientBuilder.create().build(); HttpResponse response = null; JSONObject metadata = new JSONObject(); metadata.put("owner", "Ingo"); metadata.put("access", "public"); metadata.put("licenseType", "CC BY"); metadata.put("fileName", "fileName"); metadata.put("fileDataBase64", contentToBeSaved); String metadataFormatted = StringEscapeUtils.unescapeJavaScript(metadata.toString()); StringEntity entity = new StringEntity(metadataFormatted, ContentType.APPLICATION_JSON); HttpPost post = new HttpPost(URL); post.setEntity(entity); response = client.execute(post); HttpEntity responseEntity = response.getEntity(); String responseFromMediaserver = EntityUtils.toString(responseEntity, "UTF-8"); System.out.println("\n****"); System.out.println("Response is : " + responseFromMediaserver); JSONObject json = new JSONObject(responseFromMediaserver); String uuid = json.getString("uuid"); System.out.println("UUID is " + uuid);
- mvn clean package
- java -Xms512m -Xmx20480m -jar target/mediaClient.jar
The crasch is in
byte[] encodeBase64 = Base64.encodeBase64(bArray);
the stacktrace is :
Starting NewClientEncodePost Post to : http://127.0.0.1:8080/MediaServerResteasy/media file : /tmp/1gb.zip Exception in thread "main" java.lang.NegativeArraySizeException at org.apache.commons.codec.binary.BaseNCodec.resizeBuffer(BaseNCodec.java:253) at org.apache.commons.codec.binary.BaseNCodec.ensureBufferSize(BaseNCodec.java:269) at org.apache.commons.codec.binary.Base64.encode(Base64.java:380) at org.apache.commons.codec.binary.BaseNCodec.encode(BaseNCodec.java:451) at org.apache.commons.codec.binary.BaseNCodec.encode(BaseNCodec.java:430) at org.apache.commons.codec.binary.Base64.encodeBase64(Base64.java:679) at org.apache.commons.codec.binary.Base64.encodeBase64(Base64.java:642) at org.apache.commons.codec.binary.Base64.encodeBase64(Base64.java:623) at org.apache.commons.codec.binary.Base64.encodeBase64(Base64.java:556) at se.nrm.bio.mediaserver.testing.base64.NewClientEncodePost.posting(NewClientEncodePost.java:55) at se.nrm.bio.mediaserver.testing.base64.NewClientEncodePost.main(NewClientEncodePost.java:38)
Attachments
Attachments
Issue Links
- links to