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


On this page:

1.1.3-funcrel

Other Updates

Details
Now, the Adobe Flex analyzer does not depend on hard-coded "operator" role.
Incorrect wording "hardcoded" has been changed to "hard-coded"
Now, the Adobe Flex Analyzer does not support Oracle or SQL Server as Storage Service.


1.1.2-funcrel

Resolved issues

R&D ID

Ticket ID

Summary

FLEX-16515961Flex warning- UA Plugin: No property (adobe.ac.pmd.rules.binding.TooLongBindingExpression) found in meta model
FLEX-13915466FLEX Warning : UA Plugin: No property found in metamodel
FLEX-14015464QR - Avoid type not found within analysis scope (Flex) should be updated

Updates

Improved analysis support

Analysis support has been been improved for certain Flex objects:

  • getter/setter/functions
  • member variables
  • classes

Therefore after an upgrade to this version of the extension and the generation of a post-upgrade consistency snapshot, analysis results may be impacted: there may be an increase in the number of objects identified during the analysis and as a consequence, there may be impacts with regard to the violations detected for these Flex objects.

Related issues

  • FLEX-162 - Improved detection of gettter\setter\functions
  • FLEX-163 - Improved detection of member variables
  • FlEX-164 - Improved detection of Flex classes

Reduced number of "UA Plugin: No Property found…" warnings

Changes have been made to reduce the warnings of type "UA Plugin: No Property found…". These changes will result in the following two impacts after an upgrade to this version of the extension and the generation of a post-upgrade consistency snapshot:

  • Some of the Flex rules may have new violations
  • The following rules will show all violations removed and then added back again because the violation object type has changed:
    • 1003198: Avoid MXML component with more than one entry point (Flex)
    • 1003200: Avoid MXML component with more than two entry points (Flex)

Flex Rules Updates

The documentation of all Flex rules has been updated. As part of the update, rule titles have been updated as shown in the table below:

