[ https://issues.apache.org/jira/browse/CODEC-265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Herbert updated CODEC-265: ------------------------------- Assignee: Alex Herbert > 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 > Assignee: Alex Herbert > Priority: Critical > 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)