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

Jochen Wiedmann commented on IO-830:
------------------------------------

[~elharo] While I agree with you, in general (for example, I'd like to see a 
distinction between an origin, that is based on a byte stream, and an origin, 
that is based on a character stream), I don't see any real pain. The mere fact, 
that an UnsupportedOperationException is being used, is (in my opinion) not 
enough reason to implement changes.

 

In particular, as far as I can tell, the UOE isn't actually thrown, but just 
declared in the Javadocs.

 

> Rethink AbstractOrigin
> ----------------------
>
>                 Key: IO-830
>                 URL: https://issues.apache.org/jira/browse/IO-830
>             Project: Commons IO
>          Issue Type: Bug
>            Reporter: Elliotte Rusty Harold
>            Priority: Critical
>
> UnuspportedOperationException is a code smell that indicates the class 
> hierarchy doesn't really fit the problem and violates the Liskov Subsitution 
> Principle
> See 
> https://softwareengineering.stackexchange.com/questions/337850/is-expecting-the-api-user-to-implement-an-unsupportedoperationexception-okay
> It doesn't work to treat all origins the same. E.g. CharSequences really, 
> really need a character set before they can be converted to byte arrays or 
> input streams, but byte arrays and files don't. In reverse files need a 
> character set to be converted to a reader but char sequences don't.
> Different classes need different arguments, whether you use a builder or a 
> constructor. There's not common type here. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to