Issue 961: NPE with incorrect sendmail.from setup
Status:  Released
Owner: ----
Closed:  May 2011
Reported by dmitry.n...@gmail.com, May 19, 2011
Affected Version: 2.1.7-rc1

What steps will reproduce the problem?
1. put 'gerrit@machine' instead of 'Code Review <gerrit@machine>' in sendmail.from in gerrit.config
2. run gerrit start

What is the expected output? 
gerrit does not started, log contains message explaining the cause

What do you see instead?
following error:
[2011-05-19 15:10:51,562] ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon
com.google.inject.CreationException: Guice creation errors:

1) Error injecting constructor, java.lang.NullPointerException
  at com.google.gerrit.server.mail.FromAddressGeneratorProvider.<init>(FromAddressGeneratorProvider.java:38)
  while locating com.google.gerrit.server.mail.FromAddressGeneratorProvider
  while locating com.google.gerrit.server.mail.FromAddressGenerator
Caused by: java.lang.NullPointerException
	at com.google.gerrit.common.data.ParamertizedString.<init>(ParamertizedString.java:52)
	at com.google.gerrit.server.mail.FromAddressGeneratorProvider.<init>(FromAddressGeneratorProvider.java:55)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.google.inject.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:81)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
	at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
	at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
	at com.google.inject.Scopes$1$1.get(Scopes.java:54)
	at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
	at com.google.inject.BoundProviderFactory.get(BoundProviderFactory.java:56)
	at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
	at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
	at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
	at com.google.inject.Scopes$1$1.get(Scopes.java:54)
	at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
	at com.google.inject.InjectorBuilder$1.call(InjectorBuilder.java:200)
	at com.google.inject.InjectorBuilder$1.call(InjectorBuilder.java:194)
	at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
	at com.google.inject.InjectorBuilder.loadEagerSingletons(InjectorBuilder.java:194)
	at com.google.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:176)
	at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:113)
	at com.google.inject.InjectorImpl.createChildInjector(InjectorImpl.java:144)
	at com.google.gerrit.pgm.Daemon.createSysInjector(Daemon.java:208)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:129)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:76)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:155)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:89)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:47)
	at Main.main(Main.java:25)

2) Error injecting constructor, java.lang.NullPointerException
  at com.google.gerrit.server.mail.FromAddressGeneratorProvider.<init>(FromAddressGeneratorProvider.java:38)
  while locating com.google.gerrit.server.mail.FromAddressGeneratorProvider
Caused by: java.lang.NullPointerException
	at com.google.gerrit.common.data.ParamertizedString.<init>(ParamertizedString.java:52)
	at com.google.gerrit.server.mail.FromAddressGeneratorProvider.<init>(FromAddressGeneratorProvider.java:55)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.google.inject.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:81)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
	at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
	at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
	at com.google.inject.Scopes$1$1.get(Scopes.java:54)
	at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
	at com.google.inject.InjectorBuilder$1.call(InjectorBuilder.java:200)
	at com.google.inject.InjectorBuilder$1.call(InjectorBuilder.java:194)
	at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
	at com.google.inject.InjectorBuilder.loadEagerSingletons(InjectorBuilder.java:194)
	at com.google.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:176)
	at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:113)
	at com.google.inject.InjectorImpl.createChildInjector(InjectorImpl.java:144)
	at com.google.gerrit.pgm.Daemon.createSysInjector(Daemon.java:208)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:129)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:76)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:155)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:89)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:47)
	at Main.main(Main.java:25)

2 errors
	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:354)
	at com.google.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:179)
	at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:113)
	at com.google.inject.InjectorImpl.createChildInjector(InjectorImpl.java:144)
	at com.google.gerrit.pgm.Daemon.createSysInjector(Daemon.java:208)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:129)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:76)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:155)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:89)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:47)
	at Main.main(Main.java:25)

it is clear that error have to do with from field, but it should not probably be NPE.
May 19, 2011
Project Member #1 edwin.ke...@gmail.com
A fix was uploaded for code review:
https://review.source.android.com/23055
May 20, 2011
#2 sop@google.com
(No comment was entered for this change.)
Status: Submitted
Labels: FixedIn-2.1.7
May 31, 2011
#3 sop@google.com
(No comment was entered for this change.)
Status: Released