diff lucene/src/luan/modules/lucene/FieldTable.java @ 234:b25feac318d8

add lucene jar and minor changes git-svn-id: https://luan-java.googlecode.com/svn/trunk@235 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 02 Oct 2014 20:08:39 +0000
parents ef39bc4d3f70
children 3e68917a0dc6
line wrap: on
line diff
--- a/lucene/src/luan/modules/lucene/FieldTable.java	Thu Oct 02 02:58:55 2014 +0000
+++ b/lucene/src/luan/modules/lucene/FieldTable.java	Thu Oct 02 20:08:39 2014 +0000
@@ -27,8 +27,15 @@
 		if( !(value instanceof String) )
 			throw new UnsupportedOperationException("value must be string");
 		String field = (String)value;
-		map.put(name,field);
-		reverseMap.put(field,name);
+		String oldField = map.put(name,field);
+		if( oldField != null )
+			reverseMap.remove(oldField);
+		String oldName = reverseMap.put(field,name);
+		if( oldName != null ) {
+			reverseMap.put(field,oldName);
+			map.remove(name);
+			throw new IllegalArgumentException("field '"+oldName+"' is already assigned to '"+field+"'");
+		}
 	}
 
 	@Override public final Object get(Object key) {