IDOld TitleNew Title
1003010Avoid class that imports an internal class from another function area (Flex)Avoid class that imports an internal class from another functional area (Flex)
1003016Avoid long switch case (Flex)Avoid long cases in switch (Flex)
1003020Avoid empty method (Flex)Avoid empty overridden method (Flex)
1003024Avoid empty used private method (Flex)Avoid empty private method (Flex)
1003026Avoid too complex methods. (Flex)Avoid too complex methods (Flex)
1003036Avoid unused private attribute (Flex)Avoid unused private field (Flex)
1003038Avoid Cairngorm event name not containing the function area name before the actual event name (Flex)Cairngorm: Avoid Cairngorm event name without functional area (Flex)
1003040Avoid Event name not explicitly set (Flex)Avoid Event name not set explicitly (Flex)
1003044Avoid too short field name (Flex)Avoid field with name too short (Flex)
1003046Avoid too short variable name (Flex)Avoid variable with name too short (Flex)
1003056Avoid class name not starting by a majuscule character (Flex)Avoid class name that does not start with capital letter (Flex)
1003058Avoid field incorrectly named. (Flex)Avoid fields with names that can reduce code readability (Flex)
1003060Avoid variable incorrectly named. (Flex)Avoid variables with names that can reduce code readability (Flex)
1003066Avoid logger not correctly formatted (Flex)Avoid incorrectly formatted logger (Flex)
1003074Avoid modelLocator that is Bindable at a class level (Flex)Cairngorm: Avoid modelLocator that is Bindable at a class level (Flex)
1003080Avoid control statement in Constructor (must be as lightweight as possible) (Flex)Avoid complex constructor (Flex)
1003084Avoid calls to the StyleManager that do not pass FALSE as the second parameter (Flex)Avoid recursive StyleManager call (Flex)
1003096Avoid using public static fields (Flex)Avoid non-const public static fields (Flex)
1003100Avoid protected accessors in a final class (Flex)Avoid protected fields in final class (Flex)
1003110Avoid function that are too long (Flex)Avoid functions that are too long (Flex)
1003116Avoid class (in script) with too many fields (Flex)Avoid Flex Script with too many fields (Flex)
1003120Avoid ModelLocator not only accessible from the main application file (Flex)Cairngorm: Avoid ModelLocator not only accessible from the main application file (Flex)
1003122Avoid FrontController that adds all its commands within the Controller constructor (Flex)Cairngorm: Avoid FrontController that adds all its commands within the Controller constructor (Flex)
1003126Avoid method with more than one exit point (Flex)Avoid more than one return path (Flex)
1003128Avoid using the with keyword (Flex)Avoid use of with statement (Flex)
1003132Avoid switch statement with too few branches (Flex)Avoid switch statement with less than 3 cases (Flex)
1003134Avoid identical switch cases (Flex)Avoid identical cases in switch (Flex)
1003136Avoid test that does not contain at least one assertion (Flex)Avoid unit test that does not contain at least one assertion (Flex)
1003138Avoid BindingUtils class that uses hard coded strings (Flex)Avoid BindingUtils class (Flex)
1003140Avoid ChangeWatcher class that uses hard coded strings to specify the attribute name, to listen to. Prefer listening to events or setters (Flex)Avoid use of ChangeWatcher class (Flex)
1003142Avoid CairngormEventDispatcher called explicitly (Flex)Cairngorm: Avoid CairngormEventDispatcher called explicitly (Flex)
1003144Avoid more than one reference of ModelLocator per class (Flex)Cairngorm: Avoid more than one reference of ModelLocator per class (Flex)
1003148Avoid clone event not overriden in a custom event (Flex)Avoid clone method not overridden in a custom event (Flex)
1003150Avoid event dispatched in a constructor (Flex)Avoid event dispatched from a constructor (Flex)
1003152Avoid DispatchEvent function not dispatching constant strings (Flex)Avoid dispatching events using hardcoded strings (Flex)
1003154Avoid addEventListener containing hard coded strings (Flex)Avoid listening to events using hard coded strings (Flex)
1003156Avoid type not found within analysis scope (Flex)Avoid partial source code delivery of application (Flex)
1003158Avoid unspecified event type (Flex)Avoid event without type specified (Flex)
1003160Avoid test containing a hard coded boolean value. (Flex)Avoid conditions with hardcoded boolean values (Flex)
1003164Avoid using Object class in fields (Flex)Avoid dynamic (Object) type fields (Flex)
1003166Avoid using Object class in variables (Flex)Avoid dynamic (Object) type variables (Flex)
1003170Avoid using Dictionary class (Flex)DELETED: Avoid using Dictionary class (Flex)
1003176Avoid ArrayElementType metadata not specified for the array-type field (Flex)Avoid array-type field without ArrayElementType metadata (Flex)
1003178Avoid incorrect signature of the message interceptor. (Flex)Avoid incorrect message interceptor signature (Flex)
1003180Avoid packages with misplaced metadata (Flex)Avoid packages having artifacts with misplaced metadata (Flex)
1003182Avoid classes with misplaced metadata (Flex)Avoid classes having artifacts with misplaced metadata (Flex)
1003184Avoid type metadata argument redundant with the handler argument type (Flex)Avoid redundant type metadata argument for handler type (Flex)
1003186Avoid method metadata argument redundant with the handler name (Flex)Avoid redundant method metadata argument for handler (Flex)
1003188Avoid packages with unknown metadata attribute (Flex)Avoid packages having artifacts with unknown metadata attribute (Flex)
1003190Avoid classes with unknown metadata attribute (Flex)Avoid classes having artifacts with unknown metadata attribute (Flex)
1003192Avoid globally bindable classes. (Flex)Avoid globally bindable classes (Flex)
1003194Avoid constructor with a return type (Flex)Avoid constructor with void return type specification (Flex)
1003196Avoid switch statement without a default statement (Flex)Avoid switch statement without a default case (Flex)
1003198Avoid MXML component with more than 1 public variable (Flex)Avoid MXML component with more than one entry point (Flex)
1003200Avoid MXML component with more than 2 public variables (Flex)Avoid MXML component with more than two entry points (Flex)
1003204Avoid too long script block (Flex)Avoid script block that are too long (Flex)

1.1.1-funcrel

Resolved issues

R&D IDTicket IDSummary
FLEX-13614266Unable to download extension via CLI. The specified path, file name, or both are too long.

1.1.0-funcrel

Updates

  • New object icons have been introduced. See Flex 1.1.
  • FLEX-91 - In previous releases of the extension, local variables in the source code were resolved as "FLEX Variable" objects. This behaviour has now been changed and FLEX Variable objects are no longer resolved. Therefore, after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ. In addition, the following rules included FLEX Variable objects in their scope and have been modified to use FLEX Getter, Setter, Function and Script objects instead of FLEX Variables. There will be no impact on the number of violations for these rules:
1003032Avoid unused variable (Flex)
1003046Avoid too short variable name (Flex)
1003052Avoid variable names ending with numeric characters (Flex)
1003060Avoid variable incorrectly named (Flex)
1003166Avoid using Object class in variables (Flex)
1003174Avoid * and use strongly typed objects instead in variables (Flex)
  • FLEX-77 - In previous releases of the extension, call links between Flex functions were never resolved, by design. This behaviour has now been changed and links between Flex functions are resolved.
  • FLEX-127 - The use of the $ sign in the names of functions, fields, getters and setters is now supported and the object will be fully resolved. For example:
