Since the class was deprecated and is technically only there for pre-1.0 
compatibly then the behavior of this class should be consistent with the 
pre-1.0 version. This will break 1.0 to 1.3 but anyone coding to a post-1.0 
version should not be using this deprecated class.


> On Nov 28, 2017, at 5:22 PM, Jason Huynh <jhu...@pivotal.io> wrote:
> 
> *With your proposoal 1.0 - 1.3 users would have modify their source code on
> the client and the server forthe function, correct?*
> 
> If they start a new geode server 1.4+ and happened to extend
> functionAdapter (it was deprecated in 1.0) then they would have to
> recompile their client to not use functionAdapter.
> 
> This should only affect users that extend FunctionAdapter and execute
> functions by serializing them to the server from the client.  If they
> execute by id it should not run into this problem...
> 
>> On Tue, Nov 28, 2017 at 5:20 PM Jason Huynh <jhu...@pivotal.io> wrote:
>> 
>> Dan, yeah, the suggested change in the stack overflow answer does work and
>> I was able to put an if with the exact serialVersionUid before posting the
>> proposal, but it is pretty hacky and may affect another class that somehow
>> generated the same uid.  I can make that change too but I'd prefer not to
>> have to maintain it moving forward...
>> 
>> 
>> 
>>> On Tue, Nov 28, 2017 at 5:09 PM Dan Smith <dsm...@pivotal.io> wrote:
>>> 
>>> I agree I don't think we can get rid of FunctionAdapter until the next
>>> major version.
>>> 
>>> I was thinking FunctionAdapter is rather widely used, but then I'm
>>> surprised no one has hit this yet.
>>> 
>>> All of the options kinda suck here - either pre 1.0 users have a
>>> compatibility issue or 1.0-1.3 users do. With your proposoal 1.0 - 1.3
>>> users would have modify their source code on the client and the server for
>>> the function, correct?
>>> 
>>> If we got really fancy we could actually ignore the serialVersionUUID for
>>> this class like this - https://stackoverflow.com/a/1816711/2813144. But
>>> it's pretty messy.
>>> 
>>> -Dan
>>> 
>>> On Tue, Nov 28, 2017 at 1:59 PM, Alexander Murmann <amurm...@pivotal.io>
>>> wrote:
>>> 
>>>> Anil, I am not sure following. I think FunctionAdapter already is
>>>> deprecated. Isn't it? Anthony is right though that we shouldn't remove
>>>> anything customer facing unless we are doing a major release. Otherwise
>>> we
>>>> are violating the contract provided by semantic versioning.
>>>> 
>>>> On Tue, Nov 28, 2017 at 1:52 PM, Anilkumar Gingade <aging...@pivotal.io
>>>> 
>>>> wrote:
>>>> 
>>>>> I haven't seen many uses of FunctionAdapter; if its not used much, I
>>>> think
>>>>> we should deprecate this...
>>>>> 
>>>>> It only provided default implementation for few of the methods; this
>>>> could
>>>>> be added in the docs/release notes to help application to move to
>>>> function
>>>>> implementation.
>>>>> 
>>>>> -Anil.
>>>>> 
>>>>> 
>>>>> On Tue, Nov 28, 2017 at 12:40 PM, Anthony Baker <aba...@pivotal.io>
>>>> wrote:
>>>>> 
>>>>>> I think we should wait for a major release to remove API’s.  If we
>>>> broke
>>>>> a
>>>>>> public API, we should fix that IMO.
>>>>>> 
>>>>>> Anthony
>>>>>> 
>>>>>> 
>>>>>>> On Nov 28, 2017, at 11:40 AM, Patrick Rhomberg <
>>> prhomb...@pivotal.io
>>>>> 
>>>>>> wrote:
>>>>>>> 
>>>>>>> +1 to removing a long-deprecated class from the Geode side.
>>>>>>> 
>>>>>>> On Tue, Nov 28, 2017 at 8:04 AM, Bruce Schuchardt <
>>>>>> bschucha...@pivotal.io>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> How about just getting rid of this class?  After all it was
>>> marked
>>>> as
>>>>>>>> being deprecated in 1.0.  Pivotal could add a compatible
>>>>> FunctionAdapter
>>>>>>>> class in their GemFire builds to support these old clients.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On 11/27/17 10:18 AM, Jason Huynh wrote:
>>>>>>>>> 
>>>>>>>>> This is a discussion for the fix to GEODE-4008:
>>>>>>>>> InvalidClassException when deserializing FunctionAdapter from
>>> pre
>>>>> Geode
>>>>>>>>> clients
>>>>>>>>> 
>>>>>>>>> There was a change to deprecate FunctionAdapter in Geode (before
>>>>> 1.0),
>>>>>> and
>>>>>>>>> this also removed the method signatures in the class. This
>>> caused
>>>>> Java
>>>>>> to
>>>>>>>>> generate a new serialVersionUID to the class because one was not
>>>>>> assigned
>>>>>>>>> previously. However we have clients pre Geode that when they
>>>> attempt
>>>>> to
>>>>>>>>> execute a function by serializing the function across (not
>>> using a
>>>>>>>>> function
>>>>>>>>> id), the FunctionAdapter class is unable to deserialize
>>> properly.
>>>>>>>>> 
>>>>>>>>> The proposed fix is to assign a serialVersionUID to the class
>>> that
>>>>>> matches
>>>>>>>>> that of the pre Geode FunctionAdapter. This will cause any Geode
>>>>>> 1.0-1.3
>>>>>>>>> clients to now run into the error but the older clients would
>>> work
>>>>>> fine.
>>>>>>>>> Because FunctionAdapter has been deprecated it should be easy
>>>> enough
>>>>>> for
>>>>>>>>> Geode 1.0-1.3 users to change their custom classes to implement
>>>>>> Function
>>>>>>>>> directly and not use the deprecated FunctionAdapter class.
>>>>>>>>> 
>>>>>>>>> Please let me know if there is a better solution or if there are
>>>>>> problems
>>>>>>>>> with the proposed fix.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> 
>>>>>>>>> -Jason
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 

Reply via email to