Details
Description
Using the following IDL:
@namespace("org.apache.avro.test") protocol Simple { error TestError { string message; } string hello(string greeting); void `error`() throws TestError; void ping() oneway; }
Will produce the interface:
package org.apache.avro.test; public interface Simple { public static final org.apache.avro.Protocol PROTOCOL = org.apache.avro.Protocol.parse("..."); java.lang.CharSequence hello(java.lang.CharSequence greeting) throws org.apache.avro.AvroRemoteException; java.lang.Void error() throws org.apache.avro.AvroRemoteException, org.apache.avro.test.TestError; void ping(); public interface Callback extends Simple { public static final org.apache.avro.Protocol PROTOCOL = org.apache.avro.test.Simple.PROTOCOL; void hello(java.lang.CharSequence greeting, org.apache.avro.ipc.Callback<java.lang.CharSequence> callback) throws java.io.IOException; void error(org.apache.avro.ipc.Callback<java.lang.Void> callback) throws java.io.IOException; } }
Then one is forced to add return null; statement(s) in the interface implementation for the error() method which can be a bit cumbersome and that's not the case for the oneway ping() method.
This is fine on the Callback though because the developer can just ignore the callback argument.