[
https://issues.apache.org/jira/browse/JENA-1920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Seaborne resolved JENA-1920.
---------------------------------
Fix Version/s: Jena 3.16.0
Assignee: Andy Seaborne
Resolution: Fixed
> BufferingWriter.java will flush the entirety of a char array despite provided
> length.
> -------------------------------------------------------------------------------------
>
> Key: JENA-1920
> URL: https://issues.apache.org/jira/browse/JENA-1920
> Project: Apache Jena
> Issue Type: Bug
> Components: Base
> Affects Versions: Jena 3.15.0
> Reporter: Matt Hoffman
> Assignee: Andy Seaborne
> Priority: Major
> Fix For: Jena 3.16.0
>
>
> I observed that when flushing a largeBlob the entirety of a char array will
> be flushed out despite the length being provided indicating that only part of
> the char array is populated.
> The below unit test illustrates.
>
> {code:java}
> public void write_08 () {
> String alpha =
> "0123456789abcdefghijklmnopqrstuvwzyzABCDEFGHIJKLMNOPQRSTUVWZYZ";
> Random r = new Random();
> create(8192, 4096);
> //initialized at the max
> char[] randomChars = new char[8192];
> //define just enough to make it a 'large blob'
> for(int i = 0; i < 5000; i++){
> randomChars[i] = alpha.charAt(r.nextInt(alpha.length()));
> }
> w.output(randomChars,0, 5000);
> w.close();
> String x = string();
> assertEquals(5000, x.length());
> }
> {code}
> Results in
> {noformat}
> [ERROR] write_08(org.apache.jena.atlas.io.TestBufferingWriter) Time elapsed:
> 0.001 s <<< FAILURE!
> java.lang.AssertionError: expected:<5000> but was:<8192>
> at
> org.apache.jena.atlas.io.TestBufferingWriter.write_08(TestBufferingWriter.java:141){noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)