Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-8285

Serializables Sanctioning Prescribes Wrong Destination Path

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.14.0
    • tools

    Description

      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:

      ±  |feature/GEODE-8240-version-ordinal-type → Bill {3} ✓| → ./gradlew :geode-core:integrationTest --tests=AnalyzeCoreSerializablesJUnitTest
      

      and it output:

      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.
      

      so ostensibly I should:

      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
      

      But in fact the destination is wrong! Notice that it is a .../build/... directory?!?

      What I really needed was:

      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
      

      The prefix on the second path was:

      /Users/bburcham/Projects/geode/geode-core/build/resources
      

      but needed to be:

      /Users/bburcham/Projects/geode/geode-core/src/integrationTest/resources
      

      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:

          System.out.println("hi!");
      

      And then run:

      $ ./gradlew :geode-core:integrationTest --tests=AnalyzeCoreSerializablesJUnitTest
      

      You'll see the an advice block like the one I provided above and you'll see the incorrect destination directory.

      Attachments

        Issue Links

          Activity

            People

              louisjacome@gmail.com Louis R. Jacome
              burcham Bill Burcham
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: