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

Reply via email to