Will-Lo commented on code in PR #3516:
URL: https://github.com/apache/gobblin/pull/3516#discussion_r909706635


##########
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/api/MutableSpecCatalog.java:
##########
@@ -48,7 +48,7 @@ public interface MutableSpecCatalog extends SpecCatalog {
    * on adding a {@link Spec} to the {@link SpecCatalog}. The key for each 
entry is the name of the {@link SpecCatalogListener}
    * and the value is the result of the the action taken by the listener 
returned as an instance of {@link AddSpecResponse}.
    * */
-  Map<String, AddSpecResponse> put(Spec spec);
+  Map<String, AddSpecResponse> put(Spec spec) throws Throwable;

Review Comment:
   It's a bit convoluted here the `QuotaExceededException` needs to be thrown 
as a , the `CallbackResult` class stores `Throwables` which I wanted to 
leverage here by accessing it through `getCause()`. Classes that rely on the 
`CallBackResult` responses would have to throw the generic `Throwable` class, 
unless I casted the exception back into the `QuotaExceededException`, but I 
want to avoid doing that for future support of throwing compilation errors in 
this fashion as well.
   
   In particular in this segment:
   ```
         if (response.getValue().getFailures().size() > 0) {
           for (Map.Entry<SpecCatalogListener, CallbackResult<AddSpecResponse>> 
entry : response.getValue().getFailures().entrySet()) {
             throw entry.getValue().getError().getCause();
           }
           return responseMap;
         }
    ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to