Oracle NoSQL: RMI Registry Filter Failure in Java SE 8u121 (Doc ID 2227233.1)

Last updated on JANUARY 28, 2017

Applies to:

Oracle NoSQL Database - Version 12.1.4.0.5 and later
Information in this document applies to any platform.

Symptoms

Java SE Development Kit 8, Update 121 (JDK 8u121) introduces new behavior that can cause failures when running Oracle NoSQL Database in a secure configuration. The failures will produce stack traces like the following:

Jan 25, 2017 11:15:45 AM java.io.ObjectInputStream filterCheck
INFO: ObjectInputFilter REJECTED: class java.lang.Enum, array length: -1, nRefs: 14, depth: 4, bytes: 768, ex: n/a
KVLite: exception in start: java.rmi.RemoteException: Can't rebind snaService at localhost:5000 csf: <SSLClientSocketFactory name=$|sna|main id=1690670528 connectMs=0 readMs=0 kvStoreName=null clientUse=USER> ssf: <SSLServerSocketFactory backlog=1024 port range=0,0 ssl control = oracle.kv.impl.security.ssl.SSLControl@5836ad63>; nested exception is:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: filter status: REJECTED
at oracle.kv.impl.util.registry.RegistryUtils.rebind(RegistryUtils.java:853)
at oracle.kv.impl.sna.StorageNodeAgent.bindUnregisteredSNA(StorageNodeAgent.java:974)
at oracle.kv.impl.sna.StorageNodeAgent.startupUnregistered(StorageNodeAgent.java:793)
at oracle.kv.impl.sna.StorageNodeAgent.start(StorageNodeAgent.java:624)
at oracle.kv.impl.sna.StorageNodeAgentImpl.start(StorageNodeAgentImpl.java:133)
at oracle.kv.util.kvlite.KVLite.startSNA(KVLite.java:298)
at oracle.kv.util.kvlite.KVLite.start(KVLite.java:524)
at oracle.kv.util.kvlite.KVLite.start(KVLite.java:513)
at oracle.kv.util.kvlite.KVLite.main(KVLite.java:647)
at oracle.kv.impl.util.KVStoreMain$1.run(KVStoreMain.java:190)
at oracle.kv.impl.util.KVStoreMain.main(KVStoreMain.java:477)
Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: filter status: REJECTED
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:460)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:379)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at oracle.kv.impl.util.registry.RegistryUtils$ExceptionWrappingRegistry.rebind(RegistryUtils.java:1339)
at oracle.kv.impl.util.registry.RegistryUtils.exportAndRebind(RegistryUtils.java:1184)
at oracle.kv.impl.util.registry.RegistryUtils.rebind(RegistryUtils.java:849)
... 10 more
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: filter status: REJECTED
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:450)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.InvalidClassException: filter status: REJECTED
at java.io.ObjectInputStream.filterCheck(ObjectInputStream.java:1244)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1829)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713)
at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1938)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1532)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at sun.rmi.transport.tcp.TCPEndpoint.read(TCPEndpoint.java:555)
at sun.rmi.transport.LiveRef.read(LiveRef.java:292)
at sun.rmi.server.UnicastRef2.readExternal(UnicastRef2.java:78)
at java.rmi.server.RemoteObject.readObject(RemoteObject.java:455)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2122)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
... 15 more

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms