[ https://issues.apache.org/jira/browse/AVRO-1214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sébastien Launay updated AVRO-1214: ----------------------------------- Status: Patch Available (was: Open) Patch for using void instead of Void for two-ways message. Method {{SpecificCompiler#javaUnbox(Schema}} used in the Velocity template has been kept for compatibility with existing custom templates but is now deprecated in favour of {{SpecificCompiler#javaUnbox(Schema, boolean}}. This changes generates incompatible Java interface so I guess it should be targeted for 1.8.x. Patch is attached but can be found here as well: https://github.com/slaunay/avro/commits/enhancement/AVRO-1214-unbox-void > Generated protocol's method should return void instead of Void like one-way > message > ----------------------------------------------------------------------------------- > > Key: AVRO-1214 > URL: https://issues.apache.org/jira/browse/AVRO-1214 > Project: Avro > Issue Type: Improvement > Components: java > Affects Versions: 1.7.2 > Reporter: Sébastien Launay > Priority: Minor > Attachments: AVRO-1214-unbox-void-2012-12-05.patch > > > Using the following IDL: > {noformat} > @namespace("org.apache.avro.test") > protocol Simple { > error TestError { > string message; > } > string hello(string greeting); > void `error`() throws TestError; > void ping() oneway; > } > {noformat} > Will produce the interface: > {code:java} > 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; > } > } > {code} > 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. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira