This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.


On this page:

Summary: This document provides information about changes and new features introduced in this release.

CAST AIP Service Packs 8.3.20 - 8.3.23 are compatible only with the latest releases of the JEE Analyzer extension, i.e. ≥ 1.0.28 and ≥1.2.10-funcrel. Using older releases of the extension with these CAST AIP Service Packs risks incomplete analysis results (missing objects, links, violations, erroneous FP values) for JEE and C++ analyses.

Therefore, when using CAST AIP Service Packs 8.3.20 - 8.3.23, please either:

  • Upgrade your JEE extension to a compatible release (i.e. ≥ 1.0.28 or ≥ 1.2.10-funcrel) OR
  • Upgrade CAST AIP to a more recent Service Pack (≥ 8.3.24) which are compatible with older releases of the JEE Analyzer extension

If upgrading the JEE Analyzer extension or CAST AIP is not possible, please contact CAST Technical Support . 

1.2.26

Resolved Issues

Customer Ticket IdDetails
38165Fixed false positives for the rule (8104): "Avoid missing release of SQL connection after an effective lifetime (JEE)".
32928Fixed the incorrect resolution of generic methods type. Links will now be updated/resolved to correct symbols.
32600Fixed false violations for rule (7446): "Avoid double checked locking for JSE 4.x and previous version".
28903Documentation updated for rule (7964): "Avoid directly instantiating a Class used as a managed bean".
40343Fixed a crash due to apostrophes used in a project name.
40780Fixed an access violation seen while processing an XML configuration file.
39753Fixed false positives for the rule (8108): "Avoid missing release of stream connection after an effective lifetime".
40777Fixed false positives for the rule (8104): "Avoid missing release of SQL connection after an effective lifetime (JEE)".
33674Fixed false positives for the rule (8104): "Avoid missing release of SQL connection after an effective lifetime (JEE)".
38101Fixed Spring Batch Job objects being invalidly created in JEE.
40976Fixed an access violation seen while processing an XML configuration file.
33238Fixed the cause of syntax warnings for some cases of nested type arguments.
Callee TypeCaller TypeDetails
Generic Method TypeGeneric MethodType of generic methods are being resolved.

Other Updates

Details
Added support for variable access in try-with-resource.
Fixed an unknown exception observed in JEE due to a usage of Java Type Parameter.

Rules

Rule IdNew RuleDetails
7446FALSEFixed false violations for rule "Avoid double checked locking for JSE 4.x and previous version" have been fixed.
7964FALSEUpdated the documentation for the rule "Avoid directly instantiating a Class used as a managed bean" with correct scope.
8108FALSERemoved false violations for the rule: "Avoid missing release of stream connection after an effective lifetime".
8104FALSERemoved false violations for the rule: "Avoid missing release of SQL connection after an effective lifetime (JEE)".

1.2.25

Resolved Issues

Customer Ticket IdDetails
37255Fixed an issue that caused unresolved type warnings when Jar files contain .class or .java files.
37371Fixed an access violation seen in some cases of Switch Statements or Expressions.
39033Fixed an exception seen while parsing some Annotation parameters.
38594Fixed an exception encountered while processing some "Type Arguments" in Lambda Expressions.
38175Fixed the incomplete resolution of Lambda parameters. New links will now be created for these resolved symbols.
33723Fixed a false positive for the rule (8108): "Avoid missing release of stream connection after an effective lifetime".
35133Fixed false positive for the rule (8104): "Avoid missing release of SQL connection after an effective lifetime (JEE)".
35134Fixed an issue that caused a missing violation for the rule (8108): "Avoid missing release of stream connection after an effective lifetime".
37273Fixed missing links to overloaded implementation methods. Some incorrect links may be removed by the improved method resolution.
23991Fixed some syntax errors in generated JSP files, which were observed in the Metrics Assistant log.
29468Fixed syntax errors which were observed in the Metrics Assistant log.
24048Fixed the missing links to implementation methods.
Callee TypeCaller TypeDetails
Java ParameterJava Lambda ExpressionNew links from Lambdas to previously unresolved types may be observed.
Java MethodJava MethodMissing links to overloaded implementation methods are now created.

Other Updates

Details
Fixed multiple exceptions seen while analyzing a CAST application.
Fixed duplicated internal set definitions used for quality rule scopes.
This fix enables the separation of the analysis task from the saving task.
Fixed an access violation seen for a Lambda inferred type.
Fixed false violation for rule 7728: "Avoid thread creation for application running on application server".
Fix to use full name for extracted files.
Fixed duplicated internal set definitions used for quality rule scopes.

Rules

Rule IdNew RuleDetails
8108FALSEFixed cases of false positives and a missing violation for the rule: "Avoid missing release of stream connection after an effective lifetime".
8104FALSEFixed false positives for the rule: "Avoid missing release of SQL connection after an effective lifetime (JEE)". Rule name, description, rationale and reference have been updated. Threshold has been increased.
7442FALSERule name has been updated to "Avoid to use keyword 'this' within Constructor in multi-thread environment" (added quote marks around the word "this").
7728FALSEFixed false violations for the rule "Avoid thread creation for application running on application server", caused by the presence of Servlets without EJBs. The documentation on the rule output and total population have also been updated.

