[ 
https://issues.apache.org/jira/browse/JENA-1919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne updated JENA-1919:
--------------------------------
    Description: 
I observed that the blockSize does not control the actual size of the 
underlying char array 'buffer' which will result in ArrayIndexOutOfBounds.

Locally I added the test below to TestBufferingWriter.java to illustrate.
  
{code:java}
public void write_07 () {
   String alpha = 
"0123456789abcdefghijklmnopqrstuvwzyzABCDEFGHIJKLMNOPQRSTUVWZYZ";

    create(8194, 4098);
    Random r = new Random();
    for (int i = 0; i < 8194;i++) {
        w.output(alpha.charAt(r.nextInt(alpha.length())));
    }

    w.close();

    String x = string();
    assertEquals(x.length(), 8194);
}
{code}

Which produces.
{noformat}
[ERROR] write_07(org.apache.jena.atlas.io.TestBufferingWriter)  Time elapsed: 
0.007 s  <<< ERROR!
java.lang.ArrayIndexOutOfBoundsException: 8192
        at 
org.apache.jena.atlas.io.TestBufferingWriter.write_07(TestBufferingWriter.java:112){noformat}


  was:
I observed that the blockSize does not control the actual size of the 
underlying char array 'buffer' which will result in ArrayIndexOutOfBounds.

 

Locally I added the test below to TestBufferingWriter.java to illustrate.

  
{code:java}
public void write_07 () {
   String alpha = 
"0123456789abcdefghijklmnopqrstuvwzyzABCDEFGHIJKLMNOPQRSTUVWZYZ";

    create(8194, 4098);
    Random r = new Random();
    for (int i = 0; i < 8194;i++) {
        w.output(alpha.charAt(r.nextInt(alpha.length())));
    }

    w.close();

    String x = string();
    assertEquals(x.length(), 8194);
}
{code}
 

 Which produces.

 
{noformat}
[ERROR] write_07(org.apache.jena.atlas.io.TestBufferingWriter)  Time elapsed: 
0.007 s  <<< ERROR!
java.lang.ArrayIndexOutOfBoundsException: 8192
        at 
org.apache.jena.atlas.io.TestBufferingWriter.write_07(TestBufferingWriter.java:112){noformat}
 

 

 

 


> ArrayIndexOutOfBounds in BufferingWriter.java
> ---------------------------------------------
>
>                 Key: JENA-1919
>                 URL: https://issues.apache.org/jira/browse/JENA-1919
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Base
>    Affects Versions: Jena 3.15.0
>            Reporter: Matt Hoffman
>            Priority: Major
>
> I observed that the blockSize does not control the actual size of the 
> underlying char array 'buffer' which will result in ArrayIndexOutOfBounds.
> Locally I added the test below to TestBufferingWriter.java to illustrate.
>   
> {code:java}
> public void write_07 () {
>    String alpha = 
> "0123456789abcdefghijklmnopqrstuvwzyzABCDEFGHIJKLMNOPQRSTUVWZYZ";
>     create(8194, 4098);
>     Random r = new Random();
>     for (int i = 0; i < 8194;i++) {
>         w.output(alpha.charAt(r.nextInt(alpha.length())));
>     }
>     w.close();
>     String x = string();
>     assertEquals(x.length(), 8194);
> }
> {code}
> Which produces.
> {noformat}
> [ERROR] write_07(org.apache.jena.atlas.io.TestBufferingWriter)  Time elapsed: 
> 0.007 s  <<< ERROR!
> java.lang.ArrayIndexOutOfBoundsException: 8192
>       at 
> org.apache.jena.atlas.io.TestBufferingWriter.write_07(TestBufferingWriter.java:112){noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to