From 954400026dd5f622c720fb61b13027dd7a3e17e2 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Thu, 18 Jan 2007 09:05:19 +0000 Subject: [PATCH] improved debug git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4870 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/node/ConcurrentNodeServiceTest.java | 53 +++++++++++++------ .../search/impl/lucene/index/IndexInfo.java | 26 ++++----- 2 files changed, 47 insertions(+), 32 deletions(-) diff --git a/source/java/org/alfresco/repo/node/ConcurrentNodeServiceTest.java b/source/java/org/alfresco/repo/node/ConcurrentNodeServiceTest.java index ec1e64959e..21bb61b90a 100644 --- a/source/java/org/alfresco/repo/node/ConcurrentNodeServiceTest.java +++ b/source/java/org/alfresco/repo/node/ConcurrentNodeServiceTest.java @@ -105,11 +105,17 @@ public class ConcurrentNodeServiceTest extends TestCase this.authenticationComponent.setSystemUserAsCurrentUser(); // create a first store directly - UserTransaction tx = transactionService.getUserTransaction(); - tx.begin(); - StoreRef storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.currentTimeMillis()); - rootNodeRef = nodeService.getRootNode(storeRef); - tx.commit(); + TransactionUtil.executeInUserTransaction(transactionService, new TransactionUtil.TransactionWork() + { + + public Object doWork() throws Exception + { + StoreRef storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + + System.currentTimeMillis()); + rootNodeRef = nodeService.getRootNode(storeRef); + return null; + } + }); } @Override @@ -126,56 +132,69 @@ public class ConcurrentNodeServiceTest extends TestCase protected Map commitNodeGraph() throws Exception { - UserTransaction tx = transactionService.getUserTransaction(); - tx.begin(); - Map answer = buildNodeGraph(); - tx.commit(); + return TransactionUtil.executeInUserTransaction(transactionService, + new TransactionUtil.TransactionWork>() + { - return null;// answer; + public Map doWork() throws Exception + { + + Map answer = buildNodeGraph(); + return answer; + } + }); } public void test1() throws Exception { testConcurrent(); } - + public void test2() throws Exception { testConcurrent(); } + public void test3() throws Exception { testConcurrent(); } + public void test4() throws Exception { testConcurrent(); } + public void test5() throws Exception { testConcurrent(); } + public void test6() throws Exception { testConcurrent(); } + public void test7() throws Exception { testConcurrent(); } + public void test8() throws Exception { testConcurrent(); } + public void test9() throws Exception { testConcurrent(); } + public void test10() throws Exception { testConcurrent(); } - + public void testConcurrent() throws Exception { luceneFTS.pause(); @@ -211,7 +230,7 @@ public class ConcurrentNodeServiceTest extends TestCase { // There are two nodes at the base level in each test assertEquals(2 * ((COUNT * REPEATS) + 1), nodeService.getChildAssocs(rootNodeRef).size()); - + SearchService searcher = (SearchService) ctx.getBean(ServiceRegistry.SEARCH_SERVICE.getLocalName()); assertEquals(2 * ((COUNT * REPEATS) + 1), searcher.selectNodes(rootNodeRef, "/*", null, getNamespacePrefixReolsver(""), false).size()); @@ -223,25 +242,25 @@ public class ConcurrentNodeServiceTest extends TestCase // index assertEquals(3 * ((COUNT * REPEATS) + 1), results.length()); results.close(); - + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*\""); // n6 has root aspect - there are three things at the root level in the // index assertEquals(3 * ((COUNT * REPEATS) + 1), results.length()); results.close(); - + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*\""); // n6 has root aspect - there are three things at the root level in the // index assertEquals(2 * ((COUNT * REPEATS) + 1), results.length()); results.close(); - + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*/*\""); // n6 has root aspect - there are three things at the root level in the // index assertEquals(1 * ((COUNT * REPEATS) + 1), results.length()); results.close(); - + results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/*/*/*/*/*\""); // n6 has root aspect - there are three things at the root level in the // index diff --git a/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java b/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java index 6f970d9149..44d66057dd 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/index/IndexInfo.java @@ -321,6 +321,7 @@ public class IndexInfo indexInfo = new IndexInfo(canonicalFile); indexInfos.put(canonicalFile, indexInfo); } + s_logger.error("Got "+indexInfo +" for "+file.getAbsolutePath()); return indexInfo; } catch (IOException e) @@ -493,8 +494,8 @@ public class IndexInfo for (String id : deletable) { indexEntries.remove(id); - deleteQueue.add(id); } + clearOldReaders(); synchronized (cleaner) { cleaner.notify(); @@ -1445,12 +1446,12 @@ public class IndexInfo if (TransactionStatus.DELETABLE.follows(entry.getStatus())) { indexEntries.remove(id); - deleteQueue.add(id); synchronized (cleaner) { cleaner.notify(); } writeStatus(); + clearOldReaders(); } else { @@ -2293,7 +2294,7 @@ public class IndexInfo catch (IOException e) { - s_logger.error(e); + s_logger.error("Error reading index file", e); } finally { @@ -2502,7 +2503,7 @@ public class IndexInfo } catch (IOException e) { - s_logger.error(e); + s_logger.error("Failed to merge deletions", e); fail = true; } @@ -2770,7 +2771,7 @@ public class IndexInfo } catch (Throwable e) { - s_logger.error(e); + s_logger.error("Failed to merge indexes", e); fail = true; } @@ -2827,15 +2828,6 @@ public class IndexInfo for (String id : toDelete) { indexEntries.remove(id); - // Only delete if there is no existing ref counting reader - if (!referenceCountingReadOnlyIndexReaders.containsKey(id)) - { - if (s_logger.isDebugEnabled()) - { - s_logger.debug("... queued delete for " + id); - } - deleteQueue.add(id); - } } dumpInfo(); @@ -2972,7 +2964,11 @@ public class IndexInfo public String toString() { - return indexDirectory.toString(); + StringBuilder builder = new StringBuilder(); + builder.append(indexDirectory.toString()); + builder.append(" "); + builder.append(super.toString()); + return builder.toString(); } public boolean isEnableCleanerThread()