Author: jflesch
Date: 2007-03-14 10:58:04 +0000 (Wed, 14 Mar 2007)
New Revision: 12113
Modified:
trunk/apps/Thaw/src/thaw/core/FreenetURIHelper.java
trunk/apps/Thaw/src/thaw/plugins/index/File.java
trunk/apps/Thaw/src/thaw/plugins/index/Index.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexSelecter.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java
Log:
Fix link creation + Fix key comparaison when adding an index to the tree
Modified: trunk/apps/Thaw/src/thaw/core/FreenetURIHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/FreenetURIHelper.java 2007-03-14 08:10:00 UTC
(rev 12112)
+++ trunk/apps/Thaw/src/thaw/core/FreenetURIHelper.java 2007-03-14 10:58:04 UTC
(rev 12113)
@@ -133,10 +133,10 @@
USK = split[i];
break;
case(2):
- USK = USK + "-" +
FreenetURIHelper.abs(split[i]);
+ USK += "-" + FreenetURIHelper.abs(split[i]);
break;
default:
- USK = USK + "/" + split[i];
+ USK += "/" + split[i];
break;
}
}
@@ -271,5 +271,42 @@
return key.substring(0, 70).toLowerCase();
}
+
+
+ public static boolean compareKeys(String keyA, String keyB) {
+ if (keyA == keyB)
+ return true;
+
+ if (keyA == null || keyB == null) {
+ Logger.notice(new FreenetURIHelper(), "compareKeys :
null argument ?!");
+ return false;
+ }
+
+ keyA = cleanURI(keyA);
+ keyB = cleanURI(keyB);
+
+ if (keyA.startsWith("USK@"))
+ keyA = convertUSKtoSSK(keyA);
+
+ if (keyB.startsWith("USK@"))
+ keyB = convertUSKtoSSK(keyB);
+
+ if (!keyA.substring(0, 3).equals(keyB.substring(0, 3))) {
+ Logger.notice(new FreenetURIHelper(), "Not the same
kind of key : "+
+ keyA.substring(0, 3) + " vs " +
keyB.substring(0, 3));
+ return false;
+ }
+
+ if (keyA.startsWith("CHK@")) {
+ return
getComparablePart(keyA).equals(getComparablePart(keyB));
+ }
+
+ if (keyA.startsWith("SSK@")) {
+ keyA = changeSSKRevision(keyA, 0, 0);
+ keyB = changeSSKRevision(keyB, 0, 0);
+ }
+
+ return keyA.equals(keyB);
+ }
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-14 08:10:00 UTC
(rev 12112)
+++ trunk/apps/Thaw/src/thaw/plugins/index/File.java 2007-03-14 10:58:04 UTC
(rev 12113)
@@ -193,7 +193,7 @@
}
public void setPublicKey(final String publicKey) {
- this.publicKey = publicKey;
+ this.publicKey = FreenetURIHelper.cleanURI(publicKey);
try {
PreparedStatement st;
Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-03-14 08:10:00 UTC
(rev 12112)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java 2007-03-14 10:58:04 UTC
(rev 12113)
@@ -1386,20 +1386,28 @@
return false;
}
+ key = key.replaceAll(".xml", ".frdx");
+
synchronized(db.dbLock) {
try {
PreparedStatement st;
- st =
db.getConnection().prepareStatement("SELECT publicKey from indexes WHERE
LOWER(publicKey) LIKE ? LIMIT 1");
+ st =
db.getConnection().prepareStatement("SELECT publicKey from indexes WHERE
LOWER(publicKey) LIKE ?");
st.setString(1,
FreenetURIHelper.getComparablePart(key) +"%");
ResultSet res = st.executeQuery();
- if (res.next()) {
- return true;
+ while(res.next()) {
+ String pubKey =
res.getString("publicKey").replaceAll(".xml", ".frdx");
+
+ if
(FreenetURIHelper.compareKeys(pubKey, key)) {
+ return true;
+ }
}
+ return false;
+
} 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/IndexSelecter.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexSelecter.java 2007-03-14
08:10:00 UTC (rev 12112)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexSelecter.java 2007-03-14
10:58:04 UTC (rev 12113)
@@ -13,6 +13,7 @@
import thaw.core.I18n;
import thaw.core.Logger;
+import thaw.core.FreenetURIHelper;
import thaw.plugins.Hsqldb;
/**
@@ -86,7 +87,7 @@
indexPanel = new JPanel();
indexPanel.setLayout(new GridLayout(1, 2));
- indexPanel.add(new JScrollPane(indexTree.getPanel()));
+ indexPanel.add(indexTree.getPanel());
upPanel.add(indexPanel, BorderLayout.CENTER);
@@ -132,7 +133,7 @@
cancelButton = null;
okButton = null;
- return selectedIndexKey;
+ return FreenetURIHelper.cleanURI(selectedIndexKey);
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-14
08:10:00 UTC (rev 12112)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-03-14
10:58:04 UTC (rev 12113)
@@ -114,7 +114,7 @@
boolean loadOnTheFly = false;
- if (config.getValue("loadIndexTreeOnTheFly") != null)
+ if (config != null && config.getValue("loadIndexTreeOnTheFly")
!= null)
loadOnTheFly =
Boolean.valueOf(config.getValue("loadIndexTreeOnTheFly")).booleanValue();
root = new IndexRoot(queueManager, indexBrowser, rootName,
loadOnTheFly);