1.2.24

Note

This release also includes the latest bug fixes from JEE 1.3.x

Resolved Issues

Customer Ticket IdDetails
32789Fixed an exception that prevented saving of analysis results.
36326Fixed an issue with exceptions seen during plugin management.
36132Documentation updated for the rule (7254): "Declare as Static all methods not using instance members".
22202Fixed the wrong RelyOn Link from Lambda Expression.
37448Fixed a missing call to method Lamdba.
32248Fixed an issues related to stabilization of results for multiple run.
32587Fixed the missing link from JPA Entity to referenced table.
32146Fixed an issue related to warnings. No warnings should be rasied when there is a relavent jar configurred.

Other Updates

Details
TLD files provided by the Environment Profile were incorrectly considered as Internal objects. These have now been marked External.
Support for "AMT saving - an optimized mode" is added.
Fixed an invalid link type between JEE objects and SQL synonyms.
Fixed an exception that prevented saving of analysis results.
Fixed the false links from Java Lambda Expression.
Fixed the syntax error.
Normalized the signature of method for the extensibility.
Fixed the missing link from JPA Entity to referenced table.

Rules

Rule IdNew RuleDetails
7254FALSERule Description and References are updated to reflect that Spring Bean methods are excluded for the rule (7254): "Declare as Static all methods not using instance members".

1.2.23

Note

This release upgrades Log4j inside JEE's Environment Profile to version 2.17.1

Resolved Issues

Customer Ticket IdDetails
33165Fixed an unknown exception due to an issue with the stacking context.
34548Fixed an exception encountered while processing JSP files with circular includes.
31527Fixed syntax errors seen in cases of annotations used within Fully Qualified Names and Method Headers.
33533Fixed the cause of the unexpected warning. No impact on the analysis results due to the warning.
30690Fixed false positives for the Quality Rule "Avoid using incompatible mutation".

Other Updates

Details
The version of Log4j used in the JEE Environment Profile has been updated to 2.17.1.
Fixed an issue with some Deprecated APIs from the Environment Profile for Java not being correctly marked. The issue occurred only where methods had the Deprecated annotation along with additional parameters like 'since' or 'forRemoval'. There may be additional violations seen for rules affected by the use of this annotation.
A fix is provided which enables the separation of the analysis task from the saving task.

Rules

Rule IdNew RuleDetails
7254FALSEFixed false positives on Lombok UtilityClass annotated classes, and, methods with the Bean annotation for the rule "Declare as Static all methods not using instance members". The rule has now been moved to the JEE Analyzer. In some cases, previously missing violations may be added.
8216FALSEFixed false positives for the Quality Rule "Avoid using incompatible mutation"
8220FALSEDue to a fix done for methods marked with the Deprecated annotation and having parameters like 'since' or 'forRemoval', more violations may be seen for the rule "Avoid using deprecated method, constructor, field, type or package"

1.2.22

Resolved Issues

Customer Ticket IdDetails
31774Fixed exception preventing Java code from being analyzed
32641Fixed false positives for the QR "Avoid testing floating point numbers for equality"
32602Fixed an issue with Extensions being registered but not being found

Other Updates

Details
Fixed a syntax error seen while parsing XHTML files.
Fixed syntax issues seen while parsing JSP files.
Fixed an invalid link created between static methods that caused random violations for the QRs: "Avoid unreferenced Methods" and "Avoid declaring throwing an exception and not throwing it".
Fixed an migration procedure, returning null values in non-JEE analysis.

Rules

Rule IdNew RuleDetails
8096FALSEFixed false positives for the QR: "Avoid testing floating point numbers for equality".

1.2.21

Resolved Issues

Customer Ticket IdDetails
24367Fixed false positives for the QR: "Avoid missing release of stream connection after an effective lifetime".
31296A fix was made for an exception encountered while parsing a thrown exception.
24386Fixed false violations for the rule: "Avoid missing release of stream connection after an effective lifetime".
25160Fixed a JEE052 syntax issue observed while parsing some quoted strings in JSP.
28463Fixed false positives for the rule: "Close database resources ASAP".
29188Fixed false positives for the rule: "Avoid thread creation for application running on application server".
30768Fixed false positives for the rule: "All types of a serializable Class must be serializable".
30927Fixed an exception that occurred due to incorrectly initialized Type Arguments.
25160Fixed a JEE052 syntax issue observed while parsing some standard actions in JSP.
26445Fixed a lexer error that caused a syntax warning in Metric Assistant.
27108Fixed many false positives on private methods for the Quality Rules: 4670, 4672 and 4674.
30075Fixed unexpected added and deleted J2EE XML objects during analyses of the same code base.
23305Fixed false positives for the rule: "Close database resources ASAP".

Other Updates

Details
This fix stabilizes the order of XML files processed in the Analyzer. After this release, the unexpected addition and removal of some XML files even with the same code base would no longer occur.

Rules

