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);


Reply via email to