You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2017/04/01 13:11:42 UTC

[jira] [Resolved] (JENA-1312) Bad UTF-8 string causes different behaviour between "fuseki -v" and "fuseki".

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

Andy Seaborne resolved JENA-1312.
---------------------------------
       Resolution: Fixed
         Assignee: Andy Seaborne
    Fix Version/s: Jena 3.3.0

> Bad UTF-8 string causes different behaviour between "fuseki -v" and "fuseki".
> -----------------------------------------------------------------------------
>
>                 Key: JENA-1312
>                 URL: https://issues.apache.org/jira/browse/JENA-1312
>             Project: Apache Jena
>          Issue Type: Bug
>            Reporter: Andy Seaborne
>            Assignee: Andy Seaborne
>             Fix For: Jena 3.3.0
>
>
> This is the raw bytes for a BOM - i.e. no UTF-8 encoded.  This report is not specific to this bad encoded data.
> {noformat}
> #!/bin/bash
> DATA=$'PREFIX : <http://exmaple/> INSERT DATA { :s :p "abc\xFE\xFFxyz" }'
> curl -XPOST \
>      --header 'Content-type: application/sparql-update' \
>      --data "$DATA" \
>      http://localhost:3030/ds/update
> {noformat}
> With -v:
> {noformat}
> [2017-03-28 18:23:27] Fuseki     WARN  [2] Runtime IO Exception (client left?) RC = 500 : java.nio.charset.MalformedInputException: Input length = 1
> org.apache.jena.atlas.RuntimeIOException: java.nio.charset.MalformedInputException: Input length = 1
> 	at org.apache.jena.atlas.io.IO.exception(IO.java:233)
> 	at org.apache.jena.fuseki.servlets.SPARQL_Update.executeBody(SPARQL_Update.java:183)
> {noformat}
> (this is in the verbose handling)
> This causes a 500.
> It is using a Java StreamDecoder. Decoding via, e.g, new String(bytes, UTF-8) works, no error. It is a different code path in the JDK.
> Without "-v", a 204 response is generated (javacc converts the bytes to characters, not java).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)