„NullPointerException“ bei „JcrResourceResolverFactoryImpl.getResourceResolver“ in AEM

Problem

Der folgende Fehler wird in den AEM-Protokolldateien beobachtet:

31.05.2017 17:00:00.003 *ERROR* [sling-default-1000-HourlySnapshotJob] org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception during job execution of com.day.cq.reporting.impl.snapshots.SnapshotServiceImpl$2@1a639a76 : null
java.lang.NullPointerException: null
at org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.getResourceResolver(JcrResourceResolverFactoryImpl.java:125)
at org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.getResourceResolver(JcrResourceResolverFactoryImpl.java:94)
at com.day.cq.reporting.impl.snapshots.SnapshotServiceImpl.executeSnapshot(SnapshotServiceImpl.java:274)
at com.day.cq.reporting.impl.snapshots.SnapshotServiceImpl$2.run(SnapshotServiceImpl.java:160)
at org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:118)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Umgebung

AEM 6.2

Ursache

Dies geschieht, wenn eine Klasse auf eine JcrResourceResolverFactory-Klasseninstanz verweist, die deaktiviert wurde. Wenn eine Komponente deaktiviert und erneut aktiviert wird, wird eine neue Instanz erstellt. Das heißt, wenn man an die alte Instanz beibehält, sind die Verweise null und werden nie wieder gesetzt. Dieser „NullPointerException“ tritt auf, wenn ein Methodenaufruf an einem Feld erfolgt, das über „Felix SCR“ geklont wurde. Das Feld sollte wirklich einen Wert haben, da der Methodenaufruf von einem Aufruf „activate()“ initiiert wurde, der ebenfalls von SCR initiiert wird.

Lösung

Dieses Problem wurde in der Version 2.0.8 der Apache Felix SCR-Bibliothek behoben. Um das Problem zu beheben, installieren Sie die neuere Version:

  1. Laden Sie die Version 2.0.8 des felix.scr Pakets runter.
  2. AEM stoppen.
  3. Platzieren Sie die Datei in dem Ordner crx-quickstart/install der AEM-Instanz.
  4. Starten Sie AEM.
Adobe-Logo

Bei Ihrem Konto anmelden