You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2009/04/22 11:05:22 UTC
svn commit: r767416 - in /jackrabbit/trunk/jackrabbit-core/src:
main/java/org/apache/jackrabbit/core/SessionImpl.java
test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
Author: thomasm
Date: Wed Apr 22 09:05:22 2009
New Revision: 767416
URL: http://svn.apache.org/viewvc?rev=767416&view=rev
Log:
JCR-2080 DataStore: garbage collection can fail when using workspace maxIdleTime
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java?rev=767416&r1=767415&r2=767416&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java Wed Apr 22 09:05:22 2009
@@ -680,11 +680,17 @@
PersistenceManager pm = vm.getPersistenceManager();
pmList.add(pm);
String[] wspNames = rep.getWorkspaceNames();
- SystemSession[] sysSessions = new SystemSession[wspNames.length];
+ Session[] sessions = new Session[wspNames.length];
for (int i = 0; i < wspNames.length; i++) {
String wspName = wspNames[i];
WorkspaceInfo wspInfo = rep.getWorkspaceInfo(wspName);
- sysSessions[i] = rep.getSystemSession(wspName);
+ // this will initialize the workspace if required
+ wspInfo.getSystemSession();
+ SessionImpl session = SystemSession.create(rep, wspInfo.getConfig());
+ // mark this session as 'active' so the workspace does not get disposed
+ // by the workspace-janitor until the garbage collector is done
+ rep.onSessionCreated(session);
+ sessions[i] = session;
pm = wspInfo.getPersistenceManager();
pmList.add(pm);
}
@@ -697,7 +703,7 @@
}
ipmList[i] = (IterablePersistenceManager) pm;
}
- GarbageCollector gc = new GarbageCollector(this, ipmList, sysSessions);
+ GarbageCollector gc = new GarbageCollector(this, ipmList, sessions);
return gc;
}
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java?rev=767416&r1=767415&r2=767416&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/GarbageCollectorTest.java Wed Apr 22 09:05:22 2009
@@ -55,7 +55,7 @@
public void run() {
try {
node.setProperty("slowBlob", new InputStream() {
- int pos = 0;
+ int pos;
public int read() throws IOException {
pos++;
if (pos < 10000) {