legacy-knowledge-base
公開されました Sep. 10, 2025

com.liferay.petra.process.ProcessException: java.io.IOException:インデックス作成処理中のパイプ破損エラー

written-by

Jorge Diaz

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • コンフィギュレーションを使用して外部プロセスでテキスト抽出機能を構成しています:
text.extraction.fork.process.enabled=true
text.extraction.fork.process.mime.types=application/x-tika-ooxml,application/pdf
  • しかし、再インデックス化処理を実行しようとすると、外部プロセスの実行がうまくいかず、以下のエラーが投げられる:
2023-01-13 11:05:00.849 ERROR [default-13][FileImpl:483] com.liferay.petra.process.ProcessException: java.io.IOException: Broken pipe
com.liferay.petra.process.ProcessException: java.io.IOException: Broken pipe
    at com.liferay.petra.process.local.LocalProcessExecutor.execute(LocalProcessExecutor.java:122)
    at com.liferay.portal.util.FileImpl.lambda$extractText$0(FileImpl.java:441)
    at com.liferay.registry.internal.RegistryImpl.callService(RegistryImpl.java:71)
    at com.liferay.portal.util.FileImpl.extractText(FileImpl.java:437)
    at com.liferay.portal.kernel.util.FileUtil.extractText(FileUtil.java:165)
    at com.liferay.portal.kernel.search.DocumentImpl.addFile(DocumentImpl.java:159)
    at com.liferay.document.library.internal.search.spi.model.index.contributor.DLFileEntryModelDocumentContributor.contribute(DLFileEntryModelDocumentContributor.java:114)

[ommited]

    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: Broken pipe
    at java.base/java.io.FileOutputStream.writeBytes(Native Method)
    at java.base/java.io.FileOutputStream.write(FileOutputStream.java:354)
    at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
    at java.base/java.io.BufferedOutputStream.write(BufferedOutputStream.java:127)
    at java.base/java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1873)
    at java.base/java.io.ObjectOutputStream$BlockDataOutputStream.write(ObjectOutputStream.java:1844)
    at java.base/java.io.ObjectOutputStream.write(ObjectOutputStream.java:708)
    at java.base/java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1873)
    at java.base/java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(ObjectOutputStream.java:1911)
    at java.base/java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1572)
    at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
    at com.liferay.petra.process.local.LocalProcessExecutor.execute(LocalProcessExecutor.java:97)

このエラーはどうすれば直るのでしょうか?

Environment

  • Liferay DXP 7.3

解決策

  • 外部プロセスのテキスト抽出機能は、Liferay ユーザーのシステム PATH で利用可能な java プロセスを実行します。
  • 報告されたエラー com.liferay.petra.process.ProcessException: java.io.IOException:Broken pipe システムの PATH で利用可能な java バイナリとアプリケーションサーバーで使用される java バイナリが同じでない場合に発生することがあります。
  • これを確認するためです:
    1. アプリケーションサーバーの実行に使用したのと同じシステムユーザーを使用して、シェルセッションを開く
    2. java を実行し、PATH環境に利用可能なjavaバイナリを配置する(Windows環境では java を使用する)。
    3. ps -ef | grep java を実行し、アプリケーションサーバーが使用する Java のバイナリパスを取得します(Windows ではタスクマネージャーを使用します)。
    4. 両方のjavaのバイナリパスが同じであることを確認します。
  • 一致しない場合は、システムのPATH設定を変更して、アプリケーションサーバーのものと同じJavaバイナリを指すようにするか、アプリケーションサーバーが間違ったJavaバイナリを使用している場合は、アプリケーションサーバーの設定を変更して修正します。

did-this-article-resolve-your-issue

legacy-knowledge-base