You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2015/03/17 16:56:41 UTC

svn commit: r1667342 - in /lucene/dev/branches/branch_5x: ./ solr/ solr/core/ solr/core/src/java/org/apache/solr/handler/BlobHandler.java

Author: noble
Date: Tue Mar 17 15:56:41 2015
New Revision: 1667342

URL: http://svn.apache.org/r1667342
Log:
fixing formatting

Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/solr/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/BlobHandler.java

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/BlobHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/BlobHandler.java?rev=1667342&r1=1667341&r2=1667342&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/BlobHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/BlobHandler.java Tue Mar 17 15:56:41 2015
@@ -23,7 +23,6 @@ import java.math.BigInteger;
 import java.nio.ByteBuffer;
 import java.security.MessageDigest;
 import java.text.MessageFormat;
-import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -38,10 +37,8 @@ import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.search.TopFieldDocs;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.MapSolrParams;
-import org.apache.solr.common.params.UpdateParams;
 import org.apache.solr.common.util.ContentStream;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.StrUtils;
@@ -64,10 +61,10 @@ import org.slf4j.LoggerFactory;
 import static java.util.Collections.singletonMap;
 import static org.apache.solr.common.cloud.ZkNodeProps.makeMap;
 
-public class BlobHandler extends RequestHandlerBase  implements PluginInfoInitialized{
+public class BlobHandler extends RequestHandlerBase implements PluginInfoInitialized {
   protected static final Logger log = LoggerFactory.getLogger(BlobHandler.class);
 
-  private static final long MAX_SZ = 5*1024*1024;//2MB
+  private static final long MAX_SZ = 5 * 1024 * 1024;//2MB
   private long maxSize = MAX_SZ;
 
 
@@ -76,26 +73,26 @@ public class BlobHandler extends Request
   public void handleRequestBody(final SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     String httpMethod = (String) req.getContext().get("httpMethod");
     String path = (String) req.getContext().get("path");
-    SolrConfigHandler.setWt(req,"json");
+    SolrConfigHandler.setWt(req, "json");
 
     List<String> pieces = StrUtils.splitSmart(path, '/');
     String blobName = null;
-    if(pieces.size()>=3) blobName = pieces.get(2);
+    if (pieces.size() >= 3) blobName = pieces.get(2);
 
-    if("POST".equals(httpMethod)) {
+    if ("POST".equals(httpMethod)) {
       if (blobName == null || blobName.isEmpty()) {
-        rsp.add("error","Name not found");
+        rsp.add("error", "Name not found");
         return;
       }
       String err = SolrConfigHandler.validateName(blobName);
-      if(err!=null){
+      if (err != null) {
         log.warn("no blob name");
         rsp.add("error", err);
         return;
       }
-      if(req.getContentStreams() == null )  {
+      if (req.getContentStreams() == null) {
         log.warn("no content stream");
-        rsp.add("error","No stream");
+        rsp.add("error", "No stream");
         return;
       }
 
@@ -103,18 +100,18 @@ public class BlobHandler extends Request
       for (ContentStream stream : req.getContentStreams()) {
         ByteBuffer payload = SimplePostTool.inputStreamToByteArray(stream.getStream(), maxSize);
         MessageDigest m = MessageDigest.getInstance("MD5");
-        m.update(payload.array(),payload.position(),payload.limit());
-        String md5 = new BigInteger(1,m.digest()).toString(16);
+        m.update(payload.array(), payload.position(), payload.limit());
+        String md5 = new BigInteger(1, m.digest()).toString(16);
 
         TopDocs duplicate = req.getSearcher().search(new TermQuery(new Term("md5", md5)), 1);
-        if(duplicate.totalHits >0){
+        if (duplicate.totalHits > 0) {
           rsp.add("error", "duplicate entry");
           req.forward(null,
               new MapSolrParams((Map) makeMap(
-              "q", "md5:" + md5,
-              "fl", "id,size,version,timestamp,blobName")),
+                  "q", "md5:" + md5,
+                  "fl", "id,size,version,timestamp,blobName")),
               rsp);
-          log.warn("duplicate entry for blob :"+blobName);
+          log.warn("duplicate entry for blob :" + blobName);
           return;
         }
 
@@ -122,13 +119,13 @@ public class BlobHandler extends Request
             1, new Sort(new SortField("version", SortField.Type.LONG, true)));
 
         long version = 0;
-        if(docs.totalHits >0){
+        if (docs.totalHits > 0) {
           Document doc = req.getSearcher().doc(docs.scoreDocs[0].doc);
           Number n = doc.getField("version").numericValue();
           version = n.longValue();
         }
         version++;
-        String id = blobName+"/"+version;
+        String id = blobName + "/" + version;
         Map<String, Object> doc = makeMap(
             "id", id,
             "md5", md5,
@@ -138,16 +135,16 @@ public class BlobHandler extends Request
             "size", payload.limit(),
             "blob", payload);
         verifyWithRealtimeGet(blobName, version, req, doc);
-        log.info(MessageFormat.format("inserting new blob {0} ,size {1}, md5 {2}",doc.get("id"), String.valueOf(payload.limit()),md5));
+        log.info(MessageFormat.format("inserting new blob {0} ,size {1}, md5 {2}", doc.get("id"), String.valueOf(payload.limit()), md5));
         indexMap(req, rsp, doc);
-        log.info(" Successfully Added and committed a blob with id {} and size {} ",id, payload.limit());
+        log.info(" Successfully Added and committed a blob with id {} and size {} ", id, payload.limit());
 
         break;
       }
 
     } else {
-      int version =-1;
-      if(pieces.size()>3){
+      int version = -1;
+      if (pieces.size() > 3) {
         try {
           version = Integer.parseInt(pieces.get(3));
         } catch (NumberFormatException e) {
@@ -156,16 +153,16 @@ public class BlobHandler extends Request
         }
 
       }
-      if(ReplicationHandler.FILE_STREAM.equals(req.getParams().get(CommonParams.WT))){
-        if(blobName == null ){
+      if (ReplicationHandler.FILE_STREAM.equals(req.getParams().get(CommonParams.WT))) {
+        if (blobName == null) {
           throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Please send the request in the format /blob/<blobName>/<version>");
         } else {
           String q = "blobName:{0}";
-          if(version != -1) q = "id:{0}/{1}";
-          QParser qparser =  QParser.getParser(MessageFormat.format(q,blobName,version) , "lucene", req);
-          final TopDocs docs = req.getSearcher().search(qparser.parse(), 1, new Sort( new SortField("version", SortField.Type.LONG, true)));
-          if(docs.totalHits>0){
-            rsp.add(ReplicationHandler.FILE_STREAM, new SolrCore.RawWriter(){
+          if (version != -1) q = "id:{0}/{1}";
+          QParser qparser = QParser.getParser(MessageFormat.format(q, blobName, version), "lucene", req);
+          final TopDocs docs = req.getSearcher().search(qparser.parse(), 1, new Sort(new SortField("version", SortField.Type.LONG, true)));
+          if (docs.totalHits > 0) {
+            rsp.add(ReplicationHandler.FILE_STREAM, new SolrCore.RawWriter() {
 
               @Override
               public void write(OutputStream os) throws IOException {
@@ -173,26 +170,26 @@ public class BlobHandler extends Request
                 IndexableField sf = doc.getField("blob");
                 FieldType fieldType = req.getSchema().getField("blob").getType();
                 ByteBuffer buf = (ByteBuffer) fieldType.toObject(sf);
-                if(buf == null){
+                if (buf == null) {
                   //should never happen unless a user wrote this document directly
                   throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Invalid document . No field called blob");
                 } else {
-                  os.write(buf.array(),0,buf.limit());
+                  os.write(buf.array(), 0, buf.limit());
                 }
               }
             });
 
           } else {
             throw new SolrException(SolrException.ErrorCode.NOT_FOUND,
-                MessageFormat.format("Invalid combination of blobName {0} and version {1}", blobName,String.valueOf(version)));
+                MessageFormat.format("Invalid combination of blobName {0} and version {1}", blobName, String.valueOf(version)));
           }
 
         }
       } else {
         String q = "*:*";
-        if(blobName != null){
+        if (blobName != null) {
           q = "blobName:{0}";
-          if(version != -1){
+          if (version != -1) {
             q = "id:{0}/{1}";
           }
         }
@@ -208,41 +205,41 @@ public class BlobHandler extends Request
   }
 
   private void verifyWithRealtimeGet(String blobName, long version, SolrQueryRequest req, Map<String, Object> doc) {
-    for(;;) {
+    for (; ; ) {
       SolrQueryResponse response = new SolrQueryResponse();
       String id = blobName + "/" + version;
       req.forward("/get", new MapSolrParams(singletonMap("id", id)), response);
-      if(response.getValues().get("doc") == null) {
+      if (response.getValues().get("doc") == null) {
         //ensure that the version does not exist
         return;
       } else {
-        log.info("id {} already exists trying next ",id);
+        log.info("id {} already exists trying next ", id);
         version++;
         doc.put("version", version);
         id = blobName + "/" + version;
         doc.put("id", id);
       }
-   }
+    }
 
   }
 
   public static void indexMap(SolrQueryRequest req, SolrQueryResponse rsp, Map<String, Object> doc) throws IOException {
     SolrInputDocument solrDoc = new SolrInputDocument();
-    for (Map.Entry<String, Object> e : doc.entrySet()) solrDoc.addField(e.getKey(),e.getValue());
+    for (Map.Entry<String, Object> e : doc.entrySet()) solrDoc.addField(e.getKey(), e.getValue());
     UpdateRequestProcessorChain processorChain = req.getCore().getUpdateProcessorChain(req.getParams());
     UpdateRequestProcessor processor = processorChain.createProcessor(req, rsp);
     AddUpdateCommand cmd = new AddUpdateCommand(req);
     cmd.solrDoc = solrDoc;
-    log.info("Adding doc: "+doc);
+    log.info("Adding doc: " + doc);
     processor.processAdd(cmd);
-    log.info("committing doc: "+doc);
+    log.info("committing doc: " + doc);
     processor.processCommit(new CommitUpdateCommand(req, false));
     processor.finish();
   }
 
   @Override
   public SolrRequestHandler getSubHandler(String subPath) {
-    if(StrUtils.splitSmart(subPath,'/').size()>4)  return null;
+    if (StrUtils.splitSmart(subPath, '/').size() > 4) return null;
     return this;
   }
 
@@ -269,7 +266,7 @@ public class BlobHandler extends Request
       "  <field name='blobName'      type='string'   indexed='true'  stored='true'  multiValued='false' />\n" +
       "  <field name='_version_' type='long'     indexed='true'  stored='true'/>\n" +
       "  <uniqueKey>id</uniqueKey>\n" +
-      "</schema>" ;
+      "</schema>";
 
   public static final String CONF = "<?xml version='1.0' ?>\n" +
       "<config>\n" +
@@ -287,22 +284,22 @@ public class BlobHandler extends Request
       "<requestHandler name='standard' class='solr.StandardRequestHandler' default='true' />\n" +
       "<requestHandler name='/analysis/field' startup='lazy' class='solr.FieldAnalysisRequestHandler' />\n" +
       "<requestHandler name='/blob' class='solr.BlobHandler'>\n" +
-      "  <lst name='invariants'>\n"+
-           "<str name='maxSize'>${blob.max.size.mb:5}</str>\n"+
-         "</lst>\n"+
+      "  <lst name='invariants'>\n" +
+      "<str name='maxSize'>${blob.max.size.mb:5}</str>\n" +
+      "</lst>\n" +
       "</requestHandler>\n" +
-      "</config>" ;
+      "</config>";
 
   @Override
   public void init(PluginInfo info) {
     super.init(info.initArgs);
-    if(info.initArgs != null ){
+    if (info.initArgs != null) {
       NamedList invariants = (NamedList) info.initArgs.get(PluginInfo.INVARIANTS);
-      if(invariants != null){
+      if (invariants != null) {
         Object o = invariants.get("maxSize");
-        if(o != null){
+        if (o != null) {
           maxSize = Long.parseLong(String.valueOf(o));
-          maxSize = maxSize*1024*1024;
+          maxSize = maxSize * 1024 * 1024;
         }
       }