[exo-jcr-commits] exo-jcr SVN: r2173 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Mar 26 11:17:34 EDT 2010
Author: areshetnyak
Date: 2010-03-26 11:17:34 -0400 (Fri, 26 Mar 2010)
New Revision: 2173
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryServiceImpl.java
Log:
EXOJCR-616 : The remove repository container from repositoryContainers map when repository container start fail.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryServiceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryServiceImpl.java 2010-03-26 14:57:09 UTC (rev 2172)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryServiceImpl.java 2010-03-26 15:17:34 UTC (rev 2173)
@@ -143,15 +143,28 @@
public void createRepository(RepositoryEntry rEntry) throws RepositoryConfigurationException, RepositoryException
{
if (repositoryContainers.containsKey(rEntry.getName()))
+ {
throw new RepositoryConfigurationException("Repository container " + rEntry.getName() + " already started");
+ }
RepositoryContainer repositoryContainer = new RepositoryContainer(parentContainer, rEntry);
// Storing and starting the repository container under
// key=repository_name
- repositoryContainers.put(rEntry.getName(), repositoryContainer);
- managerStartChanges.registerListeners(repositoryContainer);
- repositoryContainer.start();
+ try
+ {
+ repositoryContainers.put(rEntry.getName(), repositoryContainer);
+ managerStartChanges.registerListeners(repositoryContainer);
+ repositoryContainer.start();
+ }
+ catch (Throwable t)
+ {
+ //TODO will be implemented unregistration in managerStartChanges
+ //managerStartChanges.removeListeners(repositoryContainer);
+ repositoryContainers.remove(rEntry.getName());
+
+ throw new RepositoryConfigurationException("Repository conatainer " + rEntry.getName() + " was not started.", t);
+ }
if (!config.getRepositoryConfigurations().contains(rEntry))
{
More information about the exo-jcr-commits
mailing list