Skip to content

Commit 22627a5

Browse files
author
prabhat
committed
fixed calss cast exceptions
1 parent 8859c6d commit 22627a5

9 files changed

+78
-42
lines changed

json-serde/src/main/java/org/openx/data/jsonserde/JsonSerDe.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public Object deserialize(Writable w) throws SerDeException {
169169
} else if (txt.startsWith("[")){
170170
jObj = new JSONArray(txt);
171171
}
172-
} catch (JSONException e) {
172+
} catch (Exception e) {
173173
// If row is not a JSON object, make the whole row NULL
174174
onMalformedJson("Row is not a valid JSON Object - JSONException: "
175175
+ e.getMessage());

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/JavaStringDoubleObjectInspector.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import org.apache.hadoop.hive.serde2.objectinspector.primitive.AbstractPrimitiveJavaObjectInspector;
1616
import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableDoubleObjectInspector;
17-
import org.apache.hadoop.io.DoubleWritable;
17+
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
1818

1919
/**
2020
*
@@ -31,20 +31,28 @@ public JavaStringDoubleObjectInspector() {
3131
public Object getPrimitiveWritableObject(Object o) {
3232
if(o == null) return null;
3333

34-
if(o instanceof String) {
35-
return new DoubleWritable(Double.parseDouble((String)o));
36-
} else {
37-
return new DoubleWritable(((Double) o));
34+
try {
35+
if(o instanceof String) {
36+
return new DoubleWritable(Double.parseDouble((String)o));
37+
} else {
38+
return new DoubleWritable(((Double) o));
39+
}
40+
}catch (Exception e){
41+
return new DoubleWritable(0.0);
3842
}
3943
}
4044

4145
@Override
4246
public double get(Object o) {
4347

44-
if(o instanceof String) {
45-
return Double.parseDouble((String)o);
46-
} else {
47-
return (((Double) o));
48+
try {
49+
if(o instanceof String) {
50+
return Double.parseDouble((String)o);
51+
} else {
52+
return (((Double) o));
53+
}
54+
}catch (Exception e){
55+
return 0.0;
4856
}
4957
}
5058

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/JavaStringFloatObjectInspector.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,14 @@ public Object getPrimitiveWritableObject(Object o) {
4040

4141
@Override
4242
public float get(Object o) {
43-
if(o instanceof String) {
44-
return Float.parseFloat((String)o);
45-
} else {
46-
return ((Float) o);
43+
try {
44+
if(o instanceof String) {
45+
return Float.parseFloat((String)o);
46+
} else {
47+
return ((Float) o);
48+
}
49+
}catch (Exception e){
50+
return 0.0f;
4751
}
4852
}
4953

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/JavaStringIntObjectInspector.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,14 @@ public Object getPrimitiveWritableObject(Object o) {
4141

4242
@Override
4343
public int get(Object o) {
44-
if(o instanceof String) {
45-
return ParsePrimitiveUtils.parseInt((String)o);
46-
} else {
47-
return ((Integer) o);
44+
try {
45+
if(o instanceof String) {
46+
return ParsePrimitiveUtils.parseInt((String)o);
47+
} else {
48+
return ((Integer) o);
49+
}
50+
}catch (Exception e){
51+
return 0;
4852
}
4953
}
5054

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/JavaStringLongObjectInspector.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,14 @@ public Object getPrimitiveWritableObject(Object o) {
4242
@Override
4343
public long get(Object o) {
4444

45-
if(o instanceof String) {
46-
return ParsePrimitiveUtils.parseLong((String)o);
47-
} else {
48-
return ((Long) o);
45+
try {
46+
if(o instanceof String) {
47+
return ParsePrimitiveUtils.parseLong((String)o);
48+
} else {
49+
return ((Long) o);
50+
}
51+
}catch (Exception e){
52+
return 0;
4953
}
5054
}
5155

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/JavaStringShortObjectInspector.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,14 @@ public Object getPrimitiveWritableObject(Object o) {
4242
@Override
4343
public short get(Object o) {
4444

45-
if(o instanceof String) {
46-
return ParsePrimitiveUtils.parseShort((String)o);
47-
} else {
48-
return ((Short) o);
45+
try {
46+
if(o instanceof String) {
47+
return ParsePrimitiveUtils.parseShort((String)o);
48+
} else {
49+
return ((Short) o);
50+
}
51+
}catch (Exception e){
52+
return 0;
4953
}
5054
}
5155

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/JsonStringJavaObjectInspector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public Text getPrimitiveWritableObject(Object o) {
3636

3737
@Override
3838
public String getPrimitiveJavaObject(Object o) {
39-
return (String) o.toString();
39+
return o==null?null:(String) o.toString();
4040
}
4141

4242
@Override

json-serde/src/main/java/org/openx/data/jsonserde/objectinspector/primitive/ParsePrimitiveUtils.java

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,38 @@ public static byte parseByte(String s) {
2727
}
2828

2929
public static int parseInt(String s) {
30-
if (isHex(s)) {
31-
return Integer.parseInt(s.substring(2), 16);
32-
} else {
33-
return Integer.parseInt(s);
30+
try {
31+
if (isHex(s)) {
32+
return Integer.parseInt(s.substring(2), 16);
33+
} else {
34+
return Integer.parseInt(s);
35+
}
36+
}catch (Exception e){
37+
return 0;
3438
}
3539
}
3640

3741
public static short parseShort(String s) {
38-
if (isHex(s)) {
39-
return Short.parseShort(s.substring(2), 16);
40-
} else {
41-
return Short.parseShort(s);
42+
try {
43+
if (isHex(s)) {
44+
return Short.parseShort(s.substring(2), 16);
45+
} else {
46+
return Short.parseShort(s);
47+
}
48+
} catch (Exception e){
49+
return 0;
4250
}
4351
}
4452

4553
public static long parseLong(String s) {
46-
if (isHex(s)) {
47-
return Long.parseLong(s.substring(2), 16);
48-
} else {
49-
return Long.parseLong(s);
54+
try {
55+
if (isHex(s)) {
56+
return Long.parseLong(s.substring(2), 16);
57+
} else {
58+
return Long.parseLong(s);
59+
}
60+
}catch (Exception e){
61+
return 0;
5062
}
5163
}
5264

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@
3333
<cdh4.hive.version>0.10.0-cdh${cdh4.version}</cdh4.hive.version>
3434
<cdh4.hadoop.version>2.0.0-cdh${cdh4.version}</cdh4.hadoop.version>
3535
<!-- cdh5 versions -->
36-
<cdh5.version>5.0.0</cdh5.version>
37-
<cdh5.hive.version>0.12.0-cdh${cdh5.version}</cdh5.hive.version>
38-
<cdh5.hadoop.version>2.3.0-cdh${cdh5.version}</cdh5.hadoop.version>
36+
<cdh5.version>5.3.0</cdh5.version>
37+
<cdh5.hive.version>0.13.1-cdh${cdh5.version}</cdh5.hive.version>
38+
<cdh5.hadoop.version>2.5.0-cdh${cdh5.version}</cdh5.hadoop.version>
3939
</properties>
4040

4141
<profiles>

0 commit comments

Comments
 (0)