Skip to content

CAMEL-21438: Re-enable disabled flaky FTPS and netty-http tests#23078

Merged
davsclaus merged 1 commit into
apache:mainfrom
gnodet:fix-disabled-flaky-tests
May 9, 2026
Merged

CAMEL-21438: Re-enable disabled flaky FTPS and netty-http tests#23078
davsclaus merged 1 commit into
apache:mainfrom
gnodet:fix-disabled-flaky-tests

Conversation

@gnodet
Copy link
Copy Markdown
Contributor

@gnodet gnodet commented May 8, 2026

CAMEL-21438

Summary

  • Re-enable 12 FTPS integration tests (camel-ftp) disabled since 2021 (CAMEL-16784). Migrated from SSLv3 (disabled in JDK 17+) to TLSv1.2. Restores FTPS test coverage that was completely absent for 4+ years.
  • Re-enable 15 ProxyProtocolTest tests (camel-netty-http, CAMEL-16718) by fixing the uppercase() processor to use String conversion instead of manual ByteBuf ref-count management, which caused a double-release.
  • Keep 5 TLS 1.3 FTPS tests disabled with accurate annotation — embedded Apache FtpServer does not support TLS 1.3.
  • Update misleading @Disabled annotations on 16 tests whose JIRAs are resolved but tests should remain disabled (csimple-joor code-gen limitations, olingo4 deprecated/Attic, xchange missing WireMock coverage).

Details

camel-ftp (17 files)

The FTPS tests were blanket-disabled in 2021 via CAMEL-16784, leaving zero FTPS integration test coverage. The root cause was SSLv3 being disabled in modern JDKs. This PR:

  • Changes AUTH_VALUE_SSL from "SSLv3" to "TLSv1.2"
  • Updates all test URLs, FTPSClient constructors, and SSLContextParameters accordingly
  • Removes @Disabled("CAMEL-16784") from 7 parent test classes (+ 5 SSLContextParameters subclasses inherit the re-enabled test)
  • Adds @EnabledIf(FtpsUtil#hasRequiredAlgorithms) guard to FileToFtpsExplicitSSLWithClientAuthIT

camel-netty-http (1 file)

ProxyProtocolTest was disabled since CAMEL-16718 due to a ByteBuf double-release. The uppercase() processor manually called body.release() on a ByteBuf obtained via type conversion, but Camel also managed the lifecycle — causing a ref-count error. Fix: use String type conversion and let Camel handle ByteBuf lifecycle.

Annotation updates (5 files)

Updated @Disabled reasons on 16 tests across csimple-joor, olingo4, and xchange to accurately reflect why they remain disabled (previously referenced resolved JIRAs with no explanation).

Test plan

  • All 12 re-enabled FTPS tests pass locally
  • All 15 re-enabled ProxyProtocolTest tests pass locally
  • Both test suites verified stable over 100 consecutive iterations (2700 total executions, 0 failures)
  • All modules compile cleanly
  • Code formatted with mvn formatter:format impsort:sort
  • CI green

Claude Code on behalf of Guillaume Nodet

@gnodet gnodet requested review from davsclaus and oscerd May 8, 2026 07:44
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

- Re-enable 12 FTPS integration tests (camel-ftp) that were disabled
  since 2021 (CAMEL-16784). Migrated from SSLv3 (disabled in JDK 17+)
  to TLSv1.2. This restores FTPS test coverage that was completely
  absent for 4+ years.
- Re-enable ProxyProtocolTest (camel-netty-http, CAMEL-16718) by fixing
  the uppercase() processor to use String conversion instead of manual
  ByteBuf ref-count management, which caused a double-release detected
  by Camel's error handling.
- Keep 5 TLS 1.3 FTPS tests disabled with accurate annotation (embedded
  Apache FtpServer does not support TLS 1.3).
- Update misleading @disabled annotations on 16 tests whose JIRAs are
  resolved but tests should remain disabled:
  - camel-csimple-joor (11): csimple code generator limitations
  - camel-olingo4 (2): component deprecated, upstream in Apache Attic
  - camel-xchange (3): WireMock does not cover Binance futures API

All re-enabled tests verified stable over 100 consecutive iterations
(2700 total executions, 0 failures).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davsclaus davsclaus force-pushed the fix-disabled-flaky-tests branch from 870e02f to cc06576 Compare May 9, 2026 06:43
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 9, 2026

🧪 CI tested the following changed modules:

  • components/camel-csimple-joor
  • components/camel-ftp
  • components/camel-netty-http
  • components/camel-olingo4/camel-olingo4-api
  • components/camel-xchange

ℹ️ Dependent modules were not tested because the total number of affected modules exceeded the threshold (50). Use the test-dependents label to force testing all dependents.

Build reactor — dependencies compiled but only changed modules were tested (5 modules)
  • Camel :: FTP
  • Camel :: Netty HTTP
  • Camel :: Olingo4 (Deprecated) :: API
  • Camel :: XChange
  • Camel :: csimple jOOR (deprecated)

⚙️ View full build and test results

@davsclaus davsclaus merged commit d5cb71d into apache:main May 9, 2026
6 checks passed
apupier added a commit that referenced this pull request May 19, 2026
Several FTP tests were re-enabled recently with
#23078 but unfortunately several are
broken. They always fail on CI or when launching from Maven locally (at
least for me)
Also note that some of them are disabled in case the JVM does not
support specific algorithm, which means that they are not raising an
error in this case.

Signed-off-by: Aurélien Pupier <apupier@ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants