Fork me on GitHub

PMD Results

The following document contains the results of PMD 7.7.0.

Violations By Priority

Priority 3

gov/nist/secauto/metaschema/databind/codegen/ModuleCompilerHelper.java

Rule Violation Line
CognitiveComplexity The method 'compileModule(IModule, Path, IBindingConfiguration)' has a cognitive complexity of 16, current threshold is 15 112
CyclomaticComplexity The method 'compileModule(IModule, Path, IBindingConfiguration)' has a cyclomatic complexity of 11. 112

gov/nist/secauto/metaschema/databind/codegen/typeinfo/ChoiceGroupTypeInfoImpl.java

Rule Violation Line
CyclomaticComplexity The method 'buildBindingAnnotation(Builder, Builder, Builder)' has a cyclomatic complexity of 10. 54
NPathComplexity The method 'buildBindingAnnotation(Builder, Builder, Builder)' has an NPath complexity of 288, current threshold is 200 54

gov/nist/secauto/metaschema/databind/io/DefaultBoundLoader.java

Rule Violation Line
CouplingBetweenObjects A value of 22 may denote a high amount of coupling within the class (threshold: 20) 6268

gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonReader.java

Rule Violation Line
CouplingBetweenObjects A value of 37 may denote a high amount of coupling within the class (threshold: 20) 6861
GodClass Possible God Class (WMC=55, ATFD=50, TCC=1.333%) 58
CloseResource Ensure that resources like this JsonParser object are closed after use 148
CyclomaticComplexity The method 'readObjectRoot(IBoundDefinitionModelComplex, String)' has a cyclomatic complexity of 12. 177
CloseResource Ensure that resources like this JsonParser object are closed after use 180
CloseResource Ensure that resources like this JsonParser object are closed after use 457
CloseResource Ensure that resources like this JsonParser object are closed after use 509
CloseResource Ensure that resources like this JsonParser object are closed after use 556
CloseResource Ensure that resources like this JsonParser object are closed after use 726
CloseResource Ensure that resources like this JsonParser object are closed after use 755
DataClass The class 'MetaschemaData' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=5) 820

gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonWriter.java

Rule Violation Line
GodClass Possible God Class (WMC=50, ATFD=29, TCC=21.429%) 39
CyclomaticComplexity The method 'writeFieldValue(IBoundFieldValue, Object)' has a cyclomatic complexity of 10. 102

gov/nist/secauto/metaschema/databind/io/xml/MetaschemaXmlReader.java

Rule Violation Line
CouplingBetweenObjects A value of 39 may denote a high amount of coupling within the class (threshold: 20) 6677

gov/nist/secauto/metaschema/databind/io/xml/MetaschemaXmlWriter.java

Rule Violation Line
CouplingBetweenObjects A value of 31 may denote a high amount of coupling within the class (threshold: 20) 6400

gov/nist/secauto/metaschema/databind/model/impl/AssemblyModelContainerSupport.java

Rule Violation Line
CyclomaticComplexity The constructor 'AssemblyModelContainerSupport(DefinitionAssembly)' has a cyclomatic complexity of 10. 59

gov/nist/secauto/metaschema/databind/model/impl/InstanceModelFieldComplex.java

Rule Violation Line
CyclomaticComplexity The method 'newInstance(Field, DefinitionField, IBoundDefinitionModelAssembly)' has a cyclomatic complexity of 12. 80
CognitiveComplexity The constructor 'InstanceModelFieldComplex(Field, BoundField, IGroupAs, DefinitionField, IBoundDefinitionModelAssembly)' has a cognitive complexity of 16, current threshold is 15 136

gov/nist/secauto/metaschema/databind/model/info/IModelInstanceCollectionInfo.java

Rule Violation Line
CognitiveComplexity The method 'of(IBoundInstanceModel<T>)' has a cognitive complexity of 19, current threshold is 15 29
CyclomaticComplexity The method 'of(IBoundInstanceModel<T>)' has a cyclomatic complexity of 17. 29

gov/nist/secauto/metaschema/databind/model/metaschema/BindingConstraintLoader.java

