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))
{
Show replies by date