[ 
https://issues.apache.org/jira/browse/GEODE-9702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Owen Nichols updated GEODE-9702:
--------------------------------
    Description: 
At least twice in 1.15.0 (commits 7aa03824 and b377e3f8), new methods were 
added to Geode's public API (such as 
`GatewaySender.getRetriesToGetTransactionEventsFromQueue`).  While adding 
methods _is_ compatible with existing source and binary calls to this 
interface, it breaks anything else that implements this interface. _Even if_ a 
default implementation had been provided, there are still edge cases where it 
could collide with existing implementation that may already have methods with 
those names.  These have been fixed now by GEODE-9629 and GEODE-9630; this 
ticket is to fix CI to prevent this in the future.

Our required PR check "*api-check-test-openjdk11*" should have prevented this 
from happening...

 

  was:
In 1.15.0, new methods were added to Geode's public interface such as 
`GatewaySender.getRetriesToGetTransactionEventsFromQueue`.  While adding 
methods _is_ compatible with existing source and binary calls to this 
interface, it breaks anything else that implements this interface. _Even if_ a 
default implementation had been provided, there are still edge cases where it 
could collide with existing implementation that may already have methods with 
those names.

Possible solutions:

1. add default implementation, and ignore the edge case

2. remove the public getters

3. create a new interface extending the old one, in which to add the new getters

Also: look into why japicmp checks did not fail when these new public setters 
and getters were first added back in April.


> public getters added to GatewaySender, not caught by japicmp
> ------------------------------------------------------------
>
>                 Key: GEODE-9702
>                 URL: https://issues.apache.org/jira/browse/GEODE-9702
>             Project: Geode
>          Issue Type: Bug
>          Components: ci
>    Affects Versions: 1.15.0
>            Reporter: Owen Nichols
>            Priority: Major
>              Labels: needsTriage
>
> At least twice in 1.15.0 (commits 7aa03824 and b377e3f8), new methods were 
> added to Geode's public API (such as 
> `GatewaySender.getRetriesToGetTransactionEventsFromQueue`).  While adding 
> methods _is_ compatible with existing source and binary calls to this 
> interface, it breaks anything else that implements this interface. _Even if_ 
> a default implementation had been provided, there are still edge cases where 
> it could collide with existing implementation that may already have methods 
> with those names.  These have been fixed now by GEODE-9629 and GEODE-9630; 
> this ticket is to fix CI to prevent this in the future.
> Our required PR check "*api-check-test-openjdk11*" should have prevented this 
> from happening...
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to