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.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online