You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Gilles <gi...@harfang.homelinux.org> on 2017/06/03 07:40:00 UTC
Re: [text] Correct RandomStringGenerator description of thread
safety/immutability
Hi Duncan.
Can we really say that "RandomStringBuilder instances
are _immutable_ [...] if using the default random number
generator"?
Calling "nextInt" on the instance returned by
ThreadLocalRandom.current()
does change some internal state...
[IOW, unless I'm missing something, I think that "immutable"
should not be mentioned at all in this Javadoc.]
Regards,
Gilles
On Sat, 3 Jun 2017 06:03:05 +0000 (UTC), djones@apache.org wrote:
> Repository: commons-text
> Updated Branches:
> refs/heads/master ebb0cbe8c -> d04b0f6ff
>
>
> Correct RandomStringGenerator description of thread
> safety/immutability
>
> The thread safety and immutability of RandomStringGenerator is
> dependent
> upon the external source of randomness, if set. Updated the Javadocs
> to
> reflect this.
>
> Fixes: TEXT-84
>
> Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/commons-text/commit/d04b0f6f
> Tree:
> http://git-wip-us.apache.org/repos/asf/commons-text/tree/d04b0f6f
> Diff:
> http://git-wip-us.apache.org/repos/asf/commons-text/diff/d04b0f6f
>
> Branch: refs/heads/master
> Commit: d04b0f6ff469c1674d251c542028697db3ca48af
> Parents: ebb0cbe
> Author: duncan <du...@wortharead.com>
> Authored: Sat Jun 3 07:03:18 2017 +0100
> Committer: duncan <du...@wortharead.com>
> Committed: Sat Jun 3 07:03:18 2017 +0100
>
>
> ----------------------------------------------------------------------
> src/changes/changes.xml | 1
> +
> .../java/org/apache/commons/text/RandomStringGenerator.java | 5
> ++++-
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/commons-text/blob/d04b0f6f/src/changes/changes.xml
>
> ----------------------------------------------------------------------
> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> index d3cc0df..7b65a6d 100644
> --- a/src/changes/changes.xml
> +++ b/src/changes/changes.xml
> @@ -46,6 +46,7 @@ The <action> type attribute can be
> add,update,fix,remove.
> <body>
>
> <release version="1.2" date="tbd" description="tbd">
> + <action issue="TEXT-84" type="update"
> dev="djones">RandomStringGenerator claims to be immutable, but
> isn't</action>
> </release>
>
> <release version="1.1" date="2017-05-23" description="Release
> 1.1">
>
>
> http://git-wip-us.apache.org/repos/asf/commons-text/blob/d04b0f6f/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>
> ----------------------------------------------------------------------
> diff --git
> a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
> b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
> index 6aa6806..58ebfb8 100644
> ---
> a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
> +++
> b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
> @@ -46,7 +46,10 @@ import org.apache.commons.lang3.Validate;
> * String randomLetters = generator.generate(20);
> * </pre>
> * <p>
> - * {@code RandomStringBuilder} instances are immutable and
> thread-safe.
> + * {@code RandomStringBuilder} instances are immutable and
> thread-safe if using the
> + * default random number generator (RNG). If a custom RNG is set by
> calling the method
> + * {@link Builder#usingRandom(TextRandomProvider)
> Builder.usingRandom(TextRandomProvider)}, thread-safety
> + * and immutability must be ensured externally.
> * </p>
> * @since 1.1
> */
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [text] Correct RandomStringGenerator description of thread
safety/immutability
Posted by Duncan Jones <du...@wortharead.com>.
> On 3 Jun 2017, at 09:55, sebb <se...@gmail.com> wrote:
>
> On 3 June 2017 at 08:40, Gilles <gi...@harfang.homelinux.org> wrote:
>> Hi Duncan.
>>
>> Can we really say that "RandomStringBuilder instances
>> are _immutable_ [...] if using the default random number
>> generator"?
>> Calling "nextInt" on the instance returned by
>> ThreadLocalRandom.current()
>> does change some internal state...
>
> Agreed, there must be some internal state for 'next' to have any meaning.
>
>> [IOW, unless I'm missing something, I think that "immutable"
>> should not be mentioned at all in this Javadoc.]
>
> +1
>
> What's important here is the thread-safety aspect.
Thanks for the feedback guys, I’ve pushed an update to remove the offending docs.
>
>> Regards,
>> Gilles
>>
>>
>>
>> On Sat, 3 Jun 2017 06:03:05 +0000 (UTC), djones@apache.org wrote:
>>>
>>> Repository: commons-text
>>> Updated Branches:
>>> refs/heads/master ebb0cbe8c -> d04b0f6ff
>>>
>>>
>>> Correct RandomStringGenerator description of thread safety/immutability
>>>
>>> The thread safety and immutability of RandomStringGenerator is dependent
>>> upon the external source of randomness, if set. Updated the Javadocs to
>>> reflect this.
>>>
>>> Fixes: TEXT-84
>>>
>>> Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
>>> Commit:
>>> http://git-wip-us.apache.org/repos/asf/commons-text/commit/d04b0f6f
>>> Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/d04b0f6f
>>> Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/d04b0f6f
>>>
>>> Branch: refs/heads/master
>>> Commit: d04b0f6ff469c1674d251c542028697db3ca48af
>>> Parents: ebb0cbe
>>> Author: duncan <du...@wortharead.com>
>>> Authored: Sat Jun 3 07:03:18 2017 +0100
>>> Committer: duncan <du...@wortharead.com>
>>> Committed: Sat Jun 3 07:03:18 2017 +0100
>>>
>>>
>>> ----------------------------------------------------------------------
>>> src/changes/changes.xml | 1 +
>>> .../java/org/apache/commons/text/RandomStringGenerator.java | 5 ++++-
>>> 2 files changed, 5 insertions(+), 1 deletion(-)
>>>
>>> ----------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/commons-text/blob/d04b0f6f/src/changes/changes.xml
>>>
>>> ----------------------------------------------------------------------
>>> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
>>> index d3cc0df..7b65a6d 100644
>>> --- a/src/changes/changes.xml
>>> +++ b/src/changes/changes.xml
>>> @@ -46,6 +46,7 @@ The <action> type attribute can be
>>> add,update,fix,remove.
>>> <body>
>>>
>>> <release version="1.2" date="tbd" description="tbd">
>>> + <action issue="TEXT-84" type="update"
>>> dev="djones">RandomStringGenerator claims to be immutable, but
>>> isn't</action>
>>> </release>
>>>
>>> <release version="1.1" date="2017-05-23" description="Release 1.1">
>>>
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/commons-text/blob/d04b0f6f/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>>>
>>> ----------------------------------------------------------------------
>>> diff --git
>>> a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>>> b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>>> index 6aa6806..58ebfb8 100644
>>> --- a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>>> +++ b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>>> @@ -46,7 +46,10 @@ import org.apache.commons.lang3.Validate;
>>> * String randomLetters = generator.generate(20);
>>> * </pre>
>>> * <p>
>>> - * {@code RandomStringBuilder} instances are immutable and thread-safe.
>>> + * {@code RandomStringBuilder} instances are immutable and
>>> thread-safe if using the
>>> + * default random number generator (RNG). If a custom RNG is set by
>>> calling the method
>>> + * {@link Builder#usingRandom(TextRandomProvider)
>>> Builder.usingRandom(TextRandomProvider)}, thread-safety
>>> + * and immutability must be ensured externally.
>>> * </p>
>>> * @since 1.1
>>> */
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>> For additional commands, e-mail: dev-help@commons.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: [text] Correct RandomStringGenerator description of thread safety/immutability
Posted by sebb <se...@gmail.com>.
On 3 June 2017 at 08:40, Gilles <gi...@harfang.homelinux.org> wrote:
> Hi Duncan.
>
> Can we really say that "RandomStringBuilder instances
> are _immutable_ [...] if using the default random number
> generator"?
> Calling "nextInt" on the instance returned by
> ThreadLocalRandom.current()
> does change some internal state...
Agreed, there must be some internal state for 'next' to have any meaning.
> [IOW, unless I'm missing something, I think that "immutable"
> should not be mentioned at all in this Javadoc.]
+1
What's important here is the thread-safety aspect.
> Regards,
> Gilles
>
>
>
> On Sat, 3 Jun 2017 06:03:05 +0000 (UTC), djones@apache.org wrote:
>>
>> Repository: commons-text
>> Updated Branches:
>> refs/heads/master ebb0cbe8c -> d04b0f6ff
>>
>>
>> Correct RandomStringGenerator description of thread safety/immutability
>>
>> The thread safety and immutability of RandomStringGenerator is dependent
>> upon the external source of randomness, if set. Updated the Javadocs to
>> reflect this.
>>
>> Fixes: TEXT-84
>>
>> Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
>> Commit:
>> http://git-wip-us.apache.org/repos/asf/commons-text/commit/d04b0f6f
>> Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/d04b0f6f
>> Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/d04b0f6f
>>
>> Branch: refs/heads/master
>> Commit: d04b0f6ff469c1674d251c542028697db3ca48af
>> Parents: ebb0cbe
>> Author: duncan <du...@wortharead.com>
>> Authored: Sat Jun 3 07:03:18 2017 +0100
>> Committer: duncan <du...@wortharead.com>
>> Committed: Sat Jun 3 07:03:18 2017 +0100
>>
>>
>> ----------------------------------------------------------------------
>> src/changes/changes.xml | 1 +
>> .../java/org/apache/commons/text/RandomStringGenerator.java | 5 ++++-
>> 2 files changed, 5 insertions(+), 1 deletion(-)
>>
>> ----------------------------------------------------------------------
>>
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/commons-text/blob/d04b0f6f/src/changes/changes.xml
>>
>> ----------------------------------------------------------------------
>> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
>> index d3cc0df..7b65a6d 100644
>> --- a/src/changes/changes.xml
>> +++ b/src/changes/changes.xml
>> @@ -46,6 +46,7 @@ The <action> type attribute can be
>> add,update,fix,remove.
>> <body>
>>
>> <release version="1.2" date="tbd" description="tbd">
>> + <action issue="TEXT-84" type="update"
>> dev="djones">RandomStringGenerator claims to be immutable, but
>> isn't</action>
>> </release>
>>
>> <release version="1.1" date="2017-05-23" description="Release 1.1">
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/commons-text/blob/d04b0f6f/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>>
>> ----------------------------------------------------------------------
>> diff --git
>> a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>> b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>> index 6aa6806..58ebfb8 100644
>> --- a/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>> +++ b/src/main/java/org/apache/commons/text/RandomStringGenerator.java
>> @@ -46,7 +46,10 @@ import org.apache.commons.lang3.Validate;
>> * String randomLetters = generator.generate(20);
>> * </pre>
>> * <p>
>> - * {@code RandomStringBuilder} instances are immutable and thread-safe.
>> + * {@code RandomStringBuilder} instances are immutable and
>> thread-safe if using the
>> + * default random number generator (RNG). If a custom RNG is set by
>> calling the method
>> + * {@link Builder#usingRandom(TextRandomProvider)
>> Builder.usingRandom(TextRandomProvider)}, thread-safety
>> + * and immutability must be ensured externally.
>> * </p>
>> * @since 1.1
>> */
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org