You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Andrea Cosentino (Jira)" <ji...@apache.org> on 2026/09/17 07:56:00 UTC
[jira] [Resolved] (CAMEL-24764) camel-huaweicloud-obs: close the downloaded object stream (connection leak) and fix putObject bucket-creation, charset and proxy-port issues
[ https://issues.apache.org/jira/browse/CAMEL-24764?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrea Cosentino resolved CAMEL-24764.
--------------------------------------
Resolution: Fixed
> camel-huaweicloud-obs: close the downloaded object stream (connection leak) and fix putObject bucket-creation, charset and proxy-port issues
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24764
> URL: https://issues.apache.org/jira/browse/CAMEL-24764
> Project: Camel
> Issue Type: Bug
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.23.0
>
>
> Several functional issues in camel-huaweicloud-obs, found by a gap audit (all verified against main):
> * HIGH: OBSUtils.mapObsObject downloads the object via toBytes(obsObject.getObjectContent()) but toBytes uses IOHelper.copy, which does NOT close its input. The Huawei SDK content stream holds a pooled HTTP connection, so every producer getObject and every consumer-polled object leaks a connection, eventually exhausting the pool on a long-running consumer. Fix: close the content stream (try-with-resources / copyAndCloseInput).
> * MED: OBSProducer.putObject creates the bucket when missing but calls OBSRegion.checkValidRegion(bucketLocation) without defaulting an empty location, unlike createBucket which defaults to DEFAULT_LOCATION first; putObject into a not-yet-existing bucket without bucketLocation fails with a confusing empty-regionId error. Fix: mirror createBucket default.
> * LOW: OBSProducer download debug log passes bucketLocation where bucketName is meant (logs from bucket null).
> * LOW: OBSProducer uploads a String body with the platform-default charset; use UTF-8.
> * LOW: the proxy guard uses ObjectHelper.isNotEmpty(getProxyPort()) on a primitive int (always true), so proxyHost set with proxyPort omitted configures a proxy on port 0. Fix: getProxyPort() > 0.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)