You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

34 lines
1.0 KiB

#!/bin/bash
# This script patches the Parquet JAR to use LinkedHashSet instead of HashSet
JAR_PATH="$HOME/.m2/repository/org/apache/parquet/parquet-hadoop/1.14.4/parquet-hadoop-1.14.4.jar"
BACKUP_PATH="$HOME/.m2/repository/org/apache/parquet/parquet-hadoop/1.14.4/parquet-hadoop-1.14.4.jar.backup"
echo "Patching Parquet JAR at: $JAR_PATH"
# Backup original JAR
if [ ! -f "$BACKUP_PATH" ]; then
cp "$JAR_PATH" "$BACKUP_PATH"
echo "Created backup at: $BACKUP_PATH"
fi
# Extract the JAR
TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"
jar xf "$JAR_PATH"
# Find and patch the class file
# We need to modify the bytecode to change HashSet to LinkedHashSet
# This is complex, so let's document what needs to be done
echo "JAR extracted to: $TEMP_DIR"
echo "To patch, we need to:"
echo "1. Decompile ParquetFileWriter.class"
echo "2. Change HashSet to LinkedHashSet"
echo "3. Recompile"
echo "4. Repackage JAR"
echo ""
echo "This requires javap, javac with all dependencies, and jar"
echo "Simpler approach: Use the patched source to rebuild the module"
rm -rf "$TEMP_DIR"