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/03/02 19:24: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=16384024#comment-16384024 ] 

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

Commit 94ded7f3561a9ec4848843e3841d593fcd4d77d9 in geode's branch refs/heads/develop from [~bschuchardt]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=94ded7f ]

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.

This closes #1526


> 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
>              Labels: pull-request-available
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> 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)