Rule IdNew RuleDetails
4670FALSERemoved false violations on private methods for Quality Rule: "Public Methods must have JavaDoc comments".
7728FALSERemoved false positives on non-EJB applications for the Rule: "Avoid thread creation for application running on application server". Scope has been reduced to consider only possible EJB applications.
4672FALSERemoved false violations on private methods for Quality Rule: "Public Methods must have appropriate JavaDoc @param tags".
4674FALSERemoved false violations on private methods for Quality Rule: "Public Methods must have appropriate JavaDoc @return tags".
8108FALSERemoved false positives for the rule: "Avoid missing release of stream connection after an effective lifetime".
7650FALSERemoved false positives for the rule: "All types of a serializable Class must be serializable".
8104FALSERemoved false positives for the rule: "Close database resources ASAP".

1.2.20

Resolved Issues

Customer Ticket IdDetails
28504Fixed a crash observed during processing of some Type Arguments
29464Fixed a crash due to a missing reference
28256Fixed false positives for the QR "Avoid directly instantiating a Class used as a managed bean"
30398Fixed issues with unstable links to getters/setters of Spring Beans
18974Fixed an incorrect Java syntax warning seen for an escape character
27811Fixed false positives for the QR "Persistent classes should Implement hashCode() and equals()"
28567Fixed to add the missing position information for Entity Properties
24838Updated rule remediation and violation samples for QR "Avoid directly instantiating a Class used as a managed bean"
Callee TypeCaller TypeDetails
Setter or Constructor of a Spring BeanSpring BeanThe Call Links to Spring Bean setters and Constructors is stabilized in this release. Before this fix, getters were sometimes the callees in these Call Links.

Other Updates

Details
The extraction of Java files having long paths relative to the LISA/LTSA folder paths was fixed
The extraction of XML files with long relative paths was stabilized in this release
The GUID duplicate warnings for some Java Generic Methods were fixed.

Rules

Rule IdNew RuleDetails
7964FALSEFixed false positives and violations having incorrect bookmarks for the Quality Rule "Avoid directly instantiating a Class used as a managed bean". Also updated the violation and remediation samples in the rule documentation
7504FALSERemoved false violations for the Quality Rule "Persistent classes should Implement hashCode() and equals()"
7488FALSEFor the Quality Rule "Use lazy fetching for collection", fixed incorrect bookmarks for Entities whose source was not being displayed correctly in the Dashboard

1.2.19

Resolved Issues

Customer Ticket IdDetails
19338Fixed missing link between Java Method & JPA Entity
24032Fixed missing useSelect links from getters to JPA entities
25973Fixed a false violation for "Avoid missing release of stream connection after an effective lifetime"
26826Fixed GUID duplicate found warning for WSDL files when they are shared between different projects. The Discoverer creates duplicate sources (now considered shared) for Multi-Module (hierarchy) projects
26771Fixed issues with shared source code between projects. The Discoverer duplicates projects (One project with .project and pom.xml description) considered shared
16516Fixed issue with external tag libraries analysis that caused MA warnings
28904Fixed scope for rule 'Ensure to override both equals() and hashCode()'
20947Fixed syntax warnings in the case of inter dependencies between Analysis Units when some are JDK 1.4 and the others are newer
26195Fixed false positives for rule "Avoid using '==' and '!=' to compare objects"
Callee TypeCaller TypeDetails
JPA EntityJava MethoduseSelect links are now created for getters to JPA entities

Other Updates

Details
The resolution mechanism has been made more stable for classes when multiple matches are found in source classpaths or dependency source classpaths.
When WSDL files are shared between projects, GUID duplicate warnings were being generated for them. Now, JEE recognizes and handles these cases without warnings.

Rules

Rule IdNew RuleDetails
7434FALSEFixed scope to include classes that override equals/hashcode instead of all classes
7202FALSEFixed false positives in some cases that compare primitive types

1.2.18

Resolved Issues

Customer Ticket IdDetails
20361Fix for error 'Could not open the main CAST Script file' during Java Analysis.
22781Fix for the missing links between JPA Named Query & method/field because of incorrect naming of the JPA Named Queries when a field was used for the name parameter in @NamedQuery annotation. Expected increase in Use links and replacement of JPA Named query objects.
27582Fix for performance of snapshot computation for certain applications.
Callee TypeCaller TypeDetails
Java MethodJPA Named QueryFixed missing 'Use' links.
Java FieldJPA Named QueryFixed missing 'Use' links.

Other Updates

Details
Fix prevents syntax warnings when an Analysis Unit uses a class from a jar compiled with older JDK ( i.e. JDK 4 ).

Rules

Rule IdNew RuleDetails
8102FALSEUpdated the wording from "hardcoded" to "hard-coded" for the rule 'Avoid hard-coded network resource names (JEE)'.

1.2.17

Resolved Issues

Customer Ticket IdDetails
27111Improvement of the fix JFAMILY-1954
25438False positives for the rule: "Avoid classes overriding only equals() or only hashCode()
19741False positives for the rule: Avoid calls between JSP Pages
22518Java files that are not analyzed due to syntax error are skipped
26855Fixed an Unknown Exception
23086JAVA045 unable to read file
26181CASTIL files containing special characters are not generated
26744Fixed the access violation during analysis
Callee TypeCaller TypeDetails
Class Field associated to bean property, Getters and SettersSpring Bean propertyAdded missing relyonLinks between the Spring Bean inherited property and its associated class methods and field
Spring Bean configuration fileSpring Bean configuration fileImproved includeLinks between Spring Bean configuration files

