You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alex Herbert (Jira)" <ji...@apache.org> on 2019/11/26 12:13:00 UTC
[jira] [Updated] (CODEC-265) java.lang.NegativeArraySizeException
[ 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)