Skip to content

[🧬 Duplicate Code Report 🔍] Duplicate Code: Response Building Pattern in SecurityDependencyDemoController #113

@github-actions

Description

@github-actions

🔍 Duplicate Code Detected: Response Building Pattern

Analysis of recent commits — 2026-06-17

Assignee: @copilot

Summary

Los tres métodos de SecurityDependencyDemoController repiten el mismo bloque de construcción de respuesta (LinkedHashMap<String, Object>) con las claves mode y dependency. Este patrón se repite 3 veces y supera el umbral de >10 líneas duplicadas.

Duplication Details

Pattern: Identical response-map construction across 3 controller methods

  • Severity: Medium
  • Occurrences: 3
  • Locations:
    • src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (lines 24-29)
    • src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (lines 37-43)
    • src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (lines 47-53)
  • Code Sample:
    // Repeated in all 3 methods:
    Map<String, Object> response = new LinkedHashMap<>();
    response.put("mode", "...");
    response.put("dependency", "...");
    // ... additional entries
    return response;

Impact Analysis

  • Maintainability: Añadir o renombrar una clave en la respuesta requiere modificar 3 métodos.
  • Bug Risk: Un cambio inconsistente en uno de los métodos puede generar respuestas JSON con estructura diferente.
  • Code Bloat: ~12 líneas de código estructural duplicado que pueden centralizarse.

Refactoring Recommendations

  1. Extraer un método privado buildResponse

    • Crear private Map<String, Object> buildResponse(String mode, String dependency, Map<String, Object> extras) en el mismo controlador.
    • Estimated effort: 30 min
    • Benefits: Estructura de respuesta consistente, un único punto de cambio.
  2. Usar un record/DTO de respuesta

    • Crear DemoResponse como record Java con campos mode, dependency, y data.
    • Estimated effort: 1h
    • Benefits: Tipado fuerte, serialización uniforme.

Implementation Checklist

  • Revisar las ubicaciones de duplicación
  • Extraer método helper buildResponse o crear DTO
  • Actualizar los 3 métodos para usar la abstracción
  • Verificar que los tests existentes siguen pasando
  • Confirmar que la estructura JSON de respuesta no cambia

Analysis Metadata

  • Analyzed Files: 7 (src/main/java/com/example/demo/**)
  • Detection Method: Semantic code analysis
  • Analysis Date: 2026-06-17

Generated by Duplicate Code Detector · sonnet46 779.3K ·

Add this agentic workflows to your repo

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/duplicate-code-detector.md@298f992955146a6731d380a9de808e17861708e5
  • expires on Jun 19, 2026, 1:35 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions