hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nhan Thuan Nguyen (JIRA)" <j...@apache.org>
Subject [jira] [Issue Comment Deleted] (HTTPCORE-438) Got a java.nio.charset.UnsupportedCharsetException error while the header value consist a charset binary
Date Mon, 05 Dec 2016 16:27:58 GMT

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

Nhan Thuan Nguyen updated HTTPCORE-438:
---------------------------------------
    Comment: was deleted

(was: Thank you Oleg, what version in the pom.xml should I use to pick up this change?

Currently, this is what in the pom.xml. 

<dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore-nio</artifactId>
            <version>4.4.5</version>
            <scope>compile</scope>
</dependency>)

> Got a java.nio.charset.UnsupportedCharsetException error while the header value consist
a charset binary
> --------------------------------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-438
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-438
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore
>    Affects Versions: 4.4.5
>            Reporter: Nhan Thuan Nguyen
>
> Got a java.nio.charset.UnsupportedCharsetException error while the header value consist
a charset binary (see below). Since the method in org.apache.http.entity.ContentType.get()
is hard coded boolean value true for strict param, the method in org.apache.http.entity.ContentType.create()
throw the UnsupportedCharsetException.
> Can strict param be pass in from a system property, -Dorg.apache.http.entity.contenttype.strict=false?
If not set, then set it to true as default.
> Content-Type: image/jpeg; charset=binary; name="image_42Colk06m1oO0xfC"
> Caused by: java.nio.charset.UnsupportedCharsetException: binary
>         at java.nio.charset.Charset.forName(Charset.java:531)
>         at org.apache.http.entity.ContentType.create(ContentType.java:224)
>         at org.apache.http.entity.ContentType.create(ContentType.java:214)
>         at org.apache.http.entity.ContentType.get(ContentType.java:299)
>         at org.apache.http.entity.ContentType.getOrDefault(ContentType.java:346)
>         at org.apache.http.nio.protocol.AbstractAsyncResponseConsumer.responseReceived(AbstractAsyncResponseConsumer.java:130)
>         at org.apache.http.impl.nio.client.MainClientExec.responseReceived(MainClientExec.java:315)
>         at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseReceived(DefaultClientExchangeHandlerImpl.java:147)
>         at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.responseReceived(HttpAsyncRequestExecutor.java:303)
>         at org.apache.http.impl.nio.client.InternalRequestExecutor.responseReceived(InternalRequestExecutor.java:108)
>         at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:255)
>         at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)
>         at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)
>         at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:121)
>         at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
>         at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
>         at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
>         at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
>         at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
>         at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
> public static ContentType get(
>             final HttpEntity entity) throws ParseException, UnsupportedCharsetException
{
>         if (entity == null) {
>             return null;
>         }
>         final Header header = entity.getContentType();
>         if (header != null) {
>             final HeaderElement[] elements = header.getElements();
>             if (elements.length > 0) {
>                 return create(elements[0], true);
>             }
>         }
>         return null;
>     }
> private static ContentType create(final String mimeType, final NameValuePair[] params,
final boolean strict) {
>         Charset charset = null;
>         for (final NameValuePair param: params) {
>             if (param.getName().equalsIgnoreCase("charset")) {
>                 final String s = param.getValue();
>                 if (!TextUtils.isBlank(s)) {
>                     try {
>                         charset =  Charset.forName(s);
>                     } catch (final UnsupportedCharsetException ex) {
>                         if (strict) {
>                             throw ex;
>                         }
>                     }
>                 }
>                 break;
>             }
>         }
>         return new ContentType(mimeType, charset, params != null && params.length
> 0 ? params : null);
>     }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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


Mime
View raw message