Atri,

I would say that this problem is specific for all calls to
IgniteCacheProxy.setFuture() method. It looks like we can create an
extension for IgniteFutureImpl class (say, IgniteCacheFutureImpl) which
will use CU.convertToCacheException(e) to convert exceptions instead of
current U.convertException(e).

Vladimir.

On Tue, Jun 30, 2015 at 12:29 PM, Atri Sharma <atri.j...@gmail.com> wrote:

> Vladimir,
>
> Is this problem specific to all checks of isAsync() calls?
>
> On Mon, Jun 29, 2015 at 6:29 PM, Vladimir Ozerov <voze...@gridgain.com>
> wrote:
>
> > Atri,
> >
> > Currently allmost all exceptions occurring in Ignite kernal are checked.
> > And if we want to expose them to users, we convert them to their
> unchecked
> > counterparts. The same goes for partial update exception: there is
> > CachePartialUpdateCheckedException
> > which is thrown in Ignite internals, and there is
> > CachePartialUpdateException
> > which is thrown to user. Conversion between there two excpetion types
> > occurs in the method GridCacheUtils.convertToCacheException.
> >
> > Obviously, we forgot to convert exceptions in async mode. As a result,
> > instead of throwing user exception, we throw IgniteException with inner
> > CachePartialUpdateCheckedException. See how we process PUT ALL
> > operation in IgniteCacheProxy.putAll()
> > - we catch and convert exception in sync mode, but do not do that for
> async
> > future.
> >
> > It appears, that not only PUT ALL, but almost all other operations are
> > affected, so a kind of generic solutino is required here.
> >
> > Vladimir.
> >
> > On Mon, Jun 29, 2015 at 3:45 PM, Atri Sharma <atri.j...@gmail.com>
> wrote:
> >
> > > I have taken the patch.
> > >
> > > Please advice on how to implement this. I will get the patch out today
> > > since its critical.
> > >
> > > On Mon, Jun 29, 2015 at 6:05 PM, Vladimir Ozerov <voze...@gridgain.com
> >
> > > wrote:
> > >
> > > > Igniters,
> > > >
> > > > I noted that in async mode we throw IgniteException in case of
> partial
> > > > update, while CachePartialUpdateException is expected here accoring
> to
> > > our
> > > > contract.
> > > >
> > > > This appears to be pretty critical as user cannot get failed keys
> when
> > > > working in async mode. I created a ticket for that:
> > > > https://issues.apache.org/jira/browse/IGNITE-1059
> > > >
> > > > Can someone look at it?
> > > >
> > > > Vladimir.
> > > >
> > >
> > >
> > >
> > > --
> > > Regards,
> > >
> > > Atri
> > > *l'apprenant*
> > >
> >
>
>
>
> --
> Regards,
>
> Atri
> *l'apprenant*
>

Reply via email to