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