Erro de permissão negada do java.io.File.createTempFile

Descrição

Ambiente

Adobe Experience Manager (todas as versões)

Problema/Sintomas

Ocorre um erro na variável error.log relatórios java.io.IOException: Permission denied e o rastreamento de pilha java.io.File.createTempFile nela.

01.06.2017 16:34:02.631 *ERROR* qtp1085110594-4453 org.apache.felix.http.jetty Exception while processing request to /system/console/configMgr/com.adobe.cq.experiencelog.impl.ExperienceLogConfigServlet (java.io.IOException: Permission denied)

java.io.IOException: Permission denied

        at java.io.UnixFileSystem.createFileExclusively(Native Method)

        at java.io.File.createTempFile(File.java:2024)

        at org.apache.felix.cm.file.FilePersistenceManager._store(FilePersistenceManager.java:699)

        at org.apache.felix.cm.file.FilePersistenceManager.store(FilePersistenceManager.java:660)

        at org.apache.felix.cm.impl.CachingPersistenceManagerProxy.store(CachingPersistenceManagerProxy.java:242)

        at org.apache.felix.cm.impl.ConfigurationImpl.storeNewConfiguration(ConfigurationImpl.java:462)

        at org.apache.felix.cm.impl.ConfigurationImpl.init(ConfigurationImpl.java:183)

Resolução

Descubra se o parâmetro da JVM -Djava.io.tmpdir é definido no processo java.

No Linux:

  1. Execute este comando:

    ps -ef | grep java
    
  2. Revise os parâmetros JVM procurando por -Djava.io.tmpdir

No Windows, Linux ou Unix:

  1. Ir para https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime
  2. Procurar por java.io.tmpdir na página.
  3. Copie o valor de java.io.tmpdir para a área de transferência.
  4. Vá para esse caminho no Sistema operacional e conceda ao usuário proprietário do processo java acesso completo de leitura/gravação a essa pasta.
  5. Se você não encontrou um java.io.tmpdir, em seguida, conceda ao usuário acesso ao diretório temporário do sistema operacional padrão.
    • No Linux e no Unix, esse diretório é /tmp por padrão.
    • No Windows, o diretório está no diretório base do usuário (por exemplo: C:\Users\aemuser\AppData\Local\Temp).

Causa

O usuário proprietário do processo java do AEM não tem permissões apropriadas para gravar no diretório temporário do processo java.

Nesta página