kirklund commented on a change in pull request #6746:
URL: https://github.com/apache/geode/pull/6746#discussion_r696982498



##########
File path: 
geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/CacheXmlRule.java
##########
@@ -47,9 +46,9 @@
   private static final String BEFORE = "before";
   private static final String AFTER = "after";
 
-  private static final CacheXmlCreation DUMMY = mock(CacheXmlCreation.class);
+  private static final CacheXmlCreation DUMMY = new CacheXmlCreation(null, 
null);
   private static final AtomicReference<ICacheXmlCreation> DELEGATE = new 
AtomicReference<>(DUMMY);
-  private static final SerializableRunnableIF NO_OP = 
mock(SerializableRunnableIF.class);
+  private static final SerializableRunnableIF NO_OP = new 
DummySerializableRunnableIF();

Review comment:
       Ahhh, ok I know why it changed. The implementation ends up being a 
subclass generated by Mockito which then fails the serializables check because 
it's not sanctioned. I only added sanctioned support to geode-junit and 
geode-dunit to prevent needing to add Rules and similar test classes to the 
`serializable-object-filter` property for any dunit or integration tests. We 
could revisit this or do some fiddling to see if there's a way to easily 
sanction Mocks:
   ```
   org.apache.geode.codeAnalysis.AnalyzeDUnitSerializablesIntegrationTest > 
testSanctionedClassesExistAndDoDeserialize FAILED
       java.lang.AssertionError: I was unable to deserialize 
org.apache.geode.test.dunit.rules.CacheXmlRule
           at 
org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTestBase.serializeAndDeserializeSanctionedObject(AnalyzeSerializablesJUnitTestBase.java:319)
           at 
org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTestBase.testSanctionedClassesExistAndDoDeserialize(AnalyzeSerializablesJUnitTestBase.java:166)
           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 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
           at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
           at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
           at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
           at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
           at 
org.apache.geode.test.junit.rules.ClassAnalysisRule$1.evaluate(ClassAnalysisRule.java:75)
           at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
           at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
           at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
           at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
           at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
           at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
           at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
           at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
           at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
           at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
           at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
           at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
           at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
           at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
           at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
           at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
           at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
           at 
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
           at 
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
           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 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
           at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
           at 
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
           at 
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
           at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
           at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
           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 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
           at 
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
           at 
org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
           at 
org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
           at 
org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
           at 
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
           at 
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
           at 
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
           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.readOrdinaryObject(ObjectInputStream.java:1986)
               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.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 
org.apache.geode.internal.InternalDataSerializer.readSerializable(InternalDataSerializer.java:2695)
               at 
org.apache.geode.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:2639)
               at 
org.apache.geode.DataSerializer.readObject(DataSerializer.java:2864)
               at 
org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTestBase.deserializeObject(AnalyzeSerializablesJUnitTestBase.java:291)
               at 
org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTestBase.serializeAndDeserializeSanctionedObject(AnalyzeSerializablesJUnitTestBase.java:315)
               ... 55 more
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to