Hi Igniters,

I found the following usability issue with java thin client API.

Whenever you do `try (IgniteClient client = Ignition.startClient(cfg))`, you're 
forced to declare `catch (Exception e)`.

This is because IgniteClient interface currently doesn't override close() from 
AutoClosable. Because of that, it inherits `close() throws Exception`.
 
In fact, this shouldn't be required. `TcpIgniteClient implements IgniteClient` 
currently throws Exception but it doesn't need to - its code doesn't throw any 
checked exceptions.
 
Proposal:
        • Add `@Overrides public void close()` with no `throws` to IgniteClient.
        • Remove `throws Exception` from `TcpIgniteClient::close`
Note: this change is fully backwards-compatible. It is legal to narrow the 
scope of `throws` in a new version of a method.

I plan to do this in https://issues.apache.org/jira/browse/IGNITE-15688.

Any objections?

Thanks,
Stan

Reply via email to