You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Louis R. Jacome (Jira)" <ji...@apache.org> on 2020/06/24 22:29:00 UTC

[jira] [Resolved] (GEODE-8285) Serializables Sanctioning Prescribes Wrong Destination Path

     [ https://issues.apache.org/jira/browse/GEODE-8285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Louis R. Jacome resolved GEODE-8285.
------------------------------------
    Resolution: Fixed

[https://github.com/apache/geode/pull/5280]

 

The above pr corrects the error print message described in this issue as well as correctly creates test generated files in the build directory for tests run from both IntelliJ and gradlew.

> Serializables Sanctioning Prescribes Wrong Destination Path
> -----------------------------------------------------------
>
>                 Key: GEODE-8285
>                 URL: https://issues.apache.org/jira/browse/GEODE-8285
>             Project: Geode
>          Issue Type: Bug
>          Components: tools
>            Reporter: Bill Burcham
>            Assignee: Louis R. Jacome
>            Priority: Major
>              Labels: starter
>
> Serializable analysis classes derived from {{AnalyzeSerializablesJUnitTestBase}}, intend to inform the developer to copy a generated {{excludedClasses.txt}} file over a {{sanctionedDataSerializables.txt}} in a _resources_ directory. The paths can get long and complicated so it's nice that the analyzers provide the paths, ostensibly so that a developer can simply copy them into a {{cp}} line at the terminal.
> There is a problem with one of the paths, at least as generated by {{AnalyzeCoreSerializablesJUnitTest}}, but also, I suspect in all the classes derived from {{AnalyzeSerializablesJUnitTestBase}}. Here is an example of the output generated by the former…
> I ran:
> {noformat}
> ±  |feature/GEODE-8240-version-ordinal-type → Bill {3} ✓| → ./gradlew :geode-core:integrationTest --tests=AnalyzeCoreSerializablesJUnitTest
> {noformat}
> and it output:
> {noformat}
> If the class is not persisted or sent over the wire add it to the file 
> /Users/bburcham/Projects/geode/geode-core/build/resources/integrationTest/org/apache/geode/codeAnalysis/excludedClasses.txt
> Otherwise if this doesn't break backward compatibility, copy the file 
> /Users/bburcham/Projects/geode/geode-core/build/integrationTest/actualDataSerializables.dat to 
> /Users/bburcham/Projects/geode/geode-core/build/resources/integrationTest/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt.
> {noformat}
> so ostensibly I should:
> {noformat}
> cp /Users/bburcham/Projects/geode/geode-core/build/integrationTest/actualDataSerializables.dat /Users/bburcham/Projects/geode/geode-core/build/resources/integrationTest/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
> {noformat}
> But in fact the destination is wrong! Notice that it is a {{.../build/...}} directory?!?
> What I really needed was:
> {noformat}
> cp /Users/bburcham/Projects/geode/geode-core/build/integrationTest/actualDataSerializables.dat /Users/bburcham/Projects/geode/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
> {noformat}
> The prefix on the second path was:
> {noformat}
> /Users/bburcham/Projects/geode/geode-core/build/resources
> {noformat}
> but needed to be:
> {noformat}
> /Users/bburcham/Projects/geode/geode-core/src/integrationTest/resources
> {noformat}
> h2. Reproduction
> To reproduce this, modify some {{toData}} on some serializable class in the {{geode-core}} module e.g. {{RegionVersionVector}}, by adding some innocuous code like:
> {code}
>     System.out.println("hi!");
> {code}
> And then run:
> {noformat}
> $ ./gradlew :geode-core:integrationTest --tests=AnalyzeCoreSerializablesJUnitTest
> {noformat}
> You'll see the an advice block like the one I provided above and you'll see the incorrect destination directory.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)