+1 to getting the source build fix into 1.10.

-Dan

On Fri, Sep 6, 2019 at 5:58 PM Owen Nichols <onich...@pivotal.io> wrote:

> +1 for catching the correct grgit exception so Geode can compile from
> src.tgz distribution.  I might have gone further and just changed it to
> catch Exception, but it looks like the GrGit project has been stable for
> the last 2 years <
> https://github.com/ajoberstar/grgit/blob/master/grgit-core/src/main/groovy/org/ajoberstar/grgit/operation/OpenOp.groovy>
> on throwing IllegalStateException, so this fix should be solid.  I tested
> locally and confirmed it solves the problem.
>
> > On Sep 6, 2019, at 2:24 PM, Robert Houghton <rhough...@pivotal.io>
> wrote:
> >
> > +1  to bringing the build-from-source name to 1.10
> > -1 to RC1 until then
> >
> > On Fri, Sep 6, 2019, 14:21 Owen Nichols <onich...@pivotal.io> wrote:
> >
> >> Hi Anthony, thank you for bringing your concern.
> >>
> >> If there is consensus from the Geode community that your proposed fix
> >> satisfies the “critical fixes” rule, I will be happy to bring it to the
> >> release/1.10.0 release branch.
> >>
> >> Regards
> >> Dick & Owen
> >>
> >>> On Sep 6, 2019, at 2:18 PM, Anthony Baker <aba...@pivotal.io> wrote:
> >>>
> >>> Please pull aaa1378472ce0a8a05e0afabfdfc874e14fe13e6 into the release
> >> branch to fix the build problem.
> >>>
> >>> Anthony
> >>>
> >>>
> >>>> On Sep 6, 2019, at 11:29 AM, Dick Cavender <dcaven...@pivotal.io>
> >> wrote:
> >>>>
> >>>> The 1.10.0 voting has been extended until Monday, September 9th at
> 3pm.
> >>>>
> >>>> To all- please update your 1.10.0 vote if/when your issue(s) have been
> >>>> resolved. There are still no -1 votes at this time.
> >>>>
> >>>> On Fri, Sep 6, 2019 at 9:32 AM Nabarun Nag <n...@pivotal.io> wrote:
> >>>>
> >>>>> Hi Anthony,
> >>>>>
> >>>>> I had faced this issue in the current develop too. One way to get
> >> around it
> >>>>> is to run ./gradlew spotlessApply independently before the build.
> >>>>>
> >>>>> Regards
> >>>>> Naba
> >>>>>
> >>>>>
> >>>>> On Fri, Sep 6, 2019 at 8:53 AM Anthony Baker <aba...@pivotal.io>
> >> wrote:
> >>>>>
> >>>>>> This seems to be a simple change to catch IllegalStateException
> >> instead
> >>>>> of
> >>>>>> IllegalArgumentException in build.gradle.
> >>>>>>
> >>>>>> But I’m also getting a ton of spotless errors like:
> >>>>>>
> >>>>>>> Task :geode-cq:spotlessJava FAILED
> >>>>>> Step 'removeUnusedImports' found problem in
> >>>>>>
> >>>>>
> >>
> 'geode-cq/src/test/java/org/apache/geode/cache/query/internal/cq/CqServiceUnitTest.java':
> >>>>>> null
> >>>>>> java.lang.reflect.InvocationTargetException
> >>>>>>      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
> >>>>>>
> >>>>>
> >>
> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
> >>>>>>      at
> >>>>> com.diffplug.spotless.FormatterFunc.apply(FormatterFunc.java:31)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
> >>>>>>      at
> >>>>>>
> >> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
> >>>>>>      at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
> >>>>>>      at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
> >>>>>>      at
> >>>>>>
> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:297)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:238)
> >>>>>>      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.reflect.JavaMethod.invoke(JavaMethod.java:103)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
> >>>>>>      at java.util.Optional.map(Optional.java:215)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
> >>>>>>      at
> >>>>>>
> >> org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
> >>>>>>      at
> >>>>>>
> >> org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
> >>>>>>      at java.util.Optional.map(Optional.java:215)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:62)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
> >>>>>>      at java.lang.Thread.run(Thread.java:748)
> >>>>>> Caused by: java.lang.NoClassDefFoundError:
> >>>>>> org/openjdk/tools/javac/main/Option$ArgKind
> >>>>>>      at org.openjdk.tools.javac.main.Option.<init>(Option.java:971)
> >>>>>>      at org.openjdk.tools.javac.main.Option.<clinit>(Option.java:87)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:210)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:204)
> >>>>>>      ... 108 more
> >>>>>> Caused by: java.lang.ClassNotFoundException:
> >>>>>> org.openjdk.tools.javac.main.Option$ArgKind
> >>>>>>      at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
> >>>>>>      at
> >>>>>>
> >>>>>
> >>
> com.diffplug.spotless.FeatureClassLoader.findClass(FeatureClassLoader.java:74)
> >>>>>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> >>>>>>      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> >>>>>>      ... 112 more
> >>>>>>
> >>>>>>
> >>>>>>> On Sep 6, 2019, at 8:44 AM, Anthony Baker <aba...@pivotal.io>
> wrote:
> >>>>>>>
> >>>>>>> I ran into a problem while checking the release candidate.  When I
> >> try
> >>>>>> to build from source I get this error:
> >>>>>>>
> >>>>>>> A problem occurred evaluating project ':geode-core'.
> >>>>>>>> Could not create task ':writeBuildInfo'.
> >>>>>>>> No .git directory found!
> >>>>>>>
> >>>>>>> The .buildinfo file looks correct, but the gradle scripts that use
> >> the
> >>>>>> git plugin aren’t catch that exception like they used to do (works
> on
> >>>>>> 1.9.1).
> >>>>>>>
> >>>>>>> Since the source archive is the official release and I can’t build
> >> it,
> >>>>>> I”m voting -1.  I would change my vote if we can fix this.
> >>>>>>>
> >>>>>>> Anthony
> >>>>>>>
> >>>>>>>
> >>>>>>>> On Sep 6, 2019, at 8:19 AM, Anthony Baker <aba...@pivotal.io>
> >> wrote:
> >>>>>>>>
> >>>>>>>> I think we should extend the vote in order to understand this
> issue
> >>>>>> better.
> >>>>>>>>
> >>>>>>>> Anthony
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> On Sep 6, 2019, at 12:41 AM, Ivan Godwin <igod...@pivotal.io>
> >> wrote:
> >>>>>>>>>
> >>>>>>>>> Hello,
> >>>>>>>>>
> >>>>>>>>> I don't know that this will be cause to hold anything up, but
> >>>>>> geode-native
> >>>>>>>>> has two integration tests failing when trying to perform
> >>>>>> Region::remove().
> >>>>>>>>> This is the case for all platforms supported by native client.
> The
> >>>>> two
> >>>>>>>>> tests are testThinClientCallbackArg and
> >>>>>>>>> testThinClientListenerCallbackArgTest.
> >>>>>>>>>
> >>>>>>>>> Here's the stacktrace, and I will continue investigating in the
> >>>>>> morning.
> >>>>>>>>>
> >>>>>>>>> Region::remove: An exception (java.lang.ClassCastException:
> >>>>>>>>> java.lang.Byte cannot be cast to org.apache.geode.cache.Operation
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.BaseCommand.getOperation(BaseCommand.java:1466)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.command.Destroy65.cmdExecute(Destroy65.java:114)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:183)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMessage(ServerConnection.java:848)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:72)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1212)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.lambda$initializeServerConnectionThreadPool$3(AcceptorImpl.java:666)
> >>>>>>>>>
> >>>>>>>>>  at
> >>>>>>
> >>>>>
> >>
> org.apache.geode.internal.logging.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:121)
> >>>>>>>>>
> >>>>>>>>>  at java.lang.Thread.run(Thread.java:748)
> >>>>>>>>>
> >>>>>>>>> ) happened at remote server.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Thu, Sep 5, 2019 at 9:00 PM Nabarun Nag <n...@pivotal.io>
> >> wrote:
> >>>>>>>>>
> >>>>>>>>>> Thank you Dan for the explanation.
> >>>>>>>>>>
> >>>>>>>>>> Regards
> >>>>>>>>>> Naba
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On Thu, Sep 5, 2019 at 4:34 PM Dan Smith <dsm...@pivotal.io>
> >> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Hi Naba,
> >>>>>>>>>>>
> >>>>>>>>>>> This sanctioned-serializable stuff is not an issue.
> >>>>>>>>>>>
> >>>>>>>>>>> When you removed those files from
> >>>>>> sanctioned-geode-core-serializables,
> >>>>>>>>>> they
> >>>>>>>>>>> get rejected by the serialization filter. Look at the error
> >> message
> >>>>>> you
> >>>>>>>>>> see
> >>>>>>>>>>> when you remove them - it is failing to serialize a class that
> >> has
> >>>>> a
> >>>>>>>>>>> *nested* EvictionAttributes.
> >>>>>>>>>>>
> >>>>>>>>>>> Those classes need to be in the sanctioned file, if they are
> >>>>>> embedded in
> >>>>>>>>>>> another serialized object. They are probably not showing up in
> >> the
> >>>>>>>>>>> actualSerializables file because they are DataSerializable.
> >>>>>>>>>>>
> >>>>>>>>>>> -Dan
> >>>>>>>>>>>
> >>>>>>>>>>> On Thu, Sep 5, 2019 at 3:49 PM Kirk Lund <kl...@apache.org>
> >> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Ah, ok. I think I see what you're asking about. I don't have
> an
> >>>>>> answer,
> >>>>>>>>>>> but
> >>>>>>>>>>>> someone else such as Bruce could explain it.
> >>>>>>>>>>>>
> >>>>>>>>>>>> <klund@Kirks-MacBook-Pro-2>/Users/klund/dev/geode3 [610]$
> diff
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>
> >>>>>
> >>
> geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
> >>>>>>>>>>>> geode-core/build/integrationTest/actualSerializables.dat
> >>>>>>>>>>>> 69d68
> >>>>>>>>>>>> < org/apache/geode/cache/EvictionAttributes,false
> >>>>>>>>>>>> 71d69
> >>>>>>>>>>>> < org/apache/geode/cache/ExpirationAttributes,false
> >>>>>>>>>>>> 79d76
> >>>>>>>>>>>> < org/apache/geode/cache/MembershipAttributes,false
> >>>>>>>>>>>> 99d95
> >>>>>>>>>>>> < org/apache/geode/cache/SubscriptionAttributes,false
> >>>>>>>>>>>> 262d257
> >>>>>>>>>>>> < org/apache/geode/internal/cache/EvictionAttributesImpl,false
> >>>>>>>>>>>> 276d270
> >>>>>>>>>>>> <
> org/apache/geode/internal/cache/PartitionAttributesImpl,false
> >>>>>>>>>>>> 517d510
> >>>>>>>>>>>> <
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>
> >>>>>
> >>
> org/apache/geode/management/internal/cli/functions/CacheRealizationFunction,false
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Thu, Sep 5, 2019 at 3:44 PM Nabarun Nag <n...@pivotal.io>
> >>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Hi Kirk,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> The test does not fail.
> >>>>>>>>>>>>> When you run the test (testSerializable) it creates a list of
> >>>>>>>>>>>> serializable
> >>>>>>>>>>>>> classes and puts it in the actualSerializables.dat file and
> >> them
> >>>>>>>>>>> compares
> >>>>>>>>>>>>> if all the classes listed are present in the
> >>>>>>>>>>>>> sanctioned-geode-core-serializables.txt.
> >>>>>>>>>>>>> If we did not change any serializabale classes then these two
> >>>>> files
> >>>>>>>>>>>>> remain the same. However now in this release, there are
> classes
> >>>>> in
> >>>>>>>>>>>>> sanctioned-geode-core-serializables.txt which are not present
> >> in
> >>>>>>>>>>>>> actualSerializables.dat.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I wanted to know why are those classes are not listed in
> >>>>>>>>>>>>> actualSerializables.dat
> >>>>>>>>>>>>> and if you remove them from
> >>>>> sanctioned-geode-core-serializables.txt
> >>>>>>>>>>>>> testSerializables passes but
> >>>>>>>>>> testSanctionedClassesExistAndDoDeserialize
> >>>>>>>>>>>>> fails.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Regards
> >>>>>>>>>>>>> Naba
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On Thu, Sep 5, 2019 at 3:21 PM Kirk Lund <kl...@apache.org>
> >>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> Hi Naba,
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I failed to reproduce the problem you reported on Mac OS,
> and
> >>>>> our
> >>>>>>>>>>>>> pipeline
> >>>>>>>>>>>>>> didn't fail this test. What OS are you running
> integrationTest
> >>>>> on?
> >>>>>>>>>>>> Here's
> >>>>>>>>>>>>>> the steps I followed:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> 1) checkout tag rel/v1.10.0.RC1
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> $ git checkout tags/rel/v1.10.0.RC1
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> 2) clean, then build with unit tests
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> $ ./gradlew clean
> >>>>>>>>>>>>>> $ ./gradlew build
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> 3) run AnalyzeSerializablesJUnitTest
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> $ ./gradlew geode-core:integrationTest --tests
> >>>>>>>>>>>>>> AnalyzeSerializablesJUnitTest
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> The test passes for me and there are no modified files in
> the
> >>>>> repo
> >>>>>>>>>>>> after
> >>>>>>>>>>>>>> running the test. Did the test actually fail for you? If so,
> >>>>>> please
> >>>>>>>>>>>> share
> >>>>>>>>>>>>>> the call stack. If it is still failing for you I recommend
> >>>>> getting
> >>>>>>>>>> a
> >>>>>>>>>>>>> fresh
> >>>>>>>>>>>>>> clone of geode and then repeat the above steps.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>>> Kirk
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> On Thu, Sep 5, 2019 at 10:16 AM Nabarun Nag <
> n...@apache.org>
> >>>>>>>>>> wrote:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Hello,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I was able to notice that after running the
> testSerializable
> >>>>>>>>>> JUnit
> >>>>>>>>>>>>> test,
> >>>>>>>>>>>>>>> the generated actualSerializables.dat and the
> >>>>>>>>>>>>>>> sanctioned-geode-core-serializables.txt do not match. There
> >> are
> >>>>>>>>>>>> certain
> >>>>>>>>>>>>>>> classes mentioned in
> sanctioned-geode-core-serializables.txt
> >>>>> that
> >>>>>>>>>>> are
> >>>>>>>>>>>>> not
> >>>>>>>>>>>>>>> present in actualSerializables.dat file
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> - EvictionAttributes
> >>>>>>>>>>>>>>> - ExpirationAttributes
> >>>>>>>>>>>>>>> - MembershipAttributes
> >>>>>>>>>>>>>>> - SubscriptionAttributes
> >>>>>>>>>>>>>>> - EvictionAttributesImpl
> >>>>>>>>>>>>>>> - PartitionAttributesImpl
> >>>>>>>>>>>>>>> - CacheRealizaitonFunction
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> But removing them causes
> >>>>>>>>>>> testSanctionedClassesExistAndDoDeserialize()
> >>>>>>>>>>>>>> test
> >>>>>>>>>>>>>>> to fail.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I am not sure if this is harmless or has some adverse
> >>>>>>>>>>> consequences. I
> >>>>>>>>>>>>>> would
> >>>>>>>>>>>>>>> like to know why it's designed this way.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Regards
> >>>>>>>>>>>>>>> Nabarun Nag
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Wed, Sep 4, 2019 at 4:14 PM Dick Cavender <
> >>>>>>>>>> dcaven...@pivotal.io
> >>>>>>>>>>>>
> >>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> We manually signed the apache-geode-1.10.0-src.tgz dist
> and
> >>>>>>>>>>>> uploaded
> >>>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>> asc file.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Unclear on why this is no longer automatically generated
> as
> >>>>>>>>>> part
> >>>>>>>>>>> of
> >>>>>>>>>>>>> the
> >>>>>>>>>>>>>>>> build step as 1.9.1 it was generated correctly. We have
> >> worked
> >>>>>>>>>>>> around
> >>>>>>>>>>>>>> it
> >>>>>>>>>>>>>>> in
> >>>>>>>>>>>>>>>> the prepare_rc.sh adding a check for it going forward and
> >>>>>>>>>>>> generating
> >>>>>>>>>>>>> it
> >>>>>>>>>>>>>>> if
> >>>>>>>>>>>>>>>> missing.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On Wed, Sep 4, 2019 at 3:32 PM Dan Smith <
> dsm...@pivotal.io
> >>>
> >>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> I don't see a .asc signature file for
> >>>>>>>>>>>> apache-geode-1.10.0-src.tgz.
> >>>>>>>>>>>>>> Did
> >>>>>>>>>>>>>>> we
> >>>>>>>>>>>>>>>>> miss that signature file somehow?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> -Dan
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On Wed, Sep 4, 2019 at 9:33 AM Dick Cavender <
> >>>>>>>>>>>> dcaven...@pivotal.io
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> The apache-geode-native-1.10.0-src.tar.gz dist has been
> >>>>>>>>>> fixed
> >>>>>>>>>>>> in
> >>>>>>>>>>>>>> RC1
> >>>>>>>>>>>>>>>> and
> >>>>>>>>>>>>>>>>>> can be found at:
> >>>>>>>>>>>>>>>>> https://dist.apache.org/repos/dist/dev/geode/1.10.0.RC1/
> >>>>>>>>>>>>>>>>>> Please continue to review RC1 as a viable 1.10 RC. The
> >>>>>>>>>> voting
> >>>>>>>>>>>>>>> deadline
> >>>>>>>>>>>>>>>>>> remains 3PM PST Thursday Sept 5th.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> -Dick
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On Tue, Sep 3, 2019 at 3:09 PM Dan Smith <
> >>>>>>>>>> dsm...@pivotal.io>
> >>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Everything but the missing native source looks good. If
> >>>>>>>>>> we
> >>>>>>>>>>>> can
> >>>>>>>>>>>>>> fix
> >>>>>>>>>>>>>>>>> that,
> >>>>>>>>>>>>>>>>>>> I'll +1 this RC.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> -Dan
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> On Tue, Sep 3, 2019 at 2:26 PM Dan Smith <
> >>>>>>>>>>> dsm...@pivotal.io>
> >>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> -1 It looks like this RC is also missing the native
> >>>>>>>>>>> source,
> >>>>>>>>>>>>>> just
> >>>>>>>>>>>>>>>> like
> >>>>>>>>>>>>>>>>>>>> 1.9.1.RC3. The tar file is there, but it is empty.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> -Dan
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On Fri, Aug 30, 2019 at 2:06 PM Dick Cavender <
> >>>>>>>>>>>>>>>> dcaven...@pivotal.io>
> >>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Hello Geode dev community,
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> This is a release candidate for Apache Geode, version
> >>>>>>>>>>>>>>> 1.10.0.RC1.
> >>>>>>>>>>>>>>>>>>>>> Thanks to all the community members for their
> >>>>>>>>>>>> contributions
> >>>>>>>>>>>>> to
> >>>>>>>>>>>>>>>> this
> >>>>>>>>>>>>>>>>>>>>> release!
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Please do a review and give your feedback. The
> >>>>>>>>>> deadline
> >>>>>>>>>>> is
> >>>>>>>>>>>>> 3PM
> >>>>>>>>>>>>>>> PST
> >>>>>>>>>>>>>>>>>>>>> Thursday
> >>>>>>>>>>>>>>>>>>>>> Sept 5th.
> >>>>>>>>>>>>>>>>>>>>> Release notes can be found at:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>
> >>>>>
> >>
> https://cwiki.apache.org/confluence/display/GEODE/Release+Notes#ReleaseNotes-1.10.0
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Please note that we are voting upon the source tags:
> >>>>>>>>>>>>>>>> rel/v1.10.0.RC1
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Apache Geode:
> >>>>>>>>>>>>>>>>>>>>> https://github.com/apache/geode/tree/rel/v1.10.0.RC1
> >>>>>>>>>>>>>>>>>>>>> Apache Geode examples:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> https://github.com/apache/geode-examples/tree/rel/v1.10.0.RC1
> >>>>>>>>>>>>>>>>>>>>> Apache Geode native:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>> https://github.com/apache/geode-native/tree/rel/v1.10.0.RC1
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Source and binary files:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>> https://dist.apache.org/repos/dist/dev/geode/1.10.0.RC1/
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Maven staging repo:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>
> >> https://repository.apache.org/content/repositories/orgapachegeode-1058
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Geode's KEYS file containing PGP keys we use to sign
> >>>>>>>>>> the
> >>>>>>>>>>>>>>> release:
> >>>>>>>>>>>>>>>>>>>>> https://github.com/apache/geode/blob/develop/KEYS
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> PS: Command to run geode-examples: ./gradlew
> >>>>>>>>>>>>>> -PgeodeReleaseUrl=
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>> https://dist.apache.org/repos/dist/dev/geode/1.10.0.RC1
> >>>>>>>>>>>>>>>>>>>>> -PgeodeRepositoryUrl=
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>
> >> https://repository.apache.org/content/repositories/orgapachegeode-1058
> >>>>>>>>>>>>>>>>>>>>> build runAll
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Regards
> >>>>>>>>>>>>>>>>>>>>> Dick Cavender
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>
> >>
> >>
>
>

Reply via email to