RFR: 8202719: Use Collections.emptyEnumeration() where possible

Paul Sandoz paul.sandoz at oracle.com
Mon May 7 16:39:58 UTC 2018


+1
Paul.

> On May 7, 2018, at 5:43 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
> 
> Hi,
> 
> I'll sponsor this trivial contribution.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8202719
> 
> Webrev: http://cr.openjdk.java.net/~redestad/8202719/open.00/
> 
> Thanks!
> 
> /Claes
> 
> On 2018-05-07 14:35, Claes Redestad wrote:
>> Hi, looks like a reasonable cleanup.
>> 
>> I would expect very few applications actually use these, but at the
>> very least we'd save a few bytes of compiled bytecode.
>> 
>> /Claes
>> 
>> On 2018-05-06 17:19, Christoph Dreis wrote:
>>> Hi,
>>> 
>>> I just noticed two places - namely in JarFile and JarVerifier - that could
>>> make use of Collections.emptyEnumeration().
>>> 
>>> Let me know what you think. I'd be happy if this is sponsored in case it's
>>> considered worthwile.
>>> 
>>> Cheers,
>>> Christoph
>>> 
>>> ============= PATCH ==============
>>> diff -r 7238cb613dc5 src/java.base/share/classes/java/util/jar/JarFile.java
>>> --- a/src/java.base/share/classes/java/util/jar/JarFile.java Sun May 06
>>> 00:42:59 2018 +0200
>>> +++ b/src/java.base/share/classes/java/util/jar/JarFile.java Sun May 06
>>> 17:10:42 2018 +0200
>>> @@ -42,6 +42,7 @@
>>>   import java.security.CodeSource;
>>>   import java.security.cert.Certificate;
>>>   import java.util.ArrayList;
>>> +import java.util.Collections;
>>>   import java.util.Enumeration;
>>>   import java.util.List;
>>>   import java.util.Locale;
>>> @@ -1095,16 +1096,7 @@
>>>           if (includeUnsigned) {
>>>               return unsignedEntryNames();
>>>           } else {
>>> -            return new Enumeration<>() {
>>> -
>>> -                public boolean hasMoreElements() {
>>> -                    return false;
>>> -                }
>>> -
>>> -                public String nextElement() {
>>> -                    throw new NoSuchElementException();
>>> -                }
>>> -            };
>>> +            return Collections.emptyEnumeration();
>>>           }
>>>       }
>>> 
>>> diff -r 7238cb613dc5
>>> src/java.base/share/classes/java/util/jar/JarVerifier.java
>>> --- a/src/java.base/share/classes/java/util/jar/JarVerifier.java Sun
>>> May 06 00:42:59 2018 +0200
>>> +++ b/src/java.base/share/classes/java/util/jar/JarVerifier.java Sun
>>> May 06 17:10:42 2018 +0200
>>> @@ -684,7 +684,7 @@
>>>           }
>>> 
>>>           final List<CodeSigner[]> signersReq = req;
>>> -        final Enumeration<String> enum2 = (matchUnsigned) ?
>>> unsignedEntryNames(jar) : emptyEnumeration;
>>> +        final Enumeration<String> enum2 = matchUnsigned ?
>>> unsignedEntryNames(jar) : Collections.emptyEnumeration();
>>> 
>>>           return new Enumeration<>() {
>>> 
>>> @@ -769,16 +769,6 @@
>>>               }
>>>           };
>>>       }
>>> -    private Enumeration<String> emptyEnumeration = new
>>> Enumeration<String>() {
>>> -
>>> -        public boolean hasMoreElements() {
>>> -            return false;
>>> -        }
>>> -
>>> -        public String nextElement() {
>>> -            throw new NoSuchElementException();
>>> -        }
>>> -    };
>>> 
>> 
> 



More information about the core-libs-dev mailing list