hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HTTPCORE-313) ContentType.create(final String mimeType, final String charset) uncaught exception when charset == ""
Date Thu, 20 Sep 2012 19:31:08 GMT

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

Oleg Kalnichevski resolved HTTPCORE-313.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 4.3-alpha1
                   4.2.3

I think the real problem is that EntityUtils#toString method does not rethrow IllegalCharsetNameException
as a checked I/O exception. I fixed the problem in the trunk and the 4.2.x branch. I also
made ContentType#create ignore empty charsets in the 4.2.x and ignore blank (empty or containing
white spaces only) charsets in the trunk.

Please review / test.

Oleg
                
> ContentType.create(final String mimeType, final String charset) uncaught exception when
charset == ""
> -----------------------------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-313
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-313
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore
>    Affects Versions: 4.2.1
>         Environment: Ubuntu 12.04 LTS with openjdk-7
>            Reporter: Guillaume Castagnino
>             Fix For: 4.2.3, 4.3-alpha1
>
>
> I parse a broken HTTP response from a server that replies with a crafted Content-Type
header:
> Content-Type: text/html; charset=
> charset is present, but is empty. When using the EntityUtils.toString method, this triggers
an uncaught exception in ContentType.create.
> Indeed, it calls this:
> return create(mimeType, charset != null ? Charset.forName(charset) : null);
> charset is checked against the null value. But the empty string is not checked.
> Charset.forName("") throws a "java.nio.charset.IllegalCharsetNameException" exception
which is not caught whereas Charset.forName("broken") throws a "java.nio.charset.UnsupportedCharsetException"
exception, which is correctly handled.
> So I think that the empty string should be checked and managed like the null, isn't it
?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message