Matt Hoffman created JENA-1920:
----------------------------------

             Summary: 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


I observed that when the 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)

Reply via email to