NullPointerException a JcrResourceResolverFactoryImpl.getResolver in AEM

Problema

Il seguente errore viene osservato nei file di registro AEM:

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)

Ambiente

AEM 6.2

Causa

Questo accade quando una classe contiene riferimenti a un'istanza di classe JcrResourceResolverFactory che è stata disattivata. Quando un componente viene disattivato e nuovamente riattivato, viene creata una nuova istanza. Pertanto, se qualcuno mantiene la vecchia istanza, i riferimenti sono nulli e non vengono più impostati. Questo NullPointerException avviene quando si effettua una chiamata del metodo su un campo inserito tramite Felix SCR. Il campo avrà realmente un valore in quanto la chiamata del metodo è stata iniziata da una chiamata activate(), che è iniziata anche da SCR.

Risoluzione

Questo problema è stato risolto nella versione 2.0.8 della libreria Apache Felix SCR. Per risolvere il problema, installa la versione più recente:

  1. Scarica la versione 2.0.8 del pacchetto felix.scr.
  2. Interrompi AEM.
  3. Posizionare il file nella cartella crx-quickstart/installazione dell'istanza AEM.
  4. Avviare AEM.

 Adobe

Ottieni supporto in modo più facile e veloce

Nuovo utente?