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)