You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Kirk Lund (JIRA)" <ji...@apache.org> on 2015/07/10 22:48:04 UTC
[jira] [Created] (GEODE-94) Compilation under JDK 8 fails due to
ambiguous method calls
Kirk Lund created GEODE-94:
------------------------------
Summary: Compilation under JDK 8 fails due to ambiguous method calls
Key: GEODE-94
URL: https://issues.apache.org/jira/browse/GEODE-94
Project: Geode
Issue Type: Bug
Reporter: Kirk Lund
If you change the build from JDK 7 compatible to straight JDK 8, the build fails due to ambiguous method calls.
This is caused by improvements in JDK 8's Type Inference.
See:
1 - https://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html
2 - https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.5
3 - https://docs.oracle.com/javase/specs/jls/se8/html/jls-18.html#jls-18.5.1
There are only 6 lines of code (at this time) in Geode that fail to build due to this. They are all calls to logger methods with (StringId, Object) parameters. Classes are:
1) FRAG2 (gemfire-jgroups)
2) SMACK (gemfire-jgroups)
3) UDP_NIO (gemfire-jgroups)
4) VIEW_ENFORCER (gemfire-jgroups)
5) JGroupMembershipManager (gemfire-core)
Example from JGroups code:
if(log.isInfoEnabled()) log.info(ExternalStrings.UDP_NIO_RECEIVED_CONFIG_EVENT__0, evt.getArg());
This can be fixed simply by casting the 2nd argument to an Object:
if(log.isInfoEnabled()) log.info(ExternalStrings.UDP_NIO_RECEIVED_CONFIG_EVENT__0, (Object)evt.getArg());
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)