From 36f75fe80609943ab3272d50a77c432d849f8c53 Mon Sep 17 00:00:00 2001
From: Alex Redington <alex.redington@thinkrelevance.com>
Date: Fri, 25 Mar 2011 16:35:43 -0400
Subject: [PATCH] Fix for #732, blow up trying to keyword ""

---
 src/jvm/clojure/lang/Keyword.java      |    2 ++
 test/clojure/test_clojure/keywords.clj |    3 +++
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/jvm/clojure/lang/Keyword.java b/src/jvm/clojure/lang/Keyword.java
index fa90d9e..51cf336 100644
--- a/src/jvm/clojure/lang/Keyword.java
+++ b/src/jvm/clojure/lang/Keyword.java
@@ -29,6 +29,8 @@ public final Symbol sym;
 final int hash;
 
 public static Keyword intern(Symbol sym){
+	if (sym.getName().length() == 0)
+		throw new IllegalArgumentException("Cannot keyword empty string");
 	if(sym.meta() != null)
 		sym = (Symbol) sym.withMeta(null);
 	Util.clearCache(rq, table);
diff --git a/test/clojure/test_clojure/keywords.clj b/test/clojure/test_clojure/keywords.clj
index 9ef86d7..f7bed63 100644
--- a/test/clojure/test_clojure/keywords.clj
+++ b/test/clojure/test_clojure/keywords.clj
@@ -23,3 +23,6 @@
       (are [result lookup] (= result (find-keyword this-ns lookup))
            ::foo "foo"
            nil (str absent-keyword-sym)))))
+
+(deftest test-blank-keyword-throws-exception
+  (is (thrown? IllegalArgumentException (keyword ""))))
-- 
1.7.4.1