Rule Violation Line
CouplingBetweenObjects A value of 40 may denote a high amount of coupling within the class (threshold: 20) 6405
CognitiveComplexity The method 'parseResource(URI, Deque<URI>)' has a cognitive complexity of 20, current threshold is 15 86
CyclomaticComplexity The method 'parseResource(URI, Deque<URI>)' has a cyclomatic complexity of 12. 86
CyclomaticComplexity The method 'parseScopedConstraints(MetaschemaModuleConstraints, ISource)' has a cyclomatic complexity of 10. 182

gov/nist/secauto/metaschema/databind/model/metaschema/impl/BindingConstants.java

Rule Violation Line
DataClass The class 'BindingConstants' is suspected to be a Data Class (WOC=0.000%, NOPA=7, NOAM=0, WMC=1) 9

gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java

Rule Violation Line
CyclomaticComplexity The constructor 'ChoiceGroupModelContainerSupport(ChoiceGroup, IBoundInstanceModelGroupedAssembly, IChoiceGroupInstance, INodeItemFactory)' has a cyclomatic complexity of 10. 81

gov/nist/secauto/metaschema/databind/model/metaschema/impl/ConstraintBindingSupport.java

Rule Violation Line
GodClass Possible God Class (WMC=70, ATFD=50, TCC=0.000%) 62

Files

gov/nist/secauto/metaschema/databind/codegen/ModuleCompilerHelper.java

Rule Violation Priority Line
CognitiveComplexity The method 'compileModule(IModule, Path, IBindingConfiguration)' has a cognitive complexity of 16, current threshold is 15 3 112
CyclomaticComplexity The method 'compileModule(IModule, Path, IBindingConfiguration)' has a cyclomatic complexity of 11. 3 112

gov/nist/secauto/metaschema/databind/codegen/typeinfo/ChoiceGroupTypeInfoImpl.java

Rule Violation Priority Line
CyclomaticComplexity The method 'buildBindingAnnotation(Builder, Builder, Builder)' has a cyclomatic complexity of 10. 3 54
NPathComplexity The method 'buildBindingAnnotation(Builder, Builder, Builder)' has an NPath complexity of 288, current threshold is 200 3 54

gov/nist/secauto/metaschema/databind/io/DefaultBoundLoader.java

Rule Violation Priority Line
CouplingBetweenObjects A value of 22 may denote a high amount of coupling within the class (threshold: 20) 3 6268

gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonReader.java

Rule Violation Priority Line
CouplingBetweenObjects A value of 37 may denote a high amount of coupling within the class (threshold: 20) 3 6861
GodClass Possible God Class (WMC=55, ATFD=50, TCC=1.333%) 3 58
CloseResource Ensure that resources like this JsonParser object are closed after use 3 148
CyclomaticComplexity The method 'readObjectRoot(IBoundDefinitionModelComplex, String)' has a cyclomatic complexity of 12. 3 177
CloseResource Ensure that resources like this JsonParser object are closed after use 3 180
CloseResource Ensure that resources like this JsonParser object are closed after use 3 457
CloseResource Ensure that resources like this JsonParser object are closed after use 3 509
CloseResource Ensure that resources like this JsonParser object are closed after use 3 556
CloseResource Ensure that resources like this JsonParser object are closed after use 3 726
CloseResource Ensure that resources like this JsonParser object are closed after use 3 755
DataClass The class 'MetaschemaData' is suspected to be a Data Class (WOC=0.000%, NOPA=0, NOAM=4, WMC=5) 3 820

gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonWriter.java

Rule Violation Priority Line
GodClass Possible God Class (WMC=50, ATFD=29, TCC=21.429%) 3 39
CyclomaticComplexity The method 'writeFieldValue(IBoundFieldValue, Object)' has a cyclomatic complexity of 10. 3 102

gov/nist/secauto/metaschema/databind/io/xml/MetaschemaXmlReader.java

Rule Violation Priority Line
CouplingBetweenObjects A value of 39 may denote a high amount of coupling within the class (threshold: 20) 3 6677

gov/nist/secauto/metaschema/databind/io/xml/MetaschemaXmlWriter.java

Rule Violation Priority Line
CouplingBetweenObjects A value of 31 may denote a high amount of coupling within the class (threshold: 20) 3 6400

gov/nist/secauto/metaschema/databind/model/impl/AssemblyModelContainerSupport.java

