commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CRYPTO-30) Mutable fields should be private
Date Tue, 26 Apr 2016 11:15:12 GMT
Sebb created CRYPTO-30:
--------------------------

             Summary: Mutable fields should be private
                 Key: CRYPTO-30
                 URL: https://issues.apache.org/jira/browse/CRYPTO-30
             Project: Commons Crypto
          Issue Type: Bug
            Reporter: Sebb


Mutable fields should be private or possibly package-protected, never protected or public.

Once a field is published, it's impossible to ensure that it is properly synchronised, and
it is impossible to change the implementation without API breakage.

Only constants should be published.
If there is really a need to access the field externally, this should be done through getters/setters,
as those allow synchronisation to be added and make it easier to change the implementation.

Also, it's easy to add a getter/setter later if access is found to be needed.
Don't add one 'just in case' because it cannot easily be removed.

This observation applies to:

StreamOutput.out
CTRCipherInputStream.streamOffset
CTRCipherOutputStream.streamOffset
CipherInputStream - lots of protected mutable state
CipherOutputStream - ditto



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

Mime
View raw message