My Oracle Support Banner

Unable To Restart a SSL Proxy Service Using Jconsole Due to Error "java.security.UnrecoverableKeyException: Password must not be null" (Doc ID 1922423.1)

Last updated on NOVEMBER 03, 2016

Applies to:

Oracle Coherence - Version 12.1.2.0.2 to 12.1.2.0.2 [Release 12c]
Information in this document applies to any platform.
Fixed in 12.1.3.x and 12.1.2.0.3

Symptoms

When jconsole is used to restart a Proxy node, which is configured to use SSL:

<identity-manager>
   <algorithm>SunX509</algorithm>
   <key-store>
     <url system-property="javax.net.ssl.keyStore.url" />
     <password system-property="javax.net.ssl.keyStorePassword"/>
     <type>JKS</type>
   </key-store>
   <password system-property="javax.net.ssl.keyStorePassword"/>
</identity-manager>

the following error is reported:

2014-08-22 11:01:29.457/30.294 Oracle Coherence GE 12.1.2.0.1 <D5> (thread=Proxy:ExtendTcpProxyService:TcpAcceptor, member=1): Stopped: TcpAcceptor{Name=Proxy:ExtendTcpProxyService:TcpAcceptor, State=(SERVICE_STOPPED), ThreadCount=0, Codec=Codec(Format=POF), Serializer=com.tangosol.io.DefaultSerializer, PingInterval=0, PingTimeout=0, RequestTimeout=0, SocketProvider=SSLSocketProvider(javax.net.ssl.SSLContext@1bde392), LocalAddress=WrapperSocketAddressProvider{Providers=[[melkor/10.163.211.64:9099]]}, SocketOptions{LingerTimeout=0, KeepAliveEnabled=true,  TcpDelayEnabled=false}, ListenBacklog=0, BufferPoolIn=BufferPool(BufferSize=2KB, BufferType=DIRECT, Capacity=Unlimited), BufferPoolOut=BufferPool(BufferSize=2KB, BufferType=DIRECT, Capacity=Unlimited)}

2014-08-22 11:01:29.794/30.631 Oracle Coherence GE 12.1.2.0.1 <Error> (thread=ServiceMonitor, member=1): Error while configuring service "ExtendTcpProxyService": java.lang.IllegalArgumentException: Invalid  configuration: <ssl>
<protocol>TLS</protocol>
<identity-manager>
<algorithm>SunX509</algorithm>
<key-store>
<url>file:server.jks</url>
<password/>
<type>JKS</type>
</key-store>
<password/>
</identity-manager>
<socket-provider>tcp</socket-provider>
</ssl>
  at com.tangosol.internal.net.ssl.LegacyXmlSSLSocketProviderDependencies.applyConfig(LegacyXmlSSLSocketProviderDependencies.java:472)
  at com.tangosol.internal.net.ssl.LegacyXmlSSLSocketProviderDependencies.ensureConfigured(LegacyXmlSSLSocketProviderDependencies.java:158)
  at com.tangosol.internal.net.ssl.LegacyXmlSSLSocketProviderDependencies.getDelegateSocketProvider(LegacyXmlSSLSocketProviderDependencies.java:87)
  at com.tangosol.net.SocketProviderFactory.ensureSocketProvider(SocketProviderFactory.java:210)
  at com.tangosol.net.SocketProviderFactory.getSocketProvider(SocketProviderFactory.java:108)
  at com.tangosol.internal.net.service.peer.acceptor.LegacyXmlTcpAcceptorHelper.fromXml(LegacyXmlTcpAcceptorHelper.java:51)
  at com.tangosol.internal.net.service.peer.acceptor.LegacyXmlAcceptorHelper.createAcceptorDeps(LegacyXmlAcceptorHelper.java:94)
  at com.tangosol.internal.net.service.grid.LegacyXmlProxyServiceHelper.fromXml(LegacyXmlProxyServiceHelper.java:115)
  at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.ProxyService.configure(ProxyService.CDB:4)
  at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:20)
  at com.tangosol.coherence.component.util.SafeService.restartService(SafeService.CDB:28)
  at com.tangosol.coherence.component.util.SafeService.ensureRunningService(SafeService.CDB:23)
  at com.tangosol.coherence.component.util.SafeService.start(SafeService.CDB:14)
  at com.tangosol.net.ExtensibleConfigurableCacheFactory.startService(ExtensibleConfigurableCacheFactory.java:681)
  at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureService(ExtensibleConfigurableCacheFactory.java:599)
  at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureService(ExtensibleConfigurableCacheFactory.java:315)
  at com.tangosol.net.SimpleServiceMonitor.monitorServices(SimpleServiceMonitor.java:203)
  at com.tangosol.net.SimpleServiceMonitor$1.run(SimpleServiceMonitor.java:161)
  at java.lang.Thread.run(Thread.java:682)
Caused by: java.security.UnrecoverableKeyException: Password must not be null
  at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:107)
  at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:38)
  at java.security.KeyStore.getKey(KeyStore.java:761)
  at com.sun.net.ssl.internal.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:113)
  at com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:48)
  at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:239)
  at com.tangosol.internal.net.ssl.LegacyXmlSSLSocketProviderDependencies.applyConfig(LegacyXmlSSLSocketProviderDependencies.java:320)
... 18 more

In jconsole, the following error is reported in a popup window:

Problem invoking start : java.lang.IllegalArgumentException: Invalid configuration <ssl>

The error is reported regardless of whether the password is included in the configuration file, or provided as a system property value.

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.