Purpose

This page will describe the cases where the GUID is changing between two versions of J2EE source code analyzed.

Applicable in CAST Version


Release
Yes/No
8.3.x(tick)
Applicable RDBMS
RDBMS
Yes/No
CSS(tick)
Details
  1. After having identified the objects for which the GUID has changed, run the query from the page SQL Queries - CAST Knowledge Base - Queries on objects - How to get object GUID to get the object GUID of the current version :



  2. How to interpret the result for J2EE :
    As you can see in the above screenshot, the GUID is defined with :
    1. ID : 99, 104,102. These IDs are type of objects
    2. "?" character : it is a separator between objects defined in the GUID
    3. Name of objects

  3. Compare the GUIDS :


    In the above example, the GUID has changed.
    1. In the first GUID, one parameter type of the method named createOutputArray, is a Java Generic Interface.
    2. In the second GUID, the same parameter has type Java Interface

  4. Open the file of both version (current version and previous version), and compare if the definition of the object has changed. If the definition has changed, the change of GUID is expected.
    1. For the current example, the object is a Method named createOutputArray. This method is in the file s:/sources/mytkb/analyzed/cast/billandpaymentutil/src/com/tkb/supportp/billing/comme/accountssummary/pboprocessor.java. The path is defined in the Java GUID, just after "?620?".

  5. If the definition of the object is the same:
    1. Check the configuration of the analysis unit that has analyzed this file for both version. If the configuration has changed, it explains why the GUID has also changed. To know which analysis units are involved, visit the page SQL Queries - CAST Knowledge Base - Queries on objects - How to list the objects belonging to an Analysis Unit
      1. In the above example, the definition of the method did not change
      2. If we check the configuration of both version, we see that the Java version set in the Analysis unit of the current version is set to JDK 1.4 and for the previous version is set to JDK 6 :

      3. The Java Generic Interface is a Type that has started to be implemented since Java 5 (JDK 5). This is why, in previous version, with given configuration (Java version set to JDK 6), the Java analyzer was able to recognize the type of object. But in the current version, since the Java version is JDK 1.4, the Java analyzer recognize this type of parameter like a Java Interface.

    2. Check in the analysis log file if there are warning on the object for which the GUID has changed. Refer especially to these two warning messages the would lead to changing the GUID of an object. ReferĀ CMS Snapshot Analysis - Run Analyzer - Warnings - JEE with extension - JEE Analyzer - JAVA124: Cannot resolve 'XXX' as type
Notes/comments


Related Pages