Rule Violation Priority Line
CyclomaticComplexity The constructor 'AssemblyModelContainerSupport(DefinitionAssembly)' has a cyclomatic complexity of 10. 3 59

gov/nist/secauto/metaschema/databind/model/impl/InstanceModelFieldComplex.java

Rule Violation Priority Line
CyclomaticComplexity The method 'newInstance(Field, DefinitionField, IBoundDefinitionModelAssembly)' has a cyclomatic complexity of 12. 3 80
CognitiveComplexity The constructor 'InstanceModelFieldComplex(Field, BoundField, IGroupAs, DefinitionField, IBoundDefinitionModelAssembly)' has a cognitive complexity of 16, current threshold is 15 3 136

gov/nist/secauto/metaschema/databind/model/info/IModelInstanceCollectionInfo.java

Rule Violation Priority Line
CognitiveComplexity The method 'of(IBoundInstanceModel<T>)' has a cognitive complexity of 19, current threshold is 15 3 29
CyclomaticComplexity The method 'of(IBoundInstanceModel<T>)' has a cyclomatic complexity of 17. 3 29

gov/nist/secauto/metaschema/databind/model/metaschema/BindingConstraintLoader.java

Rule Violation Priority Line
CouplingBetweenObjects A value of 40 may denote a high amount of coupling within the class (threshold: 20) 3 6405
CognitiveComplexity The method 'parseResource(URI, Deque<URI>)' has a cognitive complexity of 20, current threshold is 15 3 86
CyclomaticComplexity The method 'parseResource(URI, Deque<URI>)' has a cyclomatic complexity of 12. 3 86
CyclomaticComplexity The method 'parseScopedConstraints(MetaschemaModuleConstraints, ISource)' has a cyclomatic complexity of 10. 3 182

gov/nist/secauto/metaschema/databind/model/metaschema/impl/BindingConstants.java

Rule Violation Priority Line
DataClass The class 'BindingConstants' is suspected to be a Data Class (WOC=0.000%, NOPA=7, NOAM=0, WMC=1) 3 9

gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java

Rule Violation Priority Line
CyclomaticComplexity The constructor 'ChoiceGroupModelContainerSupport(ChoiceGroup, IBoundInstanceModelGroupedAssembly, IChoiceGroupInstance, INodeItemFactory)' has a cyclomatic complexity of 10. 3 81

gov/nist/secauto/metaschema/databind/model/metaschema/impl/ConstraintBindingSupport.java

Rule Violation Priority Line
GodClass Possible God Class (WMC=70, ATFD=50, TCC=0.000%) 3 62

Suppressed Violations

