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

ASF GitHub Bot commented on GORA-530:
-------------------------------------

Github user alfonsonishikawa commented on a diff in the pull request:

    https://github.com/apache/gora/pull/127#discussion_r168014313
  
    --- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java
 ---
    @@ -159,17 +167,25 @@ public boolean schemaExists() {
        * @return the Object corresponding to the key or null if it cannot be 
found
        */
       @Override
    -  public T get(K key, String[] fields) {
    -
    -    Key recordKey = getAerospikeKey(key);
    -    fields = getFieldsToQuery(fields);
    +  public T get(K key, String[] fields) throws GoraException {
     
    -    Record record = aerospikeClient
    -            
.get(aerospikeParameters.getAerospikeMapping().getReadPolicy(), recordKey, 
fields);
    -    if (record == null) {
    -      return null;
    +    try {
    +      Key recordKey = getAerospikeKey(key);
    +      fields = getFieldsToQuery(fields);
    +  
    +      Record record = aerospikeClient
    +              
.get(aerospikeParameters.getAerospikeMapping().getReadPolicy(), recordKey, 
fields);
    +      
    +      if (record == null) {
    +        return null;
    +      }
    +      return createPersistentInstance(record, fields);
    +    } catch (GoraException e) {
    +      throw e;
    --- End diff --
    
    Hi! Yes. Notice that createPersistentInstance has been updated to throw 
GoraException. Throughout the changes, GoraException is being used as a simple 
wrapper to have a common interface for all datastores, so as you can see two 
lines bellow in this diff, any exception (not GoraException) is logged and 
wrapped. In the case of a catch of a GoraException we can safely assume that it 
is already logged and wraping other exception (or maybe an actual GoraException 
but this does not make difference) and we wouldn't want to wrap it again 
because that would be useless and would hide the exception's parent exception 
in an indefinite sequence.
    Maybe it is not the best solution, but I didn't get to any better. If you 
have any suggestion it will be welcome!


> Reinstate exception throwing at Query#execute()
> -----------------------------------------------
>
>                 Key: GORA-530
>                 URL: https://issues.apache.org/jira/browse/GORA-530
>             Project: Apache Gora
>          Issue Type: Improvement
>          Components: gora-core
>    Affects Versions: 0.8
>            Reporter: Alfonso Nishikawa
>            Assignee: Alfonso Nishikawa
>            Priority: Minor
>              Labels: query
>             Fix For: 0.9
>
>
> When executing a query, the exceptions are being shadowed and the execution 
> returns {{null}}.
> This makes any client to be ignorant of the cause, because it is only logged 
> into the server.
> The objective is to reinstate the exception throwing, where the interface 
> throws GoraException to make any client aware of the underlying problem.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to