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:
- Laden Sie die Version 2.0.8 des felix.scr Pakets runter.
- AEM stoppen.
- Platzieren Sie die Datei in dem Ordner crx-quickstart/install der AEM-Instanz.
- Starten Sie AEM.
Bei Ihrem Konto anmelden