Good point Jay. More specifically we were already implementing without the
checked exception, we'd need to override close() in the Serializer and
Deserializer interfaces and omit the throws clause. That definitely makes
them source compatible. Not sure about binary compatibility, I couldn't
find a quick answer but I think it's probably still compatible.

-Ewen

On Tue, Apr 28, 2015 at 12:30 PM, Jay Kreps <jay.kr...@gmail.com> wrote:

> Hey guys,
>
> You can implement Closable without the checked exception. Having close()
> methods throw checked exceptions isn't very useful unless there is a way
> for the caller to recover. In this case there really isn't, right?
>
> -Jay
>
> On Mon, Apr 27, 2015 at 5:51 PM, Guozhang Wang <wangg...@gmail.com> wrote:
>
> > Folks,
> >
> > In a recent commit I made regarding KAFKA-2121, there is an omitted API
> > change which makes Serializer / Deserializer extending from Closeable,
> > whose close() call could throw IOException by declaration. Hence now some
> > scenario like:
> >
> > ---------------------
> >
> > Serializer<T> keySerializer = ...
> > Serializer<T> valueSerializer = ...
> > KafkaProducer producer = new KafkaProducer(config, keySerializer,
> > valueSerializer)
> > // ...
> > keySerializer.close()
> > valueSerializer.close()
> >
> > ---------------------
> >
> > will need to capture IOException now.
> >
> > Want to bring this up for people's attention, and you opinion on whether
> we
> > should revert this change?
> >
> > -- Guozhang
> >
>



-- 
Thanks,
Ewen

Reply via email to