[ 
https://issues.apache.org/jira/browse/AVRO-1214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16745490#comment-16745490
 ] 

Hudson commented on AVRO-1214:
------------------------------

FAILURE: Integrated in Jenkins build AvroJava #586 (See 
[https://builds.apache.org/job/AvroJava/586/])
AVRO-1214 Use void instead of Void for RPC methods (dkulp: 
[https://github.com/apache/avro/commit/05171ee872bb8d6e9173a34b7832f522b2a56763])
* (edit) 
lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServerWithCallbacks.java
* (edit) lang/java/ipc/src/test/java/org/apache/avro/TestProtocolSpecific.java
* (edit) 
lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java
* (edit) 
lang/java/grpc/src/test/java/org/apache/avro/grpc/TestAvroProtocolGrpc.java
* (edit) 
lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/protocol.vm
* (edit) lang/java/ipc/src/test/java/org/apache/avro/TestNamespaceSpecific.java
* (edit) lang/java/ipc/src/test/java/org/apache/avro/TestBulkData.java
* (edit) 
lang/java/ipc/src/test/java/org/apache/avro/ipc/TestNettyServerConcurrentExecution.java


> 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: Apache Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.7.2
>            Reporter: Sébastien Launay
>            Assignee: Daniel Kulp
>            Priority: Minor
>             Fix For: 1.9.0
>
>         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 was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to