package {

public class DollarInName {
	mx_internal function get $transform() : int {
	return 0;
	}
	mx_internal function set $transform(int val) : void {
	}
	mx_internal function $transformThat() : void {
	}
}
}
  • FLEX-133 - The RemoteObject parameter is now resolved correctly as an object. For example, in the following code, all RemoteObject parameters will be resolved:

<?xml version="1.0" encoding="utf-8"?>

<s:ProxyFactory xmlns:fx="http://ns.adobe.com/mxml/2009" 
		  xmlns:s="library://ns.adobe.com/flex/spark" 
		  xmlns:mx="library://ns.adobe.com/flex/mx"
		  xmlns:comp="com.att.ntscp.view.component.*" width="99%"  
		  >

  <mx:RemoteObject id="SingleStatementMultiline1"
	named="something"
	showBusyCursor="true"/>
	
	
		<mx:RemoteObject id="MultilineMultiline1" destination="helpDest" showBusyCursor="true">
			<mx:method name="setAttUid"/>
			<mx:method name="getCommandHelp"  result="onResult(event)" fault="onFault(event)"/>
		</mx:RemoteObject>
	

  <mx:RemoteObject id="SingleStatementSingleline1" named="something" showBusyCursor="true"/>
	
		<mx:RemoteObject id="MultilineMultiline2CommentInBetween" destination="helpDest" showBusyCursor="true">
			<mx:method name="setAttUid"/>
			<!-- no comment! -->
			<mx:method name="getCommandHelp"  result="onResult(event)" fault="onFault(event)"/>
		</mx:RemoteObject>
	
	
  <mx:RemoteObject id="SingleStatementMultiline2" named="something"
	showBusyCursor="true"/>
	
  <mx:RemoteObject id="SingleStatementMultiline2CommentBetweenLines" 
	named="something"
	showBusyCursor="true"/>
	
</s:ProxyFactory>
  • FLEX Getter and Setter objects (new in Flex 1.1.0) will now be included in the scope for violations in the following rules, therefore, after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: increased number of violations providing improved accuracy.
1003014Avoid nested if statement (Flex)
1003020Avoid empty method (Flex)
1003026Avoid complex methods (Flex)
1003030Avoid function with unused parameter (Flex)
1003054Avoid local variable hiding a class property (Flex)
1003056Avoid class name not starting by a majuscule character (Flex)
1003082Avoid instantiating variable in a loop (Flex)
1003088Avoid calling Alert.show directly (Flex)
1003110Avoid function that are too long (Flex)
1003126Avoid method with more than one exit point (Flex)
1003146Avoid call to callLater explicitly (Flex)
1003152Avoid DispatchEvent function not dispatching constant strings (Flex)
1003154Avoid addEventListener containing hard coded strings (Flex)

Resolved issues

The Flex 1.1.0 contains all bug fixes from previous releases. The following table lists all bugs fixed in Flex 1.1.0 and that are not already fixed in the previous released versions:

R&D IDTicket IDSummaryComments
FLEX-7710507Missing links between Flex functions.After an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: increased number of links between Flex functions impacting rule results and function point values.
FLEX-10113921Flex warn: An unnamed object of type 'FLEX_script' has been detected.

When using previous releases of the extension, warnings were visible in the analysis log as follows:

An unnamed object of type 'FLEX_script' has been detected

This resulted in the creation of FLEX_Script objects with no name. This bug has now been fixed, therefore, after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: all FLEX_Script objects are now resolved correctly with their name and as such the existing unnamed objects will be reported as deleted and the objects now with names will be reported as newly added.

FLEX-10214008Analysis does not complete and is stuck processing a file.-
FLEX-107-No violations for "Avoid variable with too short name"This rule was not producing any violations. This bug has now been fixed, therefore after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: increased number of violations for this rule.
FLEX-124-Flex extension does not detect functions that have names with 3 or less charactersFlex functions that have names with 3 characters or less are now correctly resolved as objects. Therefore, after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: increased number of objects and potential for increased number of violations on these objects.
FLEX-125-An unnamed object is created when alias is given with single quote.

Aliases defined in code using single quote marks were being resolved as "unnamed" during the analysis - see code example below:

[RemoteClass(alias='example.src.com.company.service.Device')]

This bug has now been fixed, therefore after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: objects are now correctly resolved with their name when single quote marks are used.

FLEX-126-Unable to detect object end of Flex_Field

When using previous releases of the extension, sometimes it was not possible to detect the end of objects in the analyzed code. This resulted in:

  • objects such as FLEX Fields, Getters, Setters and Functions not being resolved
  • a warning in the analysis logs "Unable to detect object end for Flex_Field and Flex_Class"
  • incorrect bookmarks in code for rule violations.

This bug has been fixed and after an upgrade to Flex 1.1.0 and the generation of a post upgrade snapshot on unchanged source code, results may differ: object ends are detected correctly, thus increasing the number of objects detected and violations are correctly bookmarked in the code.