Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 21, 2025

Java 17's stricter type inference cannot automatically infer the return type of jdbcTemplate.queryForObject() when used with older Spring Framework versions, causing 32 compilation errors across DAO test files.

Changes

Added explicit type casts to all queryForObject() calls returning Integer:

// Before
Integer count = jdbcTemplate.queryForObject(sqlStr, Integer.class);

// After  
Integer count = (Integer) jdbcTemplate.queryForObject(sqlStr, Integer.class);

Files Modified

  • AlgorithmDAOTest.java (2 occurrences)
  • StudyDAOTest.java (2 occurrences)
  • UserDAOTest.java (3 occurrences)
  • SubmissionDAOTest.java (3 occurrences)
  • AnalyzedDataDAOTest.java (2 occurrences)
  • PersonDAOTest.java (2 occurrences)
  • MatrixDAOTest.java (3 occurrences)
  • PhyloTreeDAOTest.java (15 occurrences)

Total: 32 fixes across 8 test files

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • download.osgeo.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/treebase/treebase org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/treebase/treebase org.codehaus.plexus.classworlds.launcher.Launcher test-compile (dns block)
  • repository.gbif.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/treebase/treebase org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/treebase/treebase org.codehaus.plexus.classworlds.launcher.Launcher test-compile (dns block)
  • repository.jboss.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/treebase/treebase org.codehaus.plexus.classworlds.launcher.Launcher clean compile -DskipTests (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/treebase/treebase org.codehaus.plexus.classworlds.launcher.Launcher test-compile (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Fix this:

Error:  COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/AlgorithmDAOTest.java:[60,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/AlgorithmDAOTest.java:[93,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/StudyDAOTest.java:[267,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/StudyDAOTest.java:[277,66] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/admin/UserDAOTest.java:[87,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/admin/UserDAOTest.java:[96,66] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/admin/UserDAOTest.java:[133,66] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/SubmissionDAOTest.java:[106,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/SubmissionDAOTest.java:[139,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/SubmissionDAOTest.java:[162,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/AnalyzedDataDAOTest.java:[90,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/study/AnalyzedDataDAOTest.java:[126,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/admin/PersonDAOTest.java:[79,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/admin/PersonDAOTest.java:[88,66] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/matrix/MatrixDAOTest.java:[69,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/matrix/MatrixDAOTest.java:[79,52] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/matrix/MatrixDAOTest.java:[212,64] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/tree/PhyloTreeDAOTest.java:[122,68] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/tree/PhyloTreeDAOTest.java:[168,68] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/tree/PhyloTreeDAOTest.java:[211,64] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/tree/PhyloTreeDAOTest.java:[332,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/tree/PhyloTreeDAOTest.java:[340,66] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/org/cipres/treebase/dao/tree/PhyloTreeDAOTest.java:[431,60] incompatible types: java.lang.Object cannot be converted to java.lang.Integer
Error:  /home/runner/work/treebase/treebase/treebase-core/src/test/java/...

</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

✨ Let Copilot coding agent [set things up for you](https://github.com/TreeBASE/treebase/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI changed the title [WIP] Fix incompatible types compilation errors in DAO tests Fix Java 17 type inference incompatibility with Spring JDBC queryForObject Dec 21, 2025
Copilot AI requested a review from rvosa December 21, 2025 16:13
@rvosa rvosa marked this pull request as ready for review December 21, 2025 16:15
@rvosa rvosa merged commit 813deb9 into master Dec 21, 2025
0 of 2 checks passed
@rvosa rvosa deleted the copilot/fix-incompatible-types-error branch December 21, 2025 16:15
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