I've sort of hit a snag with the current MapReduce design and
serialization. Our MapReduceTask API allows users to specify Mapper,
Reducer and Collator interfaces as anonymous classes . However, we
can not serialize instances of these classes as they are anonymous
(see Note in section 1.10).
Of course, users can specify static implementations of these interfaces
and we can put a big warning notice about anonymous class
implementations of Mapper, Reducer and Collator but our MapReduceTask
fluent API itself nudges users to use anonymous classes :-(
Yeah, not sure how to do it. David hinted to see if we can use
writeReplace to remove a reference to enclosing class from anonymous
class i.e. basically ignore enclosing class.
On 11-03-09 11:26 AM, Galder Zamarreño wrote:
> Even if the Serializable/Externalizer rules do not allow this, I wonder whether if anonymous classes that have externalizers associated to the would work...
> Vladimir, I'm gonna this out and let you know if it works - good addition to testsuite as well
> On Mar 9, 2011, at 5:11 PM, Manik Surtani wrote:
>> Yeah that sucks. I suppose we just need to specify that anonymous classes are not used. :/
>> On 9 Mar 2011, at 16:01, Vladimir Blagojevic wrote: