You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by ma...@apache.org on 2015/10/31 00:55:17 UTC

svn commit: r1711565 - in /nutch/trunk: CHANGES.txt src/java/org/apache/nutch/service/model/request/DbQuery.java src/java/org/apache/nutch/service/resources/DbResource.java

Author: mattmann
Date: Fri Oct 30 23:55:17 2015
New Revision: 1711565

URL: http://svn.apache.org/viewvc?rev=1711565&view=rev
Log:
Fix for NUTCH-2154 Nutch REST API (DB) suffering NullPointerException contributed by Sujen Shah.

Modified:
    nutch/trunk/CHANGES.txt
    nutch/trunk/src/java/org/apache/nutch/service/model/request/DbQuery.java
    nutch/trunk/src/java/org/apache/nutch/service/resources/DbResource.java

Modified: nutch/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/nutch/trunk/CHANGES.txt?rev=1711565&r1=1711564&r2=1711565&view=diff
==============================================================================
--- nutch/trunk/CHANGES.txt (original)
+++ nutch/trunk/CHANGES.txt Fri Oct 30 23:55:17 2015
@@ -3,6 +3,8 @@ Nutch Change Log
 Nutch 1.11 Release 25/10/2015 (dd/mm/yyyy)
 Release Report: http://s.apache.org/nutch11
 
+* NUTCH-2154 Nutch REST API (DB) suffering NullPointerException (Aron Ahmadia, Sujen Shah via mattmann)
+
 * NUTCH-2150 Add protocolstats utility (Michael Joyce via mattmann)
 
 * NUTCH-2146 hashCode on the Outlink class (jorgelbg via mattmann)

Modified: nutch/trunk/src/java/org/apache/nutch/service/model/request/DbQuery.java
URL: http://svn.apache.org/viewvc/nutch/trunk/src/java/org/apache/nutch/service/model/request/DbQuery.java?rev=1711565&r1=1711564&r2=1711565&view=diff
==============================================================================
--- nutch/trunk/src/java/org/apache/nutch/service/model/request/DbQuery.java (original)
+++ nutch/trunk/src/java/org/apache/nutch/service/model/request/DbQuery.java Fri Oct 30 23:55:17 2015
@@ -16,13 +16,14 @@
  */
 package org.apache.nutch.service.model.request;
 
+import java.util.HashMap;
 import java.util.Map;
 
 public class DbQuery {
 
   private String confId;
   private String type;
-  private Map<String, String> args;
+  private Map<String, String> args = new HashMap<String, String>();
   private String crawlId;
 
   public String getConfId() {

Modified: nutch/trunk/src/java/org/apache/nutch/service/resources/DbResource.java
URL: http://svn.apache.org/viewvc/nutch/trunk/src/java/org/apache/nutch/service/resources/DbResource.java?rev=1711565&r1=1711564&r2=1711565&view=diff
==============================================================================
--- nutch/trunk/src/java/org/apache/nutch/service/resources/DbResource.java (original)
+++ nutch/trunk/src/java/org/apache/nutch/service/resources/DbResource.java Fri Oct 30 23:55:17 2015
@@ -30,6 +30,7 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.nutch.crawl.CrawlDbReader;
@@ -44,8 +45,17 @@ public class DbResource extends Abstract
   @POST
   @Path(value = "/crawldb")
   @Consumes(MediaType.APPLICATION_JSON)
-  public Object readdb(DbQuery dbQuery){
+  public Response readdb(DbQuery dbQuery){
+    if(dbQuery == null)
+      return Response.status(Status.BAD_REQUEST).build();
+    
     Configuration conf = configManager.get(dbQuery.getConfId());
+    if(conf == null){
+      conf = configManager.get(ConfigResource.DEFAULT);
+    }
+    if(dbQuery.getCrawlId() == null || dbQuery.getType() == null){
+      return Response.status(Status.BAD_REQUEST).build();
+    }
     String type = dbQuery.getType();
 
     if(type.equalsIgnoreCase("stats")){
@@ -63,13 +73,13 @@ public class DbResource extends Abstract
     return null;
 
   }	
-  
+
   @GET
   @Path(value="/fetchdb")
   public List<FetchNodeDbInfo> fetchDb(@DefaultValue("0")@QueryParam("to")int to, @DefaultValue("0")@QueryParam("from")int from){
     List<FetchNodeDbInfo> listOfFetchedNodes = new ArrayList<FetchNodeDbInfo>();
     Map<Integer, FetchNode> fetchNodedbMap = FetchNodeDb.getInstance().getFetchNodeDb();
-    
+
     if(to ==0 || to>fetchNodedbMap.size()){
       to = fetchNodedbMap.size();
     }
@@ -85,7 +95,7 @@ public class DbResource extends Abstract
       fdbInfo.setChildNodes(node.getOutlinks());
       listOfFetchedNodes.add(fdbInfo);
     }
-    
+
     return listOfFetchedNodes;
   }
   @SuppressWarnings("resource")
@@ -95,7 +105,7 @@ public class DbResource extends Abstract
       return Response.ok(dbr.query(args, conf, "stats", crawlId)).build();
     }catch(Exception e){
       e.printStackTrace();
-      return Response.serverError().entity(e.getMessage()).build();
+      return Response.serverError().entity(e.getMessage()).type(MediaType.TEXT_PLAIN).build();
     }
   }
 
@@ -106,7 +116,7 @@ public class DbResource extends Abstract
       return Response.ok(dbr.query(args, conf, "dump", crawlId), MediaType.APPLICATION_OCTET_STREAM).build();
     }catch(Exception e){
       e.printStackTrace();
-      return Response.serverError().entity(e.getMessage()).build();
+      return Response.serverError().entity(e.getMessage()).type(MediaType.TEXT_PLAIN).build();
     }
   }
 
@@ -117,7 +127,7 @@ public class DbResource extends Abstract
       return Response.ok(dbr.query(args, conf, "topN", crawlId), MediaType.APPLICATION_OCTET_STREAM).build();
     }catch(Exception e){
       e.printStackTrace();
-      return Response.serverError().entity(e.getMessage()).build();
+      return Response.serverError().entity(e.getMessage()).type(MediaType.TEXT_PLAIN).build();
     }		
   }
 
@@ -127,7 +137,7 @@ public class DbResource extends Abstract
       return Response.ok(dbr.query(args, conf, "url", crawlId)).build();
     }catch(Exception e){
       e.printStackTrace();
-      return Response.serverError().entity(e.getMessage()).build();
+      return Response.serverError().entity(e.getMessage()).type(MediaType.TEXT_PLAIN).build();
     }
   }
 }