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

xiangdong Huang edited comment on CASSANDRA-8581 at 3/23/15 6:24 AM:
---------------------------------------------------------------------

Ok, here is the differences:
(I find that the format will be changed in this website. So I update the 
difference in the Attachment)
diff --git a/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java 
b/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
index 6823342..68c8714 100644
--- a/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
+++ b/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
@@ -187,21 +187,23 @@ final class ColumnFamilyRecordWriter extends 
AbstractColumnFamilyRecordWriter<By
                 while (true)
                 {
                     // send the mutation to the last-used endpoint.  first 
time through, this will NPE harmlessly.
-                    try
-                    {
-                        client.batch_mutate(batch, consistencyLevel);
-                        break;
-                    }
-                    catch (Exception e)
-                    {
-                        closeInternal();
-                        if (!iter.hasNext())
-                        {
-                            lastException = new IOException(e);
-                            break outer;
-                        }
+                    if(client!=null){
+                               try
+                           {
+                               client.batch_mutate(batch, consistencyLevel);
+                               break;
+                           }
+                           catch (Exception e)
+                           {
+                               e.printStackTrace();
+                               closeInternal();
+                               if (!iter.hasNext())
+                               {
+                                   lastException = new IOException(e);
+                                   break outer;
+                               }
+                           }
                     }
-
                     // attempt to connect to a different endpoint
                     try
                     {



was (Author: jixuan1989):
Ok, here is the differences:

diff --git a/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java 
b/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
index 6823342..68c8714 100644
--- a/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
+++ b/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
@@ -187,21 +187,23 @@ final class ColumnFamilyRecordWriter extends 
AbstractColumnFamilyRecordWriter<By
                 while (true)
                 {
                     // send the mutation to the last-used endpoint.  first 
time through, this will NPE harmlessly.
-                    try
-                    {
-                        client.batch_mutate(batch, consistencyLevel);
-                        break;
-                    }
-                    catch (Exception e)
-                    {
-                        closeInternal();
-                        if (!iter.hasNext())
-                        {
-                            lastException = new IOException(e);
-                            break outer;
-                        }
+                    if(client!=null){
+                               try
+                           {
+                               client.batch_mutate(batch, consistencyLevel);
+                               break;
+                           }
+                           catch (Exception e)
+                           {
+                               e.printStackTrace();
+                               closeInternal();
+                               if (!iter.hasNext())
+                               {
+                                   lastException = new IOException(e);
+                                   break outer;
+                               }
+                           }
                     }
-
                     // attempt to connect to a different endpoint
                     try
                     {


> Null pointer in cassandra.hadoop.ColumnFamilyRecoderWriter
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-8581
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8581
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Hadoop
>            Reporter: xiangdong Huang
>            Assignee: Brandon Williams
>              Labels: hadoop
>             Fix For: 2.1.4
>
>         Attachments: 屏幕快照 2015-01-08 下午7.59.29.png, 屏幕快照 2015-01-08 
> 下午8.01.15.png, 屏幕快照 2015-01-08 下午8.07.23.png
>
>
> When I run examples/hadoop_word_count. I find that ReducerToFilesystem is 
> correct but when I use ReducerToCassandra, the program will call loadYaml().
> The reason is that the program catch a exception at line 196 of 
> ColumnFamilyRecoderWriter.java. 
> Then it check why the exception occur, then it loadYaml to check if the disk 
> is broken...
> However, the exception is NullPointerException. because the client is not 
> initialized.
>  
> So we need a check to judge whether the client is null. 
> (
> The exception, original code and fixed code are in the attachments.
> )



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to