Dan Smith created GEODE-3723:
--------------------------------

             Summary: Reconsider using Optional<String> as the parameter for 
getRequiredPermissions
                 Key: GEODE-3723
                 URL: https://issues.apache.org/jira/browse/GEODE-3723
             Project: Geode
          Issue Type: Bug
          Components: security
            Reporter: Dan Smith
             Fix For: 1.3.0


The new method on function, getRequiredPermissions takes an Optional<String> as 
parameter.

At point point, we added a parameterized type to the function interface 
(Function<T>). However, if someone tries to implement Function without the type 
(eg implements Function instead of implemments Function<Object>), then they get 
the below compilation error:

{noformat}
Error:(85, 41) java: name clash: 
getRequiredPermissions(java.util.Optional<java.lang.String>) in 
org.apache.geode.cache.lucene.internal.distributed.WaitUntilFlushedFunction and 
getRequiredPermissions(java.util.Optional<java.lang.String>) in 
org.apache.geode.cache.execute.Function have the same erasure, yet neither 
overrides the other
{noformat}

In addition to this annoyance Optional is generally discouraged as a parameter 
to a method in favor of method overloading. At least my IDE is providing a 
warning to that effect. Maybe having an overloaded method for 
getRequiredPermissions would be better?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to