From 141902b86d96a6e11b0a97258e03fe1c39eaebe1 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Tue, 4 May 2004 01:35:09 +0000
Subject: [PATCH] parseParams throws exception on bad formatting, and its
 perfectly valid to have params with 0 values (e.g. DEST GENERATE\n)

---
 apps/sam/java/src/net/i2p/sam/SAMUtils.java     | 13 +++++--------
 apps/sam/java/src/net/i2p/sam/SAMv1Handler.java |  2 +-
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/apps/sam/java/src/net/i2p/sam/SAMUtils.java b/apps/sam/java/src/net/i2p/sam/SAMUtils.java
index 0ae4407641..96983f1f73 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMUtils.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMUtils.java
@@ -108,9 +108,10 @@ public class SAMUtils {
      *
      * @param tok A StringTokenizer pointing to the SAM parameters
      *
-     * @return Properties with the parsed SAM params, or null if none is found
+     * @throws SAMException if the data was formatted incorrectly
+     * @return Properties with the parsed SAM params
      */
-    public static Properties parseParams(StringTokenizer tok) {
+    public static Properties parseParams(StringTokenizer tok) throws SAMException {
         int pos, nprops = 0, ntoks = tok.countTokens();
         String token, param, value;
         Properties props = new Properties();
@@ -121,7 +122,7 @@ public class SAMUtils {
             pos = token.indexOf("=");
             if (pos == -1) {
                 _log.debug("Error in params format");
-                return null;
+                throw new SAMException("Bad formatting for param [" + token + "]");
             }
             param = token.substring(0, pos);
             value = token.substring(pos + 1);
@@ -134,11 +135,7 @@ public class SAMUtils {
             _log.debug("Parsed properties: " + dumpProperties(props));
         }
 
-        if (nprops != 0) {
-            return props;
-        } else {
-            return null;
-        }
+        return props;
     }
 
     /* Dump a Properties object in an human-readable form */
diff --git a/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java b/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java
index b9eea3d353..e90b0f038a 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java
@@ -281,7 +281,7 @@ public class SAMv1Handler extends SAMHandler implements SAMRawReceiver, SAMDatag
     private boolean execDestMessage(String opcode, Properties props) {
 
         if (opcode.equals("GENERATE")) {
-            if (props != null) {
+            if (props.size() > 0) {
                 _log.debug("Properties specified in DEST GENERATE message");
                 return false;
             }
-- 
GitLab