Issue 1544: Non-existing repository.ownerGroup crashes on startup
Status:  Released
Owner: ----
Closed:  Feb 2013
Project Member Reported by choro...@wikimedia.org, Aug 30, 2012
Affected Version: 2.4.2, 2.5

What steps will reproduce the problem?
1. Configure repository.ownerGroup to a non-existing group
2. Try to start Gerrit

What is the expected output? What do you see instead?
Ideally, Gerrit could just fall back to Administrators here rather than failing to start entirely with an [INFO] or [WARNING] in the log about it.

Please provide any additional information below.
Stack trace from the failed start:

[2012-08-30 17:13:03,755] ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon
com.google.inject.CreationException: Guice creation errors:

1) Error injecting constructor, java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
  at com.google.gerrit.server.config.ProjectOwnerGroupsProvider.<init>(ProjectOwnerGroupsProvider.java:38)
  while locating com.google.gerrit.server.config.ProjectOwnerGroupsProvider
  at com.google.gerrit.server.project.AccessControlModule.configure(AccessControlModule.java:34)
  while locating java.util.Set<com.google.gerrit.reviewdb.client.AccountGroup$UUID> annotated with interface com.google.gerrit.server.config.ProjectOwnerGroups

1 error
	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:183)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:217)
	at com.google.gerrit.pgm.Daemon.createSysInjector(Daemon.java:229)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:142)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:67)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:167)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:91)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:49)
	at Main.main(Main.java:25)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(ArrayList.java:571)
	at java.util.ArrayList.get(ArrayList.java:349)
	at com.google.gerrit.server.config.ConfigUtil.groupsFor(ConfigUtil.java:345)
	at com.google.gerrit.server.config.ConfigUtil.groupsFor(ConfigUtil.java:379)
	at com.google.gerrit.server.config.GroupSetProvider.<init>(GroupSetProvider.java:43)
	at com.google.gerrit.server.config.ProjectOwnerGroupsProvider.<init>(ProjectOwnerGroupsProvider.java:38)
	at com.google.gerrit.server.config.ProjectOwnerGroupsProvider$$FastClassByGuice$$5e087c5d.newInstance(<generated>)
	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:53)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
	... 13 more
Sep 4, 2012
Project Member #1 choro...@wikimedia.org
Actually, I *think* this has already been fixed for 2.5. If someone could confirm I'll go ahead and close this.
Feb 25, 2013
Project Member #2 choro...@wikimedia.org
(No comment was entered for this change.)
Status: Released
Mar 6, 2013
#3 leand...@motorola.com
Is there any workaround for this issue?

Mar 6, 2013
Project Member #4 choro...@wikimedia.org
Upgrade to 2.5.