Other Updates

Details
Missing links between Spring Beans and class methods
Missing Spring objects and false includeLinks have been corrected in Spring XML configuration

Rules

Rule IdNew RuleDetails
4700FALSEDeactivated the QR: Avoid using 'Throwable.printStackTrace()' within a try catch block
7388FALSEFalse violation removed for the QR: "Avoid artifacts having recursive call" violating XML file as object which is neither source object nor having recursive call
7434FALSEFalse positives removed for the QR: "Avoid classes overriding only equals() or only hashCode()

1.2.16

Note

JEE 1.2.16 has dependency on CAST AIP Internal Extension 0.9.0 LTS (the installation of internal platform 0.9.0 will be automatic).

Resolved Issues

Customer Ticket IdDetails
17102Fix for GUID issue with objects from environment profile vs classpath. See also 22290
21953Fix for GUID changing between snapshots due to random jar usage. See also 22290
22290Fix for GUID changing between snapshots for AUs with mixed Java versions
22290Method GUID has been updated to use Short Names instead of Fully Qualified Names in parameters

Other Updates

Details
GUID implementation now uses Short Names instead of Fully Qualified Names for Method Parameters

1.2.15

Resolved Issues

Customer Ticket IdDetails
16953Fix for added/deleted JPA entity objects that were causing modified AEP due to an unstable link
25984Performance improved for JEE analysis which appeared stuck during the creation of Hibernate 4.3.6 annotation objects
26002Improved performance of JEE analysis during resolution of Generic Type Parameters
20065Fixed missing UseDelete, UseInsert and UseSelect link between Java Methods and JPA Entities
21598Scope and its description have been updated for rule 4610 : Avoid using anonymous Classes
22967False positives fixed for rule : Avoid hardcoded network resource names (JEE)
26202False positives for Rule "Check usage of '==' and '!=' on objects" has been fixed
Callee TypeCaller TypeDetails
JPA EntityJava MethodMissing 'Use Insert', 'Use Delete' and 'Use Select' links has been fixed. An increment in these types of links might be expected.

Other Updates

Details
The warning Unclosed comment (EOF found while searching for '–%>') has been removed from the JEE analysis
Syntax warning observed for '{' embedded in a quoted string during JSP file parsing has been fixed

Rules

Rule IdNew RuleDetails
4610FALSEScope and its description have been updated for the rule: Avoid using anonymous Classes
8102FALSEFixed false positives and improved bookmarks for the rule: Avoid hardcoded network resource names (JEE)
7202FALSEFalse positives for Rule "Check usage of '==' and '!=' on objects" has been removed

1.2.14

Resolved Issues

Customer Ticket IdDetails
24663Fix for invalid parsing errors due to presence of attributes without values in nodes in a JSP file. The change may result in more JSP objects along with links associated with them.
25724Fix for an event invocation for extensions depending on JEE. The fix may result in more configuration file objects and links associated to them.

1.2.13

Note

JEE Analyzer 1.2.13 is now in LTS (Long Term Support).

Resolved Issues

Customer Ticket IdDetails
17296False positives for "Avoid directly instantiating a Class used as a managed bean" fixed.
19373False positives for rule "All types of a serializable Class must be serializable" fixed
24508Missing violations for the rule "Avoid testing floating point numbers for equality" fixed
25038Support for @PersistenceContext annotation for rule "Provide accessors to Private Fields"
23232Missing link from Java Method to Stored Procedure objects when called using full name fixed
Callee TypeCaller TypeDetails
Java Annotation TypeJava InterfaceMissing INHERIT links from Java Annotation Type to java.lang.annotation.Annotation abstract Java Interface are fixed
Java MethodStored ProcedureMissing RELYON links from Java Method to Stored Procedure objects when called using full name fixed
Java MethodJava Lambda ExpressionSome bad ACCESS-EXEC links between Java methods and lambdas have been removed

Rules

Rule IdNew RuleDetails
4602FALSEFalse violation in case where an inner class access a field from the base class of an outer class is fixed
7964FALSEFalse positives for "Avoid directly instantiating a Class used as a managed bean" fixed.
7650FALSEFalse positives for rule "All types of a serializable Class must be serializable" fixed
8096FALSEMissing violations for the rule "Avoid testing floating point numbers for equality" fixed
4576FALSESupport for @PersistenceContext annotation for rule "Provide accessors to Private Fields"

1.2.12-funcrel

Resolved Issues

Customer Ticket IdDetails
20318Same objects are identified as entry and end points
23908Fixed false positives for the QR "Avoid unsecured EJB remote method"
19594Fixed false Positive in rule "Provide Accessors to Private Fields" due to @Inject annotations.
24502Improved Performance - Improved performance for QR "Avoid using Fields (non static final) from other Classes". Also, fixed some missing violations.
24177Improved stability - fixed analyzer crash due to illegal memory access.
24401Improved Stability - Fix for JEE analysis failing with the error: jeecmd.xml"' exited with code -1073740791”.
24758Improved Stability - Fix for JEE analysis jeecmd.exe process crash.
23080Improved Performance - Analysis run time improved compared to 1.2.8-funcrel.
23801Improved stability - Fixed exception access violation while parsing the spring bean with empty <value> node.
24077Fixed false Positive in rule "Provide Accessors to Private Fields" due to @Autowired annotations.
24199Improved Stability - Fix for JEE analysis failing with the error: jeecmd.xml"' exited with code -1073740791”.
20351Sample and Remediation added for QR 'Avoid using fields (non static final) from other classes'.
22621Remove duplicate XML group
23488An issue with inheritance information for generic classes was fixed. Links from Java Method to Implementation method are more stable.
Callee TypeCaller TypeDetails
Java MethodJava ClassAdded bookmark links(ACCESS Read) between Java Method to Java Class

