Ingimar created CODEC-265: ----------------------------- Summary: java.lang.NegativeArraySizeException Key: CODEC-265 URL: https://issues.apache.org/jira/browse/CODEC-265 Project: Commons Codec Issue Type: Bug Affects Versions: 1.13 Environment: Linux = Ubuntu 18.04.3 LTS
JDK = 1.8 Reporter: Ingimar Attachments: NewClientEncodePost.java, Util.java, pom.xml Hi, trying to encode a file that is 1GB of size. ( linux : {code:java} fallocate -l 1GB 1gb.zip{code} ) I want to post that file to a RESTful-service, package in JSON. *here is the code* {code:java} 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); {code} # mvn clean package # java -Xms512m -Xmx20480m -jar target/mediaClient.jar The crasch is in {code:java} byte[] encodeBase64 = Base64.encodeBase64(bArray);{code} the stacktrace is : {code:java} 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) {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)