Skip to content

MLE-23146 Address compile warnings in src/main/java #1809

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 24, 2025

Conversation

rjrudin
Copy link
Contributor

@rjrudin rjrudin commented Jul 24, 2025

Copilot got a little carried away and knocked out some issues in src/test/java too. More to come after this PR.

Addresses unchecked and deprecation warnings by:

  • Adding compiler arguments to include deprecation details.
  • Removing unnecessary finalize() methods.
  • Replacing raw types with parameterized types in test classes.
  • Replacing StringBuffer with StringBuilder.
  • Using isEmpty() instead of checking length > 0.
  • Replacing Boolean constructor with boolean literal.
  • Various other minor code improvements.

@Copilot Copilot AI review requested due to automatic review settings July 24, 2025 18:07
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR addresses compile warnings in the MarkLogic Java Client codebase by removing deprecated method usage, eliminating unsafe operations, and modernizing code patterns. The changes primarily focus on resolving unchecked warnings, replacing deprecated Jackson methods, and updating deprecated Java language features.

  • Updates Jackson methods from deprecated reader() to readerFor(), enableDefaultTyping() to activateDefaultTyping(), and getCurrentName() to currentName()
  • Removes unnecessary finalize() methods and replaces deprecated object instantiation patterns
  • Adds appropriate @SuppressWarnings annotations for unavoidable unchecked operations and updates Kotlin version

Reviewed Changes

Copilot reviewed 49 out of 51 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java Replace length check with isEmpty() for string validation
ml-development-tools/build.gradle Update Kotlin version from 1.9.24 to 2.1.0
marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/QueryBatcherTest.java Replace empty string check with isEmpty() and use diamond operator
marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java Replace Hashtable with ConcurrentHashMap
marklogic-client-api/src/test/java/com/marklogic/client/test/SPARQLManagerTest.java Update deprecated Jackson reader() method
marklogic-client-api/src/test/java/com/marklogic/client/test/JacksonDatabindTest.java Update deprecated Jackson methods and type safety
marklogic-client-api/src/main/java/com/marklogic/client/pojo/PojoRepository.java Add @SuppressWarnings for varargs method
marklogic-client-api/src/main/java/com/marklogic/client/io/marker/StreamingContentHandle.java Add @SuppressWarnings for unchecked cast
marklogic-client-api/src/main/java/com/marklogic/client/io/marker/ContentHandle.java Replace deprecated newInstance() with getDeclaredConstructor().newInstance()
marklogic-client-api/src/main/java/com/marklogic/client/io/JacksonDatabindHandle.java Add @SuppressWarnings annotations for unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java Add @SuppressWarnings for unchecked cast operations
marklogic-client-api/src/main/java/com/marklogic/client/impl/okhttp/OkHttpUtil.java Add @SuppressWarnings and comment for deprecated class usage
marklogic-client-api/src/main/java/com/marklogic/client/impl/Utilities.java Add @SuppressWarnings for unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/impl/RowManagerImpl.java Remove finalize() method and update Jackson field iteration
marklogic-client-api/src/main/java/com/marklogic/client/impl/RawQueryDefinitionImpl.java Add @SuppressWarnings for unchecked cast
marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoRepositoryImpl.java Add @SafeVarargs for varargs method
marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoPageImpl.java Update deprecated Jackson enableDefaultTyping method
marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderSubImpl.java Remove deprecated XML attribute methods and add @SafeVarargs
marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java Remove deprecated xmlAttributeSeq method
marklogic-client-api/src/main/java/com/marklogic/client/impl/PatchBuilderImpl.java Add class-level @SuppressWarnings
marklogic-client-api/src/main/java/com/marklogic/client/impl/NodeConverter.java Add @SuppressWarnings for unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/impl/HTTPKerberosAuthInterceptor.java Add @SuppressWarnings for unchecked operation
marklogic-client-api/src/main/java/com/marklogic/client/impl/DatabaseClientImpl.java Remove finalize() method
marklogic-client-api/src/main/java/com/marklogic/client/extra/gson/GSONHandle.java Mark getParser() as deprecated with explanation
marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilderBase.java Move @SuppressWarnings annotation
marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java Remove deprecated xmlAttributeSeq method
marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/OutputEndpointImpl.java Extract method to handle unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/IOEndpointImpl.java Add @SuppressWarnings for unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/ExecEndpointImpl.java Extract method to handle unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/dataservices/OutputCaller.java Add @SuppressWarnings for static methods
marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputOutputCaller.java Add @SuppressWarnings for static method
marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputCaller.java Add @SuppressWarnings for static methods
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/RowBatcherImpl.java Add type safety and @SafeVarargs annotations
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/QueryBatcherImpl.java Remove finalize() method
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/BatchImpl.java Add @SuppressWarnings for unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/XMLSplitter.java Add @SuppressWarnings for unchecked cast
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/RowBatcher.java Add @SuppressWarnings for varargs method
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ProgressListener.java Add @SafeVarargs for constructor
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/PathSplitter.java Add @SuppressWarnings for unchecked operations
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/JSONSplitter.java Update deprecated Jackson methods and add type safety
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/HostAvailabilityListener.java Add @SafeVarargs for method
marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ExtractRowsViaTemplateListener.java Update deprecated Jackson getCurrentName() calls
marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestPartialUpdate.java Replace Boolean constructor with literal
marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteHostBatcherTest.java Replace Integer constructor with autoboxing
marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteBatcherJobReportTest.java Replace StringBuffer with StringBuilder
marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/StringQueryHostBatcherTest.java Replace StringBuffer with StringBuilder and use diamond operator
marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/ApplyTransformTest.java Replace Vector with Collections.synchronizedList and use diamond operator
examples/src/main/java/com/marklogic/client/example/extension/SearchCollector.java Replace length check with isEmpty() and remove finalize() method
examples/src/main/java/com/marklogic/client/example/extension/BatchManager.java Remove finalize() method
Comments suppressed due to low confidence (1)

ml-development-tools/build.gradle:10

  • The Kotlin version 2.1.0 may not exist. My knowledge cutoff is January 2025, and as of then, the latest stable Kotlin version was 1.9.x. Please verify that version 2.1.0 is available and stable.
	id 'org.jetbrains.kotlin.jvm' version '2.1.0'

@@ -764,7 +758,7 @@ public RowRecord next() {

break;
case OBJECT:
Iterator<Map.Entry<String,JsonNode>> fields = rowNode.fields();
Iterator<Map.Entry<String,JsonNode>> fields = rowNode.properties().iterator();
Copy link
Preview

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

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

The method properties().iterator() may not be the correct replacement for the deprecated fields() method. Consider using fields() directly or verify that properties().iterator() provides the same functionality for iterating over object fields.

Suggested change
Iterator<Map.Entry<String,JsonNode>> fields = rowNode.properties().iterator();
Iterator<Map.Entry<String,JsonNode>> fields = rowNode.fields();

Copilot uses AI. Check for mistakes.

@rjrudin rjrudin merged commit c469ad7 into develop Jul 24, 2025
2 checks passed
@rjrudin rjrudin deleted the feature/23146-compile-fixes branch July 24, 2025 18:23
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