You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Brandon DeVries (JIRA)" <ji...@apache.org> on 2016/11/21 15:20:58 UTC
[jira] [Created] (NIFI-3073) poorly named nifi clones of standard
java classes
Brandon DeVries created NIFI-3073:
-------------------------------------
Summary: poorly named nifi clones of standard java classes
Key: NIFI-3073
URL: https://issues.apache.org/jira/browse/NIFI-3073
Project: Apache NiFi
Issue Type: Improvement
Reporter: Brandon DeVries
Priority: Minor
Fix For: 1.1.0, 0.7.1
org.apache.nifi.stream.io.DataOutputStream is a clone of java.io.DataOutputStream that *does not* do synchronization. This should have a different name, indicating this. Overloading the name invites confusion. The comment in the class\[1] should also be corrected to accurately reflect its intent:
{quote}
This class is different from java.io.DataOutputStream in that it does synchronize on its methods.
{quote}
The incorrect comment should further illustrate the point on confusion, in that both the name and comment imply behavior potentially much different than the actual.
Implementation note... previously there were concerns about backwards compatibility should this method be removed. This can be avoided by renaming this class, and creating a new org.apache.nifi.stream.io.DataOutputStream that is marked as deprecated and simply extends the properly named class without modification. org.apache.nifi.stream.io.DataOutputStream can then be removed in a future release. This would also have the benefit of highlighting for developers any instances where this class was mistakenly used.
It would likely be wise to examine the code base for further instances of this (anti-)pattern.
\[1] https://github.com/apache/nifi/blob/d838f61291d2582592754a37314911b701c6891b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/DataOutputStream.java#L26
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)