Author: jflesch
Date: 2007-04-21 15:19:02 +0000 (Sat, 21 Apr 2007)
New Revision: 12843
Modified:
trunk/apps/Thaw/src/thaw/plugins/index/Index.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
Log:
Fix unknown index detection
Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-04-21 14:50:07 UTC
(rev 12842)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-04-21 15:19:02 UTC
(rev 12843)
@@ -1531,10 +1531,14 @@
}
+ public static int isAlreadyKnown(Hsqldb db, String key) {
+ return isAlreadyKnown(db, key, false);
+ }
+
/**
* @return the index id if found ; -1 else
*/
- public static int isAlreadyKnown(Hsqldb db, String key) {
+ public static int isAlreadyKnown(Hsqldb db, String key, boolean strict)
{
if (key.length() < 40) {
Logger.error(new Index(), "isAlreadyKnown(): Invalid
key: "+key);
return -1;
@@ -1546,22 +1550,30 @@
try {
PreparedStatement st;
- st =
db.getConnection().prepareStatement("SELECT id, publicKey from indexes WHERE
LOWER(publicKey) LIKE ?");
+ st =
db.getConnection().prepareStatement("SELECT id, publicKey from indexes WHERE
LOWER(publicKey) LIKE ?"
+ +
(strict ? "" : " LIMIT 1"));
st.setString(1,
FreenetURIHelper.getComparablePart(key) +"%");
ResultSet res = st.executeQuery();
- while(res.next()) {
- String pubKey =
res.getString("publicKey").replaceAll(".xml", ".frdx");
+ if (strict) {
+ while(res.next()) {
+ String pubKey =
res.getString("publicKey").replaceAll(".xml", ".frdx");
- if
(FreenetURIHelper.compareKeys(pubKey, key)) {
- return res.getInt("id");
+ if
(FreenetURIHelper.compareKeys(pubKey, key)) {
+ return res.getInt("id");
+ }
}
+
+ return -1;
+ } else {
+ if (!res.next())
+ return -1;
+
+ return res.getInt("id");
}
- return -1;
-
} catch(final SQLException e) {
Logger.error(new Index(), "isAlreadyKnown:
Unable to check if link '"+key+"' point to a know index because:
"+e.toString());
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-04-21 14:50:07 UTC (rev 12842)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-04-21 15:19:02 UTC (rev 12843)
@@ -565,7 +565,7 @@
if (privateKey != null && privateKey.equals(""))
privateKey = null;
- if (Index.isAlreadyKnown(indexBrowser.getDb(), publicKey) >= 0)
{
+ if (Index.isAlreadyKnown(indexBrowser.getDb(), publicKey, true)
>= 0) {
Logger.notice(new IndexManagementHelper(), "Index
already added !");
return null;
}