Skip to content

Resolve column name in ResultSetIterator.set (1.X) - #428

Merged
garydgregory merged 1 commit into
apache:1.Xfrom
rootvector2:resultsetiterator-set-column-name-1.x
Jul 24, 2026
Merged

Resolve column name in ResultSetIterator.set (1.X)#428
garydgregory merged 1 commit into
apache:1.Xfrom
rootvector2:resultsetiterator-set-column-name-1.x

Conversation

@rootvector2

Copy link
Copy Markdown
Contributor

Port of #426 to 1.X. set passes the raw lower-cased property name to ResultSet.updateObject while the read path resolves it through getColumnName first, so under the default lowerCase an update to a mixed-case column targets the wrong column or throws on a case-sensitive driver.

Same one-line fix and regression test as master, with the test adapted to the JUnit 3 style on this branch (and using AtomicReference per the review on #426). DynaResultSetTest.testSetUsesColumnName fails on clean 1.X with expected:<string[P]roperty> but was:<string[p]roperty> and passes with the change.

Note: as on #417, mvn on a clean 1.X checkout fails LocaleBeanificationTest#testContextClassloaderIndependence in my environment (it passes in isolation), so no fully green default-goal run locally; the failure is identical with and without this change. apache-rat:check and checkstyle:check pass.

  • Read the contribution guidelines for this project.
  • Read the ASF Generative Tooling Guidance if you use Artificial Intelligence (AI).
  • I used AI to create any part of, or all of, this pull request. Which AI tool was used to create this pull request, and to what extent did it contribute?
  • Run a successful build using the default Maven goal with mvn; that's mvn on the command line by itself.
  • Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible, but it is a best practice.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Each commit in the pull request should have a meaningful subject line and body. Note that a maintainer may squash commits during the merge process.

port of apache#426. the read path resolves the dyna-property name to the real column name via getColumnName, but set passed the raw name to updateObject, so with the default lowerCase a mixed-case column update targeted the wrong column. Same fix and regression test as master, adapted to the JUnit 3 style on this branch.
@garydgregory garydgregory changed the title resolve column name in ResultSetIterator.set (1.X) Resolve column name in ResultSetIterator.set (1.X) Jul 24, 2026
@garydgregory
garydgregory merged commit be3bfa3 into apache:1.X Jul 24, 2026
8 checks passed
garydgregory added a commit that referenced this pull request Jul 24, 2026
- Use the generics diamond notation.
- Sort members.
- Reduce vertical whitespace.
*/
public void testSetUsesColumnName() throws Exception {

final AtomicReference<String> updatedColumn = new AtomicReference<String>();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rootvector2
In the future, you do not need the extra generics noise, you can simply say:

final AtomicReference<String> updatedColumn = new AtomicReference<>();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants