pdf / FIXES_SUMMARY.md
fokan's picture
Upload 51 files
b6b0869 verified

LibreOffice Java Integration Fixes Summary

Problem

The DOCX to PDF converter was experiencing "javaldx failed!" errors and "تعذّر إكمال تثبيت المستخدم" (Cannot complete user installation) errors during conversion, even after adding --disable-java flags.

Root Cause

LibreOffice was still attempting to initialize Java components despite the --disable-java flag, causing the javaldx errors that prevented successful document conversion.

Solutions Implemented

1. Dockerfile Changes

  • Removed Java dependencies: Completely removed libreoffice-java-common and openjdk-11-jre-headless from the apt-get install command
  • Added environment variables: Set SAL_DISABLE_JAVA=1, SAL_DISABLE_JAVA_SECURITY=1, and LIBO_DISABLE_JAVA=1 to completely disable Java
  • Updated LibreOffice configuration: Added JavaSupport=false to registrymodifications.xcu
  • Updated initialization command: Added --disable-java flag to the LibreOffice pre-initialization command

2. app.py Changes

  • Enhanced command flags: Added multiple Java-disabling flags to the LibreOffice command:
    • --disable-java (existing)
    • --disable-extension-update
    • --disable-webupdate
    • --disable-remote-control
    • --disable-notification
    • --disable-oop4all
    • --disable-opencl
  • Enhanced environment variables: Added comprehensive Java-disabling environment variables:
    • SAL_DISABLE_JAVA=1
    • SAL_DISABLE_JAVA_SECURITY=1
    • LIBO_DISABLE_JAVA=1
    • LIBO_JAVA_PARALLEL=0
    • SAL_JAVA_DISABLE_SECURITY=1
  • Updated LibreOffice configuration: Added JavaSupport=false to the registrymodifications.xcu configuration

3. main.py Changes

  • Early environment setup: Set Java-disabling environment variables at the top of the file before any imports
  • Enhanced health check: Added Java disabled status to the health check endpoint

Testing

A test script (test_libreoffice.py) was created to verify that LibreOffice can run successfully without Java integration.

Expected Results

These changes should completely eliminate the "javaldx failed!" errors and allow LibreOffice to run in a Java-free environment, resolving the conversion failures with return code 77.

Additional Benefits

  • Faster LibreOffice startup (no Java initialization)
  • Reduced memory usage (no Java VM)
  • More stable conversions (no Java-related crashes)
  • Better compatibility with containerized environments