Other Updates

Details
Added bookmark links(ACCESS Read) between Java Method to Java Class
Fixed decompilation issure which caused some valid interface objects and links to be removed.
Improved Logs - Fix for missing information messages for parsing Java files during the analysis.
Fixed a regression in Access Exec Links. This fix may result in some GUID changes which will show up as added/removed objects.
Improved Stability - Fix for JEE analysis failing with the error: jeecmd.xml"' exited with code -1073740791”.
Some missing links between JSP Bean Property and JSP added.

Rules

Rule IdNew RuleDetails
4602FALSEAvoid using Fields (non static final) from other Classes
8016FALSEAvoid unsecured EJB remote method
4576TRUEProvide Accessors to Private Fields - The rule is moved to JEE. Added support for @Inject, @Autowired and @Resource. Fixed false violations due to the presence of anonymous classes.
7202FALSEMissing violations fixed for QR `Check usage of '==' and '!=' on objects`

Transaction Improvements

TypeFramework
Removed TCC End Point "Standard End Point - Java - Thread"Java
Removed `java.lang.Process%` from the Generic Set "Standard Entry Point - Java - thread (GS)". This change may reduce the number of entry points and transactionsJava

1.2.11-funcrel

Resolved Issues

Customer Ticket IdDetails
23338Violation for the rule - Avoid using Fields (non static final) from other Classes.
21494Warning: JAVA151: unable to decompile class file causes deleted javax.servlet.Servlet object
20309Issue in Java analysis failed with warning: Exception: EXCEPTION_ACCESS_VIOLATION
23150Wrong link created from Java Lambda expression to Java abstract method. The number of links may decrease. See Link Improvement on links between Java Lambdas and Abstract Methods.
21620Link from Java instantiated Method to Java Method is missing The number of links may increase. See Link Improvements.
22368Error in JEE Analysis - The process jee.1.2.7-funcrel\jeecmd.exe \jeecmd.xml exited with code - 1073740940
Callee TypeCaller TypeDetails
Java LambdasJava ObjectsFor Java Lambdas within Lambdas, updates have been made to create missing links for objects in such expressions. This may increase the total number of links.
Java LambdasAbstract MethodsFor links between Java Lambdas and Abstract Methods: lambda resolution has been improved preventing incorrect links between lambdas and abstract methods. The number of such links may decrease.

Other Updates

Details
Fixed exceptions due to the errors encountered during Jar decompilation.
Redundant locked instances, which use to block the analysis, are no longer created
Improved Analyzer's string processing.
Fixed bad requests to AMT for the QR "Avoid unused import" in JSP file.
Job execution JEE055: 'jsp:param action', 'value attribute': empty value is illegal: The message now displays the line and column number of the tag in the JSP file currently being analyzed, and, asks to set a value.
Time taken by various steps during analysis is now displayed in the Analyzer log.
The Analyzer will generate a summary of few log messages, this helps to see the list of unresolved symbols, missing source files and missing classpaths, during an analysis.

Rules

Rule IdNew RuleDetails
4602FALSEAvoid using Fields (non static final) from other Classes: The rule has been moved to the Analyzer. False violations for the usage of fields from external classes have been fixed and violations now have more accurate bookmarks.
7220FALSERule "Avoid unused imports": The performance of this rule has been improved in the case of JSP files.

Performance Improvements

Summary
Improved Inference Engine performance for Struts2

1.2.10-funcrel

Resolved Issues