Filename Rule message Suppression type Reason
gov/nist/secauto/metaschema/databind/AbstractModuleLoaderStrategy.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/AbstractModuleLoaderStrategy.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/AbstractModuleLoaderStrategy.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/DefaultBindingContext.java A value of 23 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/IBindingContext.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/codegen/IProduction.java Avoid using short method names //nopmd - intentional
gov/nist/secauto/metaschema/databind/codegen/IProduction.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation //nopmd - no concurrency
gov/nist/secauto/metaschema/databind/codegen/IProduction.java Avoid instantiating new objects inside loops //nopmd - intentional
gov/nist/secauto/metaschema/databind/codegen/ProductionImpl.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation //nopmd - immutable
gov/nist/secauto/metaschema/databind/codegen/ProductionImpl.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation //nopmd - immutable
gov/nist/secauto/metaschema/databind/codegen/impl/AnnotationGenerator.java A value of 37 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/codegen/impl/AnnotationGenerator.java Possible God Class (WMC=78, ATFD=94, TCC=0.735%) @suppresswarnings
gov/nist/secauto/metaschema/databind/codegen/impl/AnnotationGenerator.java Assigning an Object to null is a code smell. Consider refactoring. //nopmd readability
gov/nist/secauto/metaschema/databind/codegen/typeinfo/ChoiceGroupTypeInfoImpl.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/codegen/typeinfo/ChoiceGroupTypeInfoImpl.java Avoid instantiating new objects inside loops //nopmd needed
gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block //nopmd - intended
gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java A value of 31 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/codegen/typeinfo/DefaultTypeResolver.java A value of 31 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/io/AbstractDeserializer.java Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block //nopmd - this is intentional
gov/nist/secauto/metaschema/databind/io/DefaultBoundLoader.java Assigning an Object to null is a code smell. Consider refactoring. @suppresswarnings
gov/nist/secauto/metaschema/databind/io/DeserializationFeature.java The class 'DeserializationFeature' is suspected to be a Data Class (WOC=0.000%, NOPA=7, NOAM=0, WMC=1) @suppresswarnings
gov/nist/secauto/metaschema/databind/io/ModelDetector.java Assigning an Object to null is a code smell. Consider refactoring. @suppresswarnings
gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonReader.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation //nopmd not concurrent
gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonReader.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonWriter.java A value of 31 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/io/json/MetaschemaJsonWriter.java Assigning an Object to null is a code smell. Consider refactoring. @suppresswarnings
gov/nist/secauto/metaschema/databind/io/xml/DefaultXmlSerializer.java A throw statement in a finally block makes the control flow hard to understand. //nopmd - exception handling is needed
gov/nist/secauto/metaschema/databind/metapath/function/Model.java A method should have only one exit point, and that should be the last statement in the method @suppresswarnings
gov/nist/secauto/metaschema/databind/metapath/function/Model.java A method should have only one exit point, and that should be the last statement in the method @suppresswarnings
gov/nist/secauto/metaschema/databind/model/IBoundDefinitionModelFieldComplex.java Assigning an Object to null is a code smell. Consider refactoring. @suppresswarnings
gov/nist/secauto/metaschema/databind/model/IBoundDefinitionModelFieldComplex.java Assigning an Object to null is a code smell. Consider refactoring. @suppresswarnings
gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java You should not modify visibility of constructors, methods or fields using setAccessible() //nopmd - intentional
gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java You should not modify visibility of constructors, methods or fields using setAccessible() //nopmd - intentional
gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java You should not modify visibility of constructors, methods or fields using setAccessible() //nopmd - intentional
gov/nist/secauto/metaschema/databind/model/IFeatureJavaField.java You should not modify visibility of constructors, methods or fields using setAccessible() //nopmd - intentional
gov/nist/secauto/metaschema/databind/model/annotations/AllowedValues.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/Expect.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/HasCardinality.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/Index.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/IndexHasKey.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/IsUnique.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/Matches.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/annotations/ModelUtil.java Assigning an Object to null is a code smell. Consider refactoring. //nopmd - intentional
gov/nist/secauto/metaschema/databind/model/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/ConstraintFactory.java A value of 41 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/ConstraintFactory.java Assigning an Object to null is a code smell. Consider refactoring. @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/DefinitionAssembly.java A value of 22 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/DefinitionField.java A value of 24 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/FlagContainerSupport.java Use asList instead of tight loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/impl/InstanceModelChoiceGroup.java A value of 24 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/model/info/IFeatureComplexItemValueHandler.java Avoid throwing raw exception types. @suppresswarnings
gov/nist/secauto/metaschema/databind/model/info/IFeatureComplexItemValueHandler.java Avoid throwing raw exception types. @suppresswarnings
gov/nist/secauto/metaschema/databind/model/info/IModelInstanceCollectionInfo.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/BindingConstraintLoader.java Avoid instantiating new objects inside loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/AssemblyModelContainerSupport.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/AssemblyModelContainerSupport.java The constructor 'AssemblyModelContainerSupport(AssemblyModel, IBoundInstanceModelAssembly, IBindingDefinitionModelAssembly, INodeItemFactory)' has an NPath complexity of 448, current threshold is 200 @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/AssemblyModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/BindingModule.java A value of 33 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/BindingModule.java Avoid instantiating new objects inside loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/BindingModule.java Avoid instantiating new objects inside loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/BindingModule.java Avoid instantiating new objects inside loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java Avoid instantiating new objects inside loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceGroupModelContainerSupport.java Avoid instantiating new objects inside loops @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceModelContainerSupport.java Avoid using short method names @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ChoiceModelContainerSupport.java If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/ConstraintBindingSupport.java A value of 49 may denote a high amount of coupling within the class (threshold: 20) @suppresswarnings
gov/nist/secauto/metaschema/databind/model/metaschema/impl/FlagContainerSupport.java A method should have only one exit point, and that should be the last statement in the method @suppresswarnings