[ 
https://issues.apache.org/jira/browse/IO-318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13256534#comment-13256534
 ] 

Gary D. Gregory commented on IO-318:
------------------------------------

WRT Known issue: Source compatibility.

Most APIs that take a charset (String or Charset) also have a version that take 
no charset.
                
> Add Charset sister APIs to method that take a String charset name.
> ------------------------------------------------------------------
>
>                 Key: IO-318
>                 URL: https://issues.apache.org/jira/browse/IO-318
>             Project: Commons IO
>          Issue Type: New Feature
>         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
> Maven home: C:\Java\apache-maven-3.0.4\bin\..
> Java version: 1.7.0_03, vendor: Oracle Corporation
> Java home: C:\Program Files\Java\jdk1.7.0_03\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
>            Reporter: Gary D. Gregory
>             Fix For: 2.3
>
>
> Add Charset sister APIs to method that take a String charset name (aka 
> encoding). 
> For example: foo(..., String charsetName) -> foo(..., Charset charset).
> Refactor such that we do not have code duplication of the algorithms.
> Known issue: Source compatibility.
> Now there are APIs that change only with the last type, String vs. Charset, 
> you will get a compile error if you pass null to the old String API because 
> the target method will be ambiguous: do you want to call the String or 
> Charset version? You must type-cast to one type or the other.
> Known issue: checked java.io.UnsupportedEncodingException vs. unchecked 
> java.nio.charset.UnsupportedCharsetException
> The JRE API Charset.forName throws the unchecked UnsupportedCharsetException. 
> The Commons IO 2.2 String APIs throw the checked 
> UnsupportedEncodingException, a subclass of IOException, when a charset is 
> not available.
> The refactored String APIs throw UnsupportedCharsetException from 
> Charset.forName, an unchecked IllegalArgumentException. The String APIs throw 
> IOException, so there is no source compatibility issue.
> If you somehow relied on catching the checked UnsupportedEncodingException 
> instead of IOException, its superclass, you should catch the unchecked 
> java.nio.charset.UnsupportedCharsetException to act on the fact that the 
> charset is not available.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to