Customer Ticket IdDetails
22421JEE analysis Log Exception warning during Inference engine resolution
22556Missing links to implementation methods using @Autowire causing deleted Transactional Functions
22446Missing link to java classes from .jsp or .jspf files
21388Warning: Job execution JEE052: Syntax not recognized: \n/*
19652No java files analyzed due to error message during analysis by enabling debug mode
22107Missing link from calling java method to implementation methods (interface programming)
21688LOMBOK support issue : False positive for the rule "All types of a serializable Class must be serializable" rule
21370False violations triggered post upgrade for rule - Persistent classes should Implement hashCode() and equals()
21592Incorrect violations are populating for the QR Avoid unused Imports The false violations have been fixed in this release.
Callee TypeCaller TypeDetails
Java Methodimplementation Java MethodLink improvements Missing links from calling Java Method to implementation Java Method have been fixed.

Other Updates

Details
J2EE part - Environment profile is not retained post upgrade to HF08 from HF05: Environment profile is now retained for AIP 8.3.19 and newer.

Rules

Rule IdNew RuleDetails
7912FALSERule Avoid un-referenced Data Members: The rule now counts member references if lombok annotations Getter, Setter or Data are used. False positives due to lombok annotations have been fixed
4572FALSERule 'Avoid declaring Final Instance Variables that are not dynamically initialized': Rule implementation considers final instance variables as initialized if lombok annotations Data or RequiredArgsConstructor are used. False positives due to lombok have been reduced.
7504FALSERule "Persistent classes should Implement hashCode() and equals()": False positives due to super class implementation of equals() or hashCode(), with or without lombok annotations Data or EqualsAndHashCode, have been fixed.
4576FALSERule "Provide accessors to Private Fields" : The rule has been moved to JEE Analyzer and now takes into account lombok annotations Getter, Setter and Data. The number of false positives has been reduced.
7910FALSERule "Never exit a finally block with a return, break, continue, or throw": A false positive for this rule has been fixed.
7220FALSERule "Avoid Unused Imports": False positives for this rule have been fixed.
8108FALSERule "Avoid missing release of stream connection after an effective lifetime": A false positive for this rule has been fixed.

New Support

SummaryDetails
Updates Lombok annotation supportUpgrade Annotations from Lombok v1.18.12 are now resolved by JEE Analyzer. Improved the support of Lombok annotations for few Quality Rules and the same will continue for more Quality Rules in future releases.

1.2.9-funcrel

Note

JEE 1.2.9-funcrel has been withdrawn and replaced by JEE 1.2.10-funcrel.

1.2.8-funcrel

Resolved Issues

Customer Ticket IdDetails
19535Java044: Syntax not recognized warnings coming from jar files due to incorrect decompilation
21642Violation deleted in current run for rule - Avoid improper processing of the execution status of data handling operations
21886Java analysis crashed with warning: Log the exception information
19251Java analysis failed with warning Database BCP operation dbbcp_done failed on table castapp_local.IN_LINKS
20376Call link should be implemented in entry point "%Java-thread"
19937Wrong Use Links between JPA Entities No more 'use' links between JPA/HIB entities, better bookmarks for violations related to QR ID 7492 and most, if not all, transactions will appear to be modified.
13425Inference Engine crash during JEE analysis leads to missing links
Callee TypeCaller TypeDetails
Class filesJava sourceIncorrect links between objects from Java source vs Class files are fixed.
JAVA artifactsLombok annotationsA regression that caused missing links to Lombok annotations is fixed.
JPA/HIB entitiesJPA/HIB entitiesIn previous releases, 'Use' links existed between JPA/HIB entities based on the usage of one entity inside the other. These links were generated only for the following QR: 'Avoid Hibernate and JPA Entities using many-to-many association', which polluted the transactions. To improve the transactions, these links are now removed and the QR is rewritten. This update results in better bookmarks for the violations related to the aforementioned QR. Most of the transactions will appear as modified, due to the huge impact of the update.

Other Updates

Details
Remove BOM of generated JSP java files: The Byte Order Mark ( BOM ) from the files generated from JSP files is optional, hence removed. Syntax error warnings from JDT, due to BOM is no longer emitted.

Rules

Rule IdNew RuleDetails
8112FALSERule "Avoid improper processing of the execution status of data handling operations": Missing violations for java.sql.PreparedStatement is now displayed when a snapshot is taken.
8110FALSERule "Use dedicated stored procedures when multiple data accesses are needed (ASCPEM-PRF-10)": False positives for this rule have been fixed.
7492FALSERule "Avoid Hibernate and JPA Entities using many-to-many association" : Name of the rule has been changed from "Avoid many-to-many association" to "Avoid Hibernate and JPA Entities using many-to-many association". The bookmarks for the violations of this QR is also improved. The documentation has also been updated and the rule has been recoded.
7220FALSERule "Avoid Unused Imports": A regression in the creation of links to Lombok annotations was fixed. False positives as a result of this were fixed.

New Support

SummaryDetails
Java 12 and Java 13 SupportThe changes introduced with Java 12 and Java 13 can be broadly categorized into two parts, from the analyzer's perspective. API changes: The changes in the API of the classes shipped with the runtime of Java 12 and Java 13. These changes are added in the current release to create objects and links to them. Language Features: All the language features introduced in Java 12 and Java 13 (pattern matching in switch expressions and text block) are preview features (which means, during the standardization of these features, they might be changed or even removed in future Java versions). The current release of the analyzer (1.2.8-funcrel) does not support the language features of Java 12 and Java 13.

Performance Improvements

Summary
Stability and Performance Improvements: The exception safety of the analyzer is improved. Performance of JSP analysis parts is improved Performance of Java analysis with imports and type parameters is improved.

1.2.7-funcrel

Resolved Issues

Customer Ticket IdDetails
19889JFAMILY-1533 from 1.0.x to 1.2.x -False positive for QR- Collection must be the same between getter and setter
17510Permanent Fix: Java analyzer creating false violation in Dashboard "Close the outermost stream ASAP"
20074Violation for rule "Close the outermost stream ASAP was detected in previous analysis but not in current analysis
19803False Positives for "Close database resources ASAP"
17842Missing links between Java Methods
18056Permanent Fix - Can't find links between java methods
16612Missing link between java methods in the same analysis unit
18968Wrong link is created from Java method to JPA entity property though there is no call in source
18934Wrong link is created from Java method to JPA entity property though there is no call in source
16186Missing link from Controller to service class method
15926Java devirtualization: Missing links from caller to the right implementation methods, one false link to a wrong implementation method
20838Java analysis crashed with the warning: "Log the exception information"
20292Java analysis failed - Log the exception information: Unknown Exception...
20239Java analysis is failing with warning Exception: EXCEPTION_ACCESS_VIOLATION
20292Java analysis failed - Log the exception information: Unknown Exception...
20239Java analysis is failing with warning Exception: EXCEPTION_ACCESS_VIOLATION
19417Warning: Log exception information : Causing 99% of the code unanalyzed
20186Java analysis failed with warning : Log the exception information: Exception: EXCEPTION_ACCESS_VIOLATION
20001Java analysis crash with warning: Log the exception information: Unknown Exception...
19226Analysis crashes with the message Log the exception information: Exception: EXCEPTION_ACCESS_VIOLATION
Callee TypeCaller TypeDetails
Java methodsJava methodsFixed missing Access exec links between java methods due to generated Lombok methods using @Getter annotation. Fixed some incorrect FIRE links when there is no inheritance between the abstract method and the implementation method. Fixed some incorrect USE links from Java methods to JPA entity properties. Changed direction of RELY ON link between JPA Entity and Java Field objects.
Java MethodsJava MethodsUpdated resolution for links to unresolved methods: Before this release, when creating links between methods, the analyzer attempts to find exact matches for the methods. From this release onwards, if no exact match is found, the analyzer uses heuristics to filter and detect partial matches, and then creates links for all such matches. This makes the analyzer more resistant from one analysis to another when adding missing code or jars.

Rules

Rule IdNew RuleDetails
8220FALSERule: Avoid using deprecated method, constructor, field, type or package: Few Java types(Classes/interfaces) extracted from jars were being erroneously marked as deprecated. This happened due to a bug during the processing of 'synthetic' methods. Now, these types will no longer be marked as deprecated and a lot of false positives for the rule are removed.
8108FALSERule: Close the outermost stream ASAP: A violation which was missing in the previous versions is now detected correctly.
8104FALSERule: Close database resources ASAP: False positives for the rule have been corrected.
7498FALSERule: Collection must be the same between getter and setter: False violations reported related to wrong direction links between JPA Entity property and Java Field.

Performance Improvements

Summary
Significant performance improvement (from hours to minutes) during the "Generating JSP implementation classes" phase when an application has >5000 JSP pages.

1.2.6-funcrel

Resolved Issues

Customer Ticket IdDetails
12676False violation rule: "Use declarative transaction"
17868Java analysis, Performance issue while resolving parametrization link
15678False positive for Rule "Avoid Web Server pages having a very low Comment/Code ratio"
14949Cannot resolve 'rs' as package or type in package 'javax.ws' from package
18034Missing links between Java methods
19507False positive for rule "Persistent classes should Implement hashCode() and equals()" in case of use of Lombok annotations - @Data

Other Updates

Details
Java Analysis failed with the error "Exception: EXCEPTION_ACCESS_VIOLATION".
Fixe for GPF when analyzed <App> on jpa.
EXCEPTION_ACCESS_VIOLATION issue fixed.

Rules

Rule IdNew RuleDetails
4602FALSEFixes for false positives on the Rule "Avoid using Fields (non static final) from other classes": Violations reported on fields in outer or inner classes but used in outer classes.

Performance Improvements

Summary
For moderate to large applications (having roughly more than 1000 Jars and/or 1000 XML configuration files), both JEE Analyzer's memory usage and XML configuration file/Jar file processing have been improved.

1.2.5-funcrel

Resolved Issues

Customer Ticket IdDetails
16799False positive for rules 7362: Avoid action mappings validator turned off & 7372: Enable Struts Validator plugin
16645The warning "JEE067: Issue occured while computing URL path" need to be better documented as it's not providing any paths so is not indicative of what is happening Should it even be occurring.
15334Warning "JEE055: 'jsp:useBean action', 'type attribute' : invalid java type name 'java.util.HashMap[]' " need to be better documented.
18904Java Analysis crashed with warning Unknown Exception.
18808Java analysis warning: Exception: EXCEPTION_ACCESS_VIOLATION
18234Various Syntax Error Warning seen in Java Analysis Log resulting in files not analyzed.
17706Wrong & Missing links due to the limitation on duplicate classes
17574Link not correctly created between two java methods of same analysis unit.
17038Classes from rt.jar Env Profile are not analyzed (unresolved references coming from rt.jar when it is used in the context of rt.jar.header.xml).
17337Classes from rt.jar Env Profile are not analyzed (unresolved references coming from rt.jar when it is used in the context of rt.jar.header.xml).
18551No objects named webMethod and webService as JAVA ANNOTATION TYPE are being analysed in 8.3.12
12879Lombok Annotation Usage : Throwing False Positive for Rule - Persistent classes should Implement hashCode() and equals()
15596The warning JEE088: "The uri '/dspTaglib' could not be resolved within the file web.xml or among the jar files deployed with your application" Should not be reported when occurs in the JavaScript part of the JSP file

New Support

SummaryDetails
Support of Spring 5Support for Spring framework version 5.x is added. JEE Analyzer -1.2.5-funcrel now supports reactive programming and functional programming (lambdas) in Spring Framework.

Performance Improvements

Summary
Performance of JEE analyzer has been improved. Sample applications show reduction in JEE analysis duration approximately by 38%.

1.2.4-funcrel

Note

1.2.4-funcrel is no longer available and must not be used. This is because of an issue with the new environment profile for Spring5, which caused an error while upgrading the extension.

1.2.3-funcrel

Resolved Issues

Customer Ticket IdDetails
15488Standard End Point - Java - Java.io needs has been updated
14506Incorrect violation for the rule- Avoid table and column names that are too long
15188Java Analysis log warning "Syntax not recognized" for package org.omg
15258Java Analysis log warning "Syntax not recognized" for package org.omg
17665Analysis is failing with "Log the exception information" warning in the analysis log
17931Analysis failed during "Resolving parametrization links" with the warning: Log the exception information: Unknown Exception...
17758Java Analysis failing with fatal Error when analyzing Open source JDK

Other Updates

Details
Rule 8214 "Expired or Released Resource should not be used" Name has been updated by removing 'CWE-672'
Rule 7714 "Do not use auto-wiring" is not displayed in the AED dashboard with JEE 1.0.15 extension

1.2.2-funcrel

Resolved Issues

Customer Ticket IdDetails
17062JEE Analysis- Log the exception information: Unknown Exception
16329Onboarding: Wrong link between java method and Java Lambda Expression
15109Warning: Java-Lexer: Invalid String literal
17255No Java files analysed due to exception in JEE analysis
16633TCC "Standard Entry Point - Java - org.apache.camel" creates both classes and method Entry points
17526Java files not getting analyzed after re-run
17640Log the exception information: Unknown Exception

Other Updates

Details
A change has been implemented to introduce a connectivity layer compatible with PostgreSQL 10 and 11
Port of JFAMILY-1162 from 1.0.x to 1.2.y - Exception raised in JEE analyzer while creating an AMT object in JSP Scanner
Port from 1.0.x to 1.2.x - JFAMILY-1102 - EXCEPTION_ACCESS_VIOLATION reported as a simple Warning - analysis KO indeed

1.2.1-funcrel

Resolved Issues

Customer Ticket IdDetails
16354Analysis in JEE 1.0.13 is getting stuck, same analysis is finishing in 8.2.10
16251"Cannot resolve a Struts Result from strings returned by method"
14832False positives in rule Avoid Unused Imports and Missing links
15904Avoid unreferenced methods violation due to missing link
17046JEE analysis is stuck, running in infinite loop
17032JEE analysis is stuck, running in infinite loop.
17019JEE analysis is stuck, running in infinite loop.
16760JEE analysis is stuck, running in infinite loop

New Support

SummaryDetails
Improve Chinese supportUnable to read file when there are chinese characters in the code

1.2.0-funcrel

Resolved Issues

Customer Ticket IdDetails
15113JEE052: Syntax not recognized: \n--%>
16137Standard End Point - Java - javax.jms-supposed to have some objects-not coming-because of incorrect definition
16580JAVA044: Syntax not recognized warnings

Rules

Rule IdNew RuleDetails
4592FALSEFalse positive is coming for the rule "Avoid hiding static Methods" for a createUI object
7498FALSEFalse positive for QR- Collection must be the same between getter and setter

1.2.0-beta1

Resolved Issues

Customer Ticket IdDetails
15567Log the exception information: Exception: EXCEPTION_ACCESS_VIOLATION
15496TCC shows OutputStram instead of OutputStream
15904JEE analysis warning -Exception: EXCEPTION_ACCESS_VIOLATION
15578Run methods are not identified by Standard Entry Point

Rules

Rule IdNew RuleDetails
8096FALSEWrong book mark shown for the violation Avoid testing floating point numbers

1.2.0-alpha3

Other Updates

Details
J2EE: Unable to process JSP analysis 'CCE_2b80894c' (An exception occurred)
ALL environment profiles, including customs keep disappearing
No longer create EFile for html and js files.

Rules

Rule IdNew RuleDetails
8214FALSEFalse positive is coming for rule: Expired or Released Resource should not be used
2232FALSEFalse Violation for QR 'Pages should use error handling page' when webdefault.xml is included in analysis
8104FALSEFalse positive is coming for the rule "Close database resources ASAP"

1.2.0-alpha2

Resolved Issues

Customer Ticket IdDetails
15079When using double semicolon, which is acceptable by the java compiler, J2EE analyzer throws a 'Syntax not recognized' warning and file is not analyzed.
13740Error - The process '"C:\...\com.castsoftware.jee.1.0.7\jeecmd.exe" "I:\....\LISA\XXX\jeecmd.xml"' exited with code -1073741819

Other Updates

Details
JFAMILY-929
Warning Message without proper explanation - JEE055: %WARNING_MESSAGEJEE001: %

New Support

SummaryDetails
Support of JAVA 10 and JAVA 11Partial support has been added for analyzing applications built with Java 10 and Java 11.

1.2.0-alpha1

New Support

SummaryDetails
Support of JAVA 9Partial support has been added for analyzing applications built with Java 9.