You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2018/02/28 18:37:00 UTC

[jira] [Commented] (GEODE-4672) Geode fails to start with JDK 9 if validate-serializable-objects is set

    [ https://issues.apache.org/jira/browse/GEODE-4672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16380804#comment-16380804 ] 

ASF subversion and git services commented on GEODE-4672:
--------------------------------------------------------

Commit eccd68974317c6f1d7d7fb27c115282cdab13f2f in geode's branch refs/heads/feature/GEODE-4672 from [~bschuchardt]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=eccd689 ]

GEODE-4672 Geode fails to start with JDK 9 if validate-serializable-objects is set

The ObjectInputFilter wrapper now uses reflection and a dynamic
proxy to interact with the serialization filter classes.  A dynamic
proxy is needed since we have to implement a method specified in
a class whose package has changed in the JDK.  The logic of the filter
has not been changed.

I also replaced a couple of recently added white-list wildcards with specific
classes and added a javadoc for the whitelist in InternalDataSerializer.
I opened a new JIRA ticket concerning another wildcard that was recently
added for the JDBC connector and left a TODO in place for this.


> Geode fails to start with JDK 9 if validate-serializable-objects is set 
> ------------------------------------------------------------------------
>
>                 Key: GEODE-4672
>                 URL: https://issues.apache.org/jira/browse/GEODE-4672
>             Project: Geode
>          Issue Type: Sub-task
>          Components: serialization
>            Reporter: Dan Smith
>            Priority: Major
>
> If the validate-serializable-objects property is set, Geode fails to start with the below exception. This is problematic for running the geode tests with JDK 9 because our tests set this property
> {noformat}
> java.lang.RuntimeException: Unable to launch dunit VMs
> 	at org.apache.geode.test.dunit.standalone.DUnitLauncher.launchIfNeeded(DUnitLauncher.java:162)
> 	at org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase.initializeDistributedTestCase(JUnit4DistributedTestCase.java:128)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> 	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.lang.RuntimeException: Failed to start locator
> 	at org.apache.geode.test.dunit.standalone.DUnitLauncher.startLocator(DUnitLauncher.java:331)
> 	at org.apache.geode.test.dunit.standalone.DUnitLauncher.launch(DUnitLauncher.java:241)
> 	at org.apache.geode.test.dunit.standalone.DUnitLauncher.launchIfNeeded(DUnitLauncher.java:160)
> 	... 15 more
> Caused by: org.apache.geode.GemFireConfigException: A serialization filter has been specified but this version of Java does not support serialization filters - sun.misc.ObjectInputFilter is not available
> 	at org.apache.geode.internal.InternalDataSerializer.initialize(InternalDataSerializer.java:235)
> 	at org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:691)
> 	at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:340)
> 	at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:326)
> 	at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:320)
> 	at org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:211)
> 	at org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:634)
> 	at org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:309)
> 	at org.apache.geode.distributed.Locator.startLocator(Locator.java:253)
> 	at org.apache.geode.distributed.Locator.startLocatorAndDS(Locator.java:140)
> 	at org.apache.geode.test.dunit.standalone.DUnitLauncher$2.call(DUnitLauncher.java:320)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)