Added null check on AbstractSSLAwareChannelPipelineFactory part of james-protocols project, seems that enabledCipherSuites could be null
this.enabledCipherSuites = new String[enabledCipherSuites.length]; for (int i = 0; i < enabledCipherSuites.length; i++) { this.enabledCipherSuites[i] = new String(enabledCipherSuites[i]); } On Mon, Mar 7, 2011 at 1:30 PM, Larry Ruiz <lrd190...@gmail.com> wrote: > I built james from the source code and tried to run it, I got the following > exception > > jvm 1 | org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'smtpserver': Invocation of init method failed; > nested exception is java.lang.NullPointerException > jvm 1 | at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133) > jvm 1 | at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394) > jvm 1 | at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413) > jvm 1 | at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) > jvm 1 | at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) > jvm 1 | at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) > jvm 1 | at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) > jvm 1 | at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) > jvm 1 | at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) > jvm 1 | at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) > jvm 1 | at > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) > jvm 1 | at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) > jvm 1 | at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) > jvm 1 | at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) > jvm 1 | at > org.apache.james.container.spring.context.JamesServerApplicationContext.<init>(JamesServerApplicationContext.java:39) > jvm 1 | at org.apache.james.container.spring.Main.main(Main.java:39) > jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > jvm 1 | at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > jvm 1 | at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597) > jvm 1 | at > org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) > jvm 1 | at java.lang.Thread.run(Thread.java:662) > jvm 1 | Caused by: java.lang.NullPointerException > jvm 1 | at > org.apache.james.protocols.impl.AbstractSSLAwareChannelPipelineFactory.<init>(AbstractSSLAwareChannelPipelineFactory.java:49) > jvm 1 | at > org.apache.james.smtpserver.netty.SMTPServer$SMTPChannelPipelineFactory.<init>(SMTPServer.java:290) > jvm 1 | at > org.apache.james.smtpserver.netty.SMTPServer.createPipelineFactory(SMTPServer.java:282) > jvm 1 | at > org.apache.james.protocols.impl.AbstractAsyncServer.bind(AbstractAsyncServer.java:107) > jvm 1 | at > org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer.init(AbstractConfigurableAsyncServer.java:259) > jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > jvm 1 | at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > jvm 1 | at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597) > jvm 1 | at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340) > jvm 1 | at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293) > jvm 1 | at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130) > jvm 1 | ... 21 more > >
Index: impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java =================================================================== --- impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java (revision 1078731) +++ impl/src/main/java/org/apache/james/protocols/impl/AbstractSSLAwareChannelPipelineFactory.java (revision ) @@ -18,13 +18,13 @@ ****************************************************************/ package org.apache.james.protocols.impl; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLEngine; - import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.group.ChannelGroup; import org.jboss.netty.handler.ssl.SslHandler; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLEngine; + /** * Abstract base class for {@link ChannelPipeline} implementations which use TLS * @@ -46,11 +46,13 @@ // We need to copy the String array becuase of possible security issues. // See https://issues.apache.org/jira/browse/PROTOCOLS-18 + if (enabledCipherSuites != null) { - this.enabledCipherSuites = new String[enabledCipherSuites.length]; - for (int i = 0; i < enabledCipherSuites.length; i++) { - this.enabledCipherSuites[i] = new String(enabledCipherSuites[i]); - } - } + this.enabledCipherSuites = new String[enabledCipherSuites.length]; + for (int i = 0; i < enabledCipherSuites.length; i++) { + this.enabledCipherSuites[i] = new String(enabledCipherSuites[i]); + } + } + } @Override
--------------------------------------------------------------------- To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org