I have a solution on this task, this is pull request into my forked
repository : https://github.com/voipp/ignite/pull/6

пн, 6 февр. 2017 г. в 16:03, ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com>:

> Moreover, in CacheObjectBinaryProcessorImpl#marshalToBinary() we
> explicitly marshal objects array into Object[] and then write it further. I
> wonder why we dont just marshal -> unmarshal it ?
>
> пн, 6 февр. 2017 г. в 15:58, ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com>:
>
> type IDs correctly attached to class descriptors. The issue comes from
> BinaryUtils#doReadObjectArray() . Presently, unmarshalled array's elements
> stored in Object[], one need to write the following :
> Object[] arr = (Object[])Array.newInstance(compType, len);
> instead of
> Object[] arr = deserialize ? (Object[])Array.newInstance(compType, len)
>
> пн, 6 февр. 2017 г. в 11:16, Vladimir Ozerov <voze...@gridgain.com>:
>
> Denis,
>
> We need to ensure that type IDs are attached for both arrays and
> collections/maps. May be we have it for arrays already, but I doubt it is
> so for generic containers.
>
> On Fri, Feb 3, 2017 at 8:59 PM, Denis Magda <dma...@apache.org> wrote:
>
> > If a value can be serialized to BinaryObject then it will be serialized.
> > This piece of the code works perfectly well as far as I understand.
> >
> > I would agree with Vladimir that the binary protocol needs to be
> revisited
> > or the way we serialize/deserialize arrays. Presently, when an array of
> any
> > type is serialized with BinaryWriterExImpl.doWriteObjectArray we write
> > that this is the array
> >
> > out.unsafeWriteByte(GridBinaryMarshaller.OBJ_ARR);
> > and right below we store the actual type
> >
> > out.unsafeWriteInt(desc.typeId())
> >
> > In my understanding, in the layout of binary data we have all the data
> > needed to deserialize an array back properly.
> >
> > Vovan, is there anything we are missing?
> >
> > —
> > Denis
> >
> > > On Feb 3, 2017, at 7:09 AM, ALEKSEY KUZNETSOV <
> alkuznetsov...@gmail.com>
> > wrote:
> > >
> > > There is javax.cache.integration.CacheWriter#write() method which
> writes
> > > key and value, wrapped in CacheEntryImpl.
> > > In case of class arrays, values must be in form of BinaryObject or
> > > serialized class arrays ?
> > >
> > > чт, 2 февр. 2017 г. в 19:57, Denis Magda <dma...@apache.org>:
> > >
> > >> Yes, this is exactly the reason why this ticket is created. Presently,
> > >> binary marshaller ignores custom type for arrays. We need to find a
> way
> > how
> > >> to handle this.
> > >>
> > >> —
> > >> Denis
> > >>
> > >>> On Feb 2, 2017, at 6:23 AM, ALEKSEY KUZNETSOV <
> > alkuznetsov...@gmail.com>
> > >> wrote:
> > >>>
> > >>> I founded that cache.get(i) actually returns an array, containing
> > >>> TestObject. But somehow the type of returned value is Object[] not
> > >>> TestObject[]
> > >>>
> > >>> ср, 1 февр. 2017 г. в 22:26, Denis Magda <dma...@apache.org>:
> > >>>
> > >>>> Excellent, please share the way you want to fix the issue with the
> > >>>> community. You might get a valuable feedback before getting down to
> > >> coding.
> > >>>>
> > >>>> —
> > >>>> Denis
> > >>>>
> > >>>>> On Feb 1, 2017, at 1:18 AM, ALEKSEY KUZNETSOV <
> > >> alkuznetsov...@gmail.com>
> > >>>> wrote:
> > >>>>>
> > >>>>> will take https://issues.apache.org/jira/browse/IGNITE-3244
> > >>>>> --
> > >>>>>
> > >>>>> *Best Regards,*
> > >>>>>
> > >>>>> *Kuznetsov Aleksey*
> > >>>>
> > >>>> --
> > >>>
> > >>> *Best Regards,*
> > >>>
> > >>> *Kuznetsov Aleksey*
> > >>
> > >> --
> > >
> > > *Best Regards,*
> > >
> > > *Kuznetsov Aleksey*
> >
> >
>
> --
>
> *Best Regards,*
>
> *Kuznetsov Aleksey*
>
> --
>
> *Best Regards,*
>
> *Kuznetsov Aleksey*
>
-- 

*Best Regards,*

*Kuznetsov Aleksey*

Reply via email to