You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by hs...@apache.org on 2012/11/23 18:34:33 UTC
svn commit: r1412995 - in /gora/trunk:
gora-core/src/main/java/org/apache/gora/store/impl/DataStoreBase.java
gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
Author: hsaputra
Date: Fri Nov 23 17:34:32 2012
New Revision: 1412995
URL: http://svn.apache.org/viewvc?rev=1412995&view=rev
Log:
GORA-186 Show better errors when a field is missing in HBase mapping (Alfonso Nishikawa via hsaputra)
Modified:
gora/trunk/gora-core/src/main/java/org/apache/gora/store/impl/DataStoreBase.java
gora/trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
Modified: gora/trunk/gora-core/src/main/java/org/apache/gora/store/impl/DataStoreBase.java
URL: http://svn.apache.org/viewvc/gora/trunk/gora-core/src/main/java/org/apache/gora/store/impl/DataStoreBase.java?rev=1412995&r1=1412994&r2=1412995&view=diff
==============================================================================
--- gora/trunk/gora-core/src/main/java/org/apache/gora/store/impl/DataStoreBase.java (original)
+++ gora/trunk/gora-core/src/main/java/org/apache/gora/store/impl/DataStoreBase.java Fri Nov 23 17:34:32 2012
@@ -82,18 +82,19 @@ public abstract class DataStoreBase<K, T
@Override
public void initialize(Class<K> keyClass, Class<T> persistentClass,
Properties properties) {
- setKeyClass(keyClass);
- setPersistentClass(persistentClass);
- if(this.beanFactory == null)
- this.beanFactory = new BeanFactoryImpl<K, T>(keyClass, persistentClass);
- schema = this.beanFactory.getCachedPersistent().getSchema();
- fieldMap = AvroUtils.getFieldMap(schema);
-
- autoCreateSchema = DataStoreFactory.getAutoCreateSchema(properties, this);
- this.properties = properties;
-
- datumReader = new PersistentDatumReader<T>(schema, false);
- datumWriter = new PersistentDatumWriter<T>(schema, false);
+ setKeyClass(keyClass);
+ setPersistentClass(persistentClass);
+ if (this.beanFactory == null) {
+ this.beanFactory = new BeanFactoryImpl<K, T>(keyClass, persistentClass);
+ }
+ schema = this.beanFactory.getCachedPersistent().getSchema();
+ fieldMap = AvroUtils.getFieldMap(schema);
+
+ autoCreateSchema = DataStoreFactory.getAutoCreateSchema(properties, this);
+ this.properties = properties;
+
+ datumReader = new PersistentDatumReader<T>(schema, false);
+ datumWriter = new PersistentDatumWriter<T>(schema, false);
}
@Override
Modified: gora/trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
URL: http://svn.apache.org/viewvc/gora/trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java?rev=1412995&r1=1412994&r2=1412995&view=diff
==============================================================================
--- gora/trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java (original)
+++ gora/trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java Fri Nov 23 17:34:32 2012
@@ -220,6 +220,10 @@ implements Configurable {
Type type = field.schema().getType();
Object o = persistent.get(i);
HBaseColumn hcol = mapping.getColumn(field.name());
+ if (hcol == null) {
+ throw new RuntimeException("HBase mapping for field ["+ persistent.getClass().getName() +
+ "#"+ field.name()+"] not found. Wrong gora-hbase-mapping.xml?");
+ }
switch(type) {
case MAP:
if(o instanceof StatefulMap) {
@@ -322,9 +326,9 @@ implements Configurable {
}
table.delete(deletes);
return deletes.size();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ } catch (Exception ex) {
+ LOG.error(ex.getMessage());
+ LOG.error(ex.getStackTrace().toString());
return -1;
}
}
@@ -438,8 +442,11 @@ implements Configurable {
private void addFields(Get get, String[] fieldNames) {
for (String f : fieldNames) {
HBaseColumn col = mapping.getColumn(f);
+ if (col == null) {
+ throw new RuntimeException("HBase mapping for field ["+ f +"] not found. " +
+ "Wrong gora-hbase-mapping.xml?");
+ }
Schema fieldSchema = fieldMap.get(f).schema();
-
switch (fieldSchema.getType()) {
case MAP:
case ARRAY:
@@ -455,6 +462,10 @@ implements Configurable {
String[] fields = query.getFields();
for (String f : fields) {
HBaseColumn col = mapping.getColumn(f);
+ if (col == null) {
+ throw new RuntimeException("HBase mapping for field ["+ f +"] not found. " +
+ "Wrong gora-hbase-mapping.xml?");
+ }
Schema fieldSchema = fieldMap.get(f).schema();
switch (fieldSchema.getType()) {
case MAP:
@@ -472,6 +483,10 @@ implements Configurable {
String[] fields = query.getFields();
for (String f : fields) {
HBaseColumn col = mapping.getColumn(f);
+ if (col == null) {
+ throw new RuntimeException("HBase mapping for field ["+ f +"] not found. " +
+ "Wrong gora-hbase-mapping.xml?");
+ }
Schema fieldSchema = fieldMap.get(f).schema();
switch (fieldSchema.getType()) {
case MAP:
@@ -505,6 +520,10 @@ implements Configurable {
StateManager stateManager = persistent.getStateManager();
for (String f : fields) {
HBaseColumn col = mapping.getColumn(f);
+ if (col == null) {
+ throw new RuntimeException("HBase mapping for field ["+ f +"] not found. " +
+ "Wrong gora-hbase-mapping.xml?");
+ }
Field field = fieldMap.get(f);
Schema fieldSchema = field.schema();
switch(fieldSchema.getType()) {
@@ -634,8 +653,12 @@ implements Configurable {
}
}
} catch(IOException ex) {
+ LOG.error(ex.getMessage());
+ LOG.error(ex.getStackTrace().toString());
throw ex;
} catch(Exception ex) {
+ LOG.error(ex.getMessage());
+ LOG.error(ex.getStackTrace().toString());
throw new IOException(ex);
}