aws-samples / amazon-codeguru-reviewer-java-detectors
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 15% duplication:
    • 1,463 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 224 duplicated lines
  • 15 duplicates
system15% (224 lines)
Duplication per Extension
java15% (224 lines)
Duplication per Component (primary)
detectors/code_clone75% (66 lines)
detectors/amazon_sqs_enable_long_polling79% (64 lines)
detectors/mutually_exclusive_calls_found66% (20 lines)
detectors/ldap_injection51% (14 lines)
detectors/thread_safety_violation40% (12 lines)
detectors/amazon_s3_transfer_manager_shutdown70% (12 lines)
detectors/sql_injection63% (12 lines)
detectors/aws_dynamodb_getitem_null_check52% (12 lines)
detectors/thread_safety_class_violations54% (12 lines)
stubs0% (0 lines)
detectors/lambda_override_reserved0% (0 lines)
detectors/null_pointer_dereference0% (0 lines)
detectors/amazon_sqs_change_message_visibility_check_status0% (0 lines)
detectors/throw_exception_with_trace0% (0 lines)
detectors/javax_persistence_id0% (0 lines)
detectors/concurrency_over_synchronization0% (0 lines)
detectors/insecure_connection0% (0 lines)
detectors/aws_dynamodb_mapper_batch_output_ignored0% (0 lines)
detectors/code_injection0% (0 lines)
detectors/aws_parse_error_message0% (0 lines)
detectors/weak_random_number_generation0% (0 lines)
detectors/kcl_with_call_process_records0% (0 lines)
detectors/xpath_injection0% (0 lines)
detectors/missing_file_deletion_result_check0% (0 lines)
detectors/insecure_cors_policy0% (0 lines)
detectors/batches_preferred_over_loops0% (0 lines)
detectors/out_of_sync_input_and_output0% (0 lines)
detectors/untrusted_data_in_decision0% (0 lines)
detectors/aws_kms_reencryption0% (0 lines)
detectors/concurrency_atomicity_violation0% (0 lines)
detectors/s3_object_metadata_content_length_check0% (0 lines)
detectors/incorrect_null_check_before_setting0% (0 lines)
detectors/stream_anymatch_vs_findfirst0% (0 lines)
detectors/missing_position_check_before_substring0% (0 lines)
detectors/aws_region_enumeration0% (0 lines)
detectors/stream_min_max_vs_sort0% (0 lines)
detectors/amazon_s3_auto_paginated_with_prefix0% (0 lines)
detectors/sync_metric_publish0% (0 lines)
detectors/xml_external_entity0% (0 lines)
detectors/finalize_on_super_class0% (0 lines)
detectors/not_recommended_apis0% (0 lines)
detectors/deprecated_method0% (0 lines)
detectors/resource_leak0% (0 lines)
detectors/simple_date_format_time_zone0% (0 lines)
detectors/aws_inefficient_chain0% (0 lines)
detectors/missing_specifically_thrown_exception_handling0% (0 lines)
detectors/improper_locking0% (0 lines)
detectors/null_check_cache_response_metadata0% (0 lines)
detectors/aws_batch_write_output_ignored0% (0 lines)
detectors/s3_object_user_metadata_key_case_sensitivity0% (0 lines)
detectors/aws_custom_retries0% (0 lines)
detectors/http_response_splitting0% (0 lines)
detectors/iterate_on_map_entries0% (0 lines)
detectors/session_fixation0% (0 lines)
detectors/path_traversal0% (0 lines)
detectors/insecure_cookie0% (0 lines)
detectors/hardcoded_credentials0% (0 lines)
detectors/s3_verify_bucket_owner0% (0 lines)
detectors/cipher_update_aad0% (0 lines)
detectors/amazon_sqs_name_url0% (0 lines)
detectors/os_command_injection0% (0 lines)
detectors/weak_obfuscation_of_request0% (0 lines)
detectors/sensitive_information_leak0% (0 lines)
detectors/json_parser_length0% (0 lines)
detectors/incorrect_authentication_exploitation0% (0 lines)
detectors/mandatory_methods0% (0 lines)
detectors/loose_file_permissions0% (0 lines)
detectors/lambda_client_reuse0% (0 lines)
detectors/untrusted_ami_images0% (0 lines)
detectors/dynamodb_transaction_library0% (0 lines)
detectors/clear_text_credentials0% (0 lines)
detectors/file_syntax_error0% (0 lines)
detectors/concurrency_deadlock0% (0 lines)
detectors/untrusted_deserialization0% (0 lines)
detectors/client_constructor_deprecated_rule0% (0 lines)
detectors/reassign_synchronized_object0% (0 lines)
detectors/insecure_cryptography0% (0 lines)
detectors/ui_thread_starvation0% (0 lines)
detectors/aws_bad_params0% (0 lines)
detectors/log_injection0% (0 lines)
detectors/partial_encryption0% (0 lines)
detectors/insecure_temporary_file0% (0 lines)
detectors/ldap_authentication0% (0 lines)
detectors/aws_service_client_initialization0% (0 lines)
detectors/object_presence0% (0 lines)
detectors/infinite_loop0% (0 lines)
detectors/string_equality_check0% (0 lines)
detectors/aws_iam_error_prone_policy0% (0 lines)
detectors/cross_site_request_forgery0% (0 lines)
detectors/avoid_reset_exception_rule0% (0 lines)
detectors/string_format_arguments0% (0 lines)
Longest Duplicates
The list of 15 longest duplicates.
See data for all 15 duplicates...
Size#FoldersFilesLinesCode
24 x 2 src/java/detectors/amazon_sqs_enable_long_polling
src/java/detectors/amazon_sqs_enable_long_polling
AmazonSqsEnableLongPollingCompliant.java
AmazonSqsEnableLongPollingNoncomplian...
50:78 (58%)
49:77 (60%)
view
10 x 2 src/java/detectors/mutually_exclusive_calls_found
src/java/detectors/mutually_exclusive_calls_found
MutuallyExclusiveCallsFound.java
MutuallyExclusiveCallsFound.java
17:27 (33%)
37:47 (33%)
view
9 x 2 src/java/detectors/code_clone
src/java/detectors/code_clone
CodeCloneCompliant.java
CodeCloneNoncompliant.java
60:75 (20%)
60:74 (20%)
view
8 x 2 src/java/detectors/code_clone
src/java/detectors/code_clone
CodeCloneCompliant.java
CodeCloneNoncompliant.java
49:57 (18%)
43:51 (18%)
view
8 x 2 src/java/detectors/amazon_sqs_enable_long_polling
src/java/detectors/amazon_sqs_enable_long_polling
AmazonSqsEnableLongPollingCompliant.java
AmazonSqsEnableLongPollingNoncomplian...
39:47 (19%)
39:47 (20%)
view
8 x 2 src/java/detectors/code_clone
src/java/detectors/code_clone
CodeCloneNoncompliant.java
CodeCloneNoncompliant.java
22:31 (18%)
51:60 (18%)
view
7 x 2 src/java/detectors/ldap_injection
src/java/detectors/ldap_injection
LdapInjection.java
LdapInjection.java
24:31 (25%)
46:52 (25%)
view
7 x 2 src/java/detectors/code_clone
src/java/detectors/code_clone
CodeCloneCompliant.java
CodeCloneNoncompliant.java
18:24 (16%)
51:58 (15%)
view
7 x 2 src/java/detectors/code_clone
src/java/detectors/code_clone
CodeCloneCompliant.java
CodeCloneNoncompliant.java
18:24 (16%)
22:29 (15%)
view
6 x 2 src/java/detectors/amazo...ansfer_manager_shutdown
src/java/detectors/amazo...ansfer_manager_shutdown
AmazonS3TransferManagerShutdown.java
AmazonS3TransferManagerShutdown.java
18:24 (35%)
31:37 (35%)
view
6 x 2 src/java/detectors/code_clone
src/java/detectors/code_clone
CodeCloneCompliant.java
CodeCloneNoncompliant.java
37:44 (13%)
31:38 (13%)
view
6 x 2 src/java/detectors/thread_safety_violation
src/java/detectors/thread_safety_violation
ThreadSafetyViolationCompliant.java
ThreadSafetyViolationNoncompliant.java
13:24 (40%)
14:25 (40%)
view
6 x 2 src/java/detectors/aws_dynamodb_getitem_null_check
src/java/detectors/aws_dynamodb_getitem_null_check
AwsDynamodbGetitemNullCheck.java
AwsDynamodbGetitemNullCheck.java
22:27 (26%)
38:43 (26%)
view
6 x 2 src/java/detectors/sql_injection
src/java/detectors/sql_injection
SqlInjection.java
SqlInjection.java
15:21 (31%)
33:38 (31%)
view
6 x 2 src/java/detectors/thread_safety_class_violations
src/java/detectors/thread_safety_class_violations
ThreadSafetyClassViolationsCompliant....
ThreadSafetyClassViolationsNoncomplia...
16:26 (60%)
16:24 (50%)
view
Duplicated Units
The list of top 1 duplicated units.
See data for all 1 unit duplicate
Size#FoldersFilesLinesCode
6 x 2 src/java/detectors/concurrency_deadlock
src/java/detectors/concurrency_deadlock
ConcurrencyDeadlockNoncompliant.java
ConcurrencyDeadlockCompliant.java
16:23 
16:23 
view