Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ce7d4c5
PDP-531: Updating the version to 12.0.0
SameeraPriyathamTadikonda Jul 17, 2025
6268bb1
PDP-534: Updating the 12.0.0 xcc jar
SameeraPriyathamTadikonda Jul 17, 2025
4861797
PDP-534: Updating the 12.0.0 xcc jar
SameeraPriyathamTadikonda Jul 29, 2025
7957f7a
Checking in the nightly xcc - 20251110
Nov 10, 2025
bc4d8bc
Checking in the nightly xcc - 20251111
Nov 11, 2025
5cb01af
Checking in the nightly xcc - 20251112
Nov 12, 2025
4ee221d
Checking in the nightly xcc - 20251112
Nov 12, 2025
08bae28
Checking in the nightly xcc - 20251113
Nov 13, 2025
5d13030
Checking in the nightly xcc - 20251114
Nov 14, 2025
d129959
Checking in the nightly xcc - 20251116
Nov 16, 2025
0cd4786
Checking in the nightly xcc - 20251117
Nov 17, 2025
ea0f9c4
Checking in the nightly xcc - 20251118
Nov 18, 2025
01d31db
Checking in the nightly xcc - 20251119
Nov 19, 2025
2de11b0
Checking in the nightly xcc - 20251120
Nov 20, 2025
6f14bad
Checking in the nightly xcc - 20251121
Nov 21, 2025
853ba96
Update pom.xml (#556)
SameeraPriyathamTadikonda Nov 22, 2025
1b1772b
Checking in the nightly xcc - 20251122
Nov 22, 2025
9287533
Checking in the nightly xcc - 20251123
Nov 23, 2025
3920322
Checking in the nightly xcc - 20251124
Nov 24, 2025
aca62c4
Checking in the nightly xcc - 20251125
Nov 25, 2025
1fdfde3
MLE-25299 : Update README.md for 12.0.1 (#557)
abika5 Nov 25, 2025
da0a200
MLE-25299 : Check-in Product Notice for 12.0.1 (#558)
abika5 Nov 25, 2025
cb7c786
MLE-25326: version update
Nov 25, 2025
1538f69
Merge pull request #559 from marklogic/release-12.0.1-branching
yakov-feldman Nov 26, 2025
ea07af3
MLE-25329: update xcc jar
Nov 26, 2025
488fb99
Merge pull request #560 from marklogic/release-12.0.1-update-xcc
yakov-feldman Nov 26, 2025
84a6c99
Merge pull request #561 from marklogic/release-12.0.1
yakov-feldman Dec 23, 2025
a8c778a
MLE-26838: Added null check for conf.getStrings() method
SiddharthMaheshB Feb 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions NOTICE.txt
Copy link
Contributor

Choose a reason for hiding this comment

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

All the changes in this file is invalid

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MarkLogic® Content Pump 12.0
Progress® MarkLogic® Content Pump 12.0.1

Copyright © 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.

Expand All @@ -10,10 +10,10 @@ Unless required by applicable law or agreed to in writing, software distributed

To the extent required by the applicable open-source license, a complete machine-readable copy of the source code corresponding to such code is available upon request. This offer is valid to anyone in receipt of this information and shall expire three years following the date of the final distribution of this product version by Progress Software Corporation. To obtain such source code, send an email to Legal-thirdpartyreview@progress.com. Please specify the product and version for which you are requesting source code.

The following software may be included in MarkLogic® Content Pump 12.0
(last updated July 14, 2025):
-------------------------------------------------------------------------

The following software may be included in Progress® MarkLogic® Content Pump 12.0.1 (last updated November 24, 2025):

Third Party Components

avro 1.11.4 (Apache-2.0)
Expand Down Expand Up @@ -444,7 +444,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND

Common Licenses

This section shows the text of common third-party licenses used by MarkLogic® Content Pump v12.0:
This section shows the text of common third-party licenses used by Progress® MarkLogic® Content Pump v12.0.1:

Apache License 2.0 (Apache-2.0)
https://spdx.org/licenses/Apache-2.0.html
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ The MarkLogic Connector for Hadoop is an extension to Hadoop’s MapReduce frame

## Release Notes

### What's New in mlcp 12.0
### What's New in mlcp 12.0.1

- No new updates

### What's New in mlcp 12.0.0

- Replaced the commons-csv-marklogic library with the standard Apache Commons CSV library for improved compatibility and maintainability
- Upgraded commons-csv and commons-io libraries to the latest stable versions.
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.marklogic</groupId>
<artifactId>mlcp</artifactId>
<version>12.0</version>
<version>12.0.1</version>
<name>MarkLogic Content Pump</name>
<description>MarkLogic Content Pump</description>
<url>https://github.com/marklogic/marklogic-contentpump</url>
Expand All @@ -17,7 +17,7 @@
</licenses>

<properties>
<versionString>12.0</versionString>
<versionString>12.0.1</versionString>
<xccVersion>${versionString}</xccVersion>
<hadoopVersion>3.4.0</hadoopVersion>
<jacksonVersion>2.17.1</jacksonVersion>
Expand Down
Copy link
Contributor

Choose a reason for hiding this comment

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

27 of the commits added to the PR are not valid, and the XCC lib is being overridden by the wrong version here. I think you might have used the develop-12.0 branch to base your feature branch. This is not correct. Can you please rebase your fork to the develop branch and add your diff to it?

Binary file not shown.
4 changes: 4 additions & 0 deletions src/main/java/com/marklogic/contentpump/InputType.java
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,10 @@ public void applyConfigOptions(Configuration conf, CommandLine cmdline)
ContentSource cs;
String[] outputHosts =
conf.getStrings(MarkLogicConstants.OUTPUT_HOST);
if (outputHosts == null || outputHosts.length == 0) {
throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST +
" is not specified.");
}
int hostIdx = 0;
while (hostIdx < outputHosts.length) {
try {
Expand Down
7 changes: 6 additions & 1 deletion src/main/java/com/marklogic/contentpump/RDFReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -546,8 +546,13 @@ public void initExistingMapPerms() throws IOException {
ResultSequence result = null;
ContentSource cs;
try {
String[] hosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST);
if (hosts == null || hosts.length == 0) {
throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST +
" is not specified.");
}
cs = InternalUtilities.getOutputContentSource(conf,
conf.getStrings(MarkLogicConstants.OUTPUT_HOST)[0]);
hosts[0]);
session = cs.newSession();
RequestOptions options = new RequestOptions();
options.setDefaultXQueryVersion("1.0-ml");
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/marklogic/contentpump/ThreadManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,10 @@ public void run() {
}
}
String[] hosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST);
if (hosts == null || hosts.length == 0) {
throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST +
" is not specified.");
}
for (String host : hosts) {
Comment on lines +562 to 563
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

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

The new guard ensures the array exists, but individual entries may still be blank/whitespace (or null), which can cause connection attempts with invalid hostnames inside the loop. Add validation inside the loop (or pre-filter/normalize the array) to reject/skip empty hosts deterministically.

Suggested change
}
for (String host : hosts) {
}
List<String> validHosts = new ArrayList<String>();
for (String host : hosts) {
if (host != null && !host.trim().isEmpty()) {
validHosts.add(host);
}
}
if (validHosts.isEmpty()) {
throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST +
" does not contain any valid non-empty host values.");
}
for (String host : validHosts) {

Copilot uses AI. Check for mistakes.
try {
ContentSource cs = InternalUtilities.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ private LinkedMapWritable getMimetypesMap() throws IOException {
return mimetypeMap;
}
String[] hosts = conf.getStrings(OUTPUT_HOST);
if (hosts == null || hosts.length == 0) {
throw new IllegalArgumentException(OUTPUT_HOST +
" is not specified.");
}
Session session = null;
ResultSequence result = null;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,13 @@ public static List<ContentPermission> getDefaultPermissions(Configuration conf,
ResultSequence result = null;
ContentSource cs;
try {
String[] hosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST);
if (hosts == null || hosts.length == 0) {
throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST +
" is not specified.");
}
cs = InternalUtilities.getOutputContentSource(conf,
conf.getStrings(MarkLogicConstants.OUTPUT_HOST)[0]);
hosts[0]);
Comment on lines +82 to +88
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

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

The same getStrings(...) null/length check + identical exception message is now repeated across several files in this PR. To reduce duplication and keep host-validation semantics consistent (including trimming/blank checks), consider extracting a shared helper (e.g., in InternalUtilities) that returns a validated host list (or first host) and throws a consistent error when missing/invalid.

Copilot uses AI. Check for mistakes.

session = cs.newSession();
RequestOptions options = new RequestOptions();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,10 @@ public void checkOutputSpecs(
TextArrayWritable hostArray = null;
if (restrictHosts) {
String[] outputHosts = conf.getStrings(OUTPUT_HOST);
if (outputHosts == null || outputHosts.length == 0) {
throw new IllegalArgumentException(OUTPUT_HOST +
" is not specified.");
}
hostArray = new TextArrayWritable(outputHosts);
} else {
String outputHost = cs.getConnectionProvider().getHostName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@ public class InternalUtilities implements MarkLogicConstants {
*/
public static ContentSource getInputContentSource(Configuration conf)
throws URISyntaxException, XccConfigException, IOException {
String host = conf.getStrings(INPUT_HOST)[0];
if (host == null || host.isEmpty()) {
String[] hosts = conf.getStrings(INPUT_HOST);
if (hosts == null || hosts.length == 0) {
throw new IllegalArgumentException(INPUT_HOST +
" is not specified.");
}
String host = hosts[0];

Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

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

This change prevents NPE on a null/empty array, but it also removes the previous validation that hosts[0] itself is non-null/non-empty. As a result, a config like INPUT_HOST= (or an array containing null) will pass the new guard and can still fail later (or attempt to connect with an invalid hostname). Consider restoring a value-level check (e.g., null/blank after trimming) for hosts[0], or switch to a trimmed-string API and validate the first entry.

Suggested change
if (host == null || host.trim().isEmpty()) {
throw new IllegalArgumentException(INPUT_HOST +
" is not specified.");
}

Copilot uses AI. Check for mistakes.
return getInputContentSource(conf, host);
}
Expand Down