SonarQube Issues Management Tools

For ad-hoc terminal triage, use python3 scripts/sonarqube.py <path> (or the /sonarqube Cursor command). For live-local IDE triage and quick-fix application, use the eclipse-warnings Cursor skill. The TSV-export workflow below is preserved for batch categorization but is no longer the primary path.

This directory contains tools for categorizing and managing SonarQube issues in the Apache Juneau project.

Overview

The Apache Juneau project has 3,116 SonarQube issues that have been categorized into 30 categories for systematic fixing.

Quick Start

1. View Category Summary

cd /Users/james.bognar/git/apache/juneau/master
cat SONARQUBE_ISSUES_SUMMARY.md

2. List All Categories

python3 scripts/view-sonar-category.py

3. View Specific Category Details

# View Security Issues (high priority)
python3 scripts/view-sonar-category.py "Security Issues"

# View with custom limit
python3 scripts/view-sonar-category.py "Brain Methods (Complexity)" --limit 5

4. Start Interactive Fixing Session

python3 scripts/categorize-sonar-issues.py /Users/james.bognar/Downloads/SonarQubeIssues.txt

Tools

categorize-sonar-issues.py

Main script for categorizing and interactively fixing SonarQube issues.

Usage:

python3 scripts/categorize-sonar-issues.py <sonarqube-issues-file> [--save-json]

Features:

  • Parses SonarQube TSV export file
  • Categorizes issues into 30 categories
  • Interactive session for fixing issues category by category
  • Saves categorized JSON for later reference

Options:

  • --save-json: Save categorized issues to JSON file

Interactive Commands:

  • fix - Start fixing issues in current category
  • skip - Move to next category
  • details - Show detailed issue information
  • list - List all categories
  • <number> - Jump to specific category number
  • quit - Exit

view-sonar-category.py

Helper script to view category details without interactive input.

Usage:

# List all categories
python3 scripts/view-sonar-category.py

# View specific category
python3 scripts/view-sonar-category.py "Category Name"

# View with limit
python3 scripts/view-sonar-category.py "Category Name" --limit 10

Recommended Workflow

Step 1: Review Summary

Read SONARQUBE_ISSUES_SUMMARY.md to understand:

  • Total issues and categories
  • Priority levels
  • Recommended fix order

Step 2: Explore Categories

# List all categories
python3 scripts/view-sonar-category.py

# Review high-priority categories
python3 scripts/view-sonar-category.py "Security Issues"
python3 scripts/view-sonar-category.py "Null Check Issues"
python3 scripts/view-sonar-category.py "Brain Methods (Complexity)"

Step 3: Start Fixing

Begin with high-priority categories:

python3 scripts/categorize-sonar-issues.py /Users/james.bognar/Downloads/SonarQubeIssues.txt

Then:

  1. Navigate to high-priority categories (Security, Null Checks, Brain Methods)
  2. For each category:
    • Review sample issues with details
    • Decide on fix strategy (auto-fix vs manual review)
    • Use fix to start fixing issues
    • Process by file (recommended) or individually

Step 4: Track Progress

The categorized JSON file (SonarQubeIssues.categorized.json) can be used to:

  • Track which categories have been fixed
  • Generate progress reports
  • Identify remaining issues

Category Priorities

High Priority (Fix First)

  • Security Issues (6 issues)
  • Null Check Issues (15 issues)
  • Brain Methods (Complexity) (30 issues)
  • Missing Exception Handling (1 issue)

Medium Priority

  • Exception Catching Issues (30 issues)
  • Generic Type Issues (121 issues)
  • Empty Method Implementations (99 issues)
  • Test Assertion Issues (61 issues)
  • Optional Access Issues (18 issues)
  • Code Duplication (16 issues)
  • ThreadLocal Cleanup Issues (7 issues)

Low Priority

  • Unused Code (96 issues)
  • Missing Private Constructors (91 issues)
  • All other categories

Fix Strategies

Auto-Fix Categories (Mechanical Fixes)

These can often be fixed automatically or with simple find/replace:

  • Missing @Override Annotations
  • Unnecessary toString() Calls
  • Missing Private Constructors
  • Line Separator Issues
  • Python f-string Issues

Manual Review Categories (Require Code Review)

These need careful review and testing:

  • Security Issues
  • Brain Methods (Complexity)
  • Null Check Issues
  • Exception Catching Issues
  • Code Duplication

Batch Fix Categories (Similar Patterns)

These can be fixed in batches:

  • Missing Private Constructors
  • Generic Type Issues
  • Field Shadowing
  • Unused Code

Files

  • SonarQubeIssues.txt - Original SonarQube export (TSV format)
  • SonarQubeIssues.categorized.json - Categorized issues (JSON format)
  • SONARQUBE_ISSUES_SUMMARY.md - Summary document
  • scripts/categorize-sonar-issues.py - Main categorization tool
  • scripts/view-sonar-category.py - Category viewer tool

Tips

  1. Start Small: Begin with categories that have few issues to build momentum
  2. Batch Similar Fixes: Group similar issues together for efficient fixing
  3. Test After Each Category: Run tests after fixing each category
  4. Use Version Control: Commit fixes category by category for easier review
  5. Document Decisions: For “Empty Method Implementations” and similar categories, document why methods are intentionally empty

Example Session

# 1. View summary
cat SONARQUBE_ISSUES_SUMMARY.md

# 2. Check Security Issues (high priority, only 6 issues)
python3 scripts/view-sonar-category.py "Security Issues"

# 3. Start interactive session
python3 scripts/categorize-sonar-issues.py /Users/james.bognar/Downloads/SonarQubeIssues.txt

# In interactive session:
# > list                    # See all categories
# > 1                       # Jump to Security Issues
# > details                 # See issue details
# > fix                     # Start fixing
# > [choose file mode]     # Process by file
# > auto                    # Auto-fix each issue
# > skip                    # Move to next category

Support

For questions or issues with these tools, refer to:

  • SONARQUBE_ISSUES_SUMMARY.md - Detailed category descriptions
  • The categorized JSON file for complete issue details