Author: fmeschbe
Date: Wed Apr 22 06:24:20 2009
New Revision: 767390
URL: http://svn.apache.org/viewvc?rev=767390&view=rev
Log:
SLING-935 Dipose off repository if pingAndCheck fails after pingRepository and
add more logging
SLING-934 Clear instance field in unbindLog instead of parameter
Modified:
incubator/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/AbstractSlingRepository.java
Modified:
incubator/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/AbstractSlingRepository.java
URL:
http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/AbstractSlingRepository.java?rev=767390&r1=767389&r2=767390&view=diff
==============================================================================
---
incubator/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/AbstractSlingRepository.java
(original)
+++
incubator/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/AbstractSlingRepository.java
Wed Apr 22 06:24:20 2009
@@ -626,8 +626,12 @@
// immediately try to start the repository while activating
// this component instance
try {
- startRepository();
- log(LogService.LOG_INFO, "Repository started successfully");
+ if (startRepository()) {
+ log(LogService.LOG_INFO, "Repository started successfully");
+ } else {
+ log(LogService.LOG_WARNING,
+ "Repository startup failed, will try later");
+ }
} catch (Throwable t) {
log(LogService.LOG_WARNING,
"activate: Unexpected problem starting repository", t);
@@ -671,7 +675,7 @@
protected void unbindLog(LogService log) {
if (this.log == log) {
- log = null;
+ this.log = null;
}
}
@@ -807,12 +811,7 @@
if (pingRepository(newRepo)) {
repository = newRepo;
- if(!pingAndCheck()) {
- repository = null;
- log(LogService.LOG_DEBUG, "pingRepository() successful
but pingAndCheck() fails, will try again");
- return false;
-
- } else {
+ if(pingAndCheck()) {
log(LogService.LOG_DEBUG,
"startRepository: pingRepository() and
pingAndCheck() successful, calling setupRepository()");
setupRepository(newRepo);
@@ -827,12 +826,27 @@
return true;
}
+
+ // ping succeeded but pingAndCheck fail, we have to drop
+ // the repository in this situation and restart from
+ // scratch later
+ log(
+ LogService.LOG_DEBUG,
+ "pingRepository() successful but pingAndCheck() fails,
calling disposeRepository()");
+
+ // drop reference
+ repository = null;
+
+ } else {
+
+ // otherwise let go of the repository and fail startup
+ log(LogService.LOG_DEBUG,
+ "startRepository: pingRepository() failed, calling
disposeRepository()");
+
}
- // otherwise let go of the repository and fail startup
- log(LogService.LOG_DEBUG,
- "startRepository: pingRepository() failed, calling
disposeRepository()");
- disposeRepository(repository);
+ // ping or pingAndCheck failed: dispose off repository
+ disposeRepository(newRepo);
}
} catch (Throwable t) {
// consider an uncaught problem an error