Add additional checks of input parameters from html forms
[proteocache.git] / server / compbio / controllers / SequenceController.java
index d4afbdc..8e5bc29 100644 (file)
@@ -55,17 +55,32 @@ public class SequenceController {
        }
 
        @RequestMapping(value = "/sequence/querycounter", method = RequestMethod.GET)
-       public String countSequences(@RequestParam("counterJob") int counter, Map<String, Object> model) {
+       public String countSequences(@RequestParam("counterJob") String counter, Map<String, Object> model) {
                final long startTime = System.currentTimeMillis();
 
-               if (counter < 1) {
+               if (counter.equals("")) {
+                       model.put("error", "The value must not be empty");
+                       model.put("value", counter);
+                       return "queryIPStatistics";
+               }
+
+               int realcounter;
+               try {
+                       realcounter = Integer.parseInt(counter.trim());
+               } catch (NumberFormatException e) {
+                       model.put("error", "The value must be an integer number");
+                       model.put("value", counter);
+                       return "queryIPStatistics";
+               }
+
+               if (realcounter < 1) {
                        model.put("error", "The value must be greater than 0");
                        model.put("value", counter);
-                       return "queryProteinSequenceCounter";
+                       return "queryIPStatistics";
                }
 
                CassandraRequester cr = new CassandraRequester();
-               List<DataBase> r = cr.readProteinByCounter(counter);
+               List<DataBase> r = cr.readProteinByCounter(realcounter);
                model.put("results", r);
                model.put("njobs", 0);
                if (null != r) {
@@ -73,7 +88,7 @@ public class SequenceController {
                }
                final long endTime = System.currentTimeMillis();
                model.put("timeExecution", (endTime - startTime));
-               model.put("counter", counter);
+               model.put("counter", realcounter);
                return "reportProteinSequencesCounter";
        }