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-31) Make fields final wherever possible
Date Tue, 26 Apr 2016 11:34:12 GMT
Sebb created CRYPTO-31:
--------------------------

             Summary: Make fields final wherever possible
                 Key: CRYPTO-31
                 URL: https://issues.apache.org/jira/browse/CRYPTO-31
             Project: Commons Crypto
          Issue Type: Improvement
            Reporter: Sebb
            Priority: Minor


Final fields are automatically thread safe if the object itself is not modified.
Whereas non-final fields are not necessarily thread-safe even if they are not mutated - this
is because of the Java memory model.

There are several non-final fields that are not mutated once created. They should be made
final to improve thread-safety. This is particularly important for static fields since they
are more likely to be used by multiple threads.

Note: such changes will not affect the public API if the fields are private or package-protected.

The fields include:

JavaSecureRandom.instance
OpensslSecureRandom.fallback
OpensslSecureRandom.nativeEnabled
ChannelInput.channel
StreamInput.buf - since no point creating an instance if it is not going to be used for reading,
might as well create the buffer up front
StreamOutput.bufferSize
StreamOutput.buf - as for StreamInput
StreamOutput.out - should also be private

static NativeCodeLoader.nativeCodeLoaded
static OSInfo.archMapping
static ReflectionUtils.classLoader



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

Mime
View raw message