commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <>
Subject [jira] [Updated] (MATH-734) Code cleanup: "ISAACRandom"
Date Mon, 16 Jul 2012 22:12:35 GMT


Gilles updated MATH-734:

    Fix Version/s:     (was: 3.1)
> Code cleanup: "ISAACRandom"
> ---------------------------
>                 Key: MATH-734
>                 URL:
>             Project: Commons Math
>          Issue Type: Improvement
>            Reporter: Gilles
>            Assignee: Gilles
>            Priority: Minor
> In revision 1232899, I started to clean up the code (mainly, removing the one-letter
instance variables, that can easily be confused with local ones within methods, making the
code harder to understand and maintain).
> Other points I'd want to handle:
> * Should "Serializable" be implemented for such classes? I think not; especially if it
supposed to be used for "secure" applications.
> * (Related to the above) I'd remove the "transient" keyword.
> * The contents of method "allocArrays" should be moved to within the constructor.
> * It is not recommended to call non-final "public" methods ("setSeed") from within the
constructor, because an overriding code could access a not fully initialized object.
> * All initializations should take place within a single, most general, constructor and
the other constructors should call that one (using the {{this(...)}} statement).
> * This code (line 130)
> {code}
> if (seed == null) {
>   setSeed(System.currentTimeMillis() + System.identityHashCode(this));
>   return;
> }
> {code}
> should probably be removed: it is safer to consider passing a null reference as a user
> * I'd remove the constructor taking a {{long}} argument. It is not obvious how the code
will use the argument. I'd rather offer that alternative, in the class documentation,  as
an example of how to initialize the "array of integers" argument.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message