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!
---