-
Bug
-
Resolution: Fixed
-
High
-
5.9.2, 5.9.7, 5.9.8
-
21
-
Summary
When Confluence attempts to send certain analytics, it can fail with a NullPointerException.
Steps to Reproduce
It's not entirely clear how this is reproduced reliably.
Expected Results
The exception is not thrown and the analytics are sent without error.
Actual Results
The below exception is thrown:
2015-12-10 10:26:42,429 ERROR [analyticsEventProcessor:thread-1] [analytics.client.listener.ProductEventListener] run Failed to send analytics event com.atlassian.analytics.api.events.MauEvent@8434fcf8 com.atlassian.cache.CacheException: com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException at com.atlassian.cache.ehcache.DelegatingCache.get(DelegatingCache.java:101) at com.atlassian.confluence.cache.ehcache.DefaultConfluenceEhCache.get(DefaultConfluenceEhCache.java:46) at com.atlassian.confluence.cache.ConfluenceMonitoringCache.get(ConfluenceMonitoringCache.java:49) at com.atlassian.analytics.client.serialize.EventSerializer.hashEmailPropertyForMauEvent(EventSerializer.java:149) at com.atlassian.analytics.client.serialize.EventSerializer.access$900(EventSerializer.java:34) at com.atlassian.analytics.client.serialize.EventSerializer$2.get(EventSerializer.java:138) at com.atlassian.analytics.client.serialize.EventSerializer$2.get(EventSerializer.java:75) at com.atlassian.analytics.client.listener.ProductEventListener$1.run(ProductEventListener.java:117) at com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:34) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 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) Caused by: com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149) at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112) at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:87) at com.atlassian.analytics.client.hash.BcryptAnalyticsEmailHasher.hashInternal(BcryptAnalyticsEmailHasher.java:45) at com.atlassian.analytics.client.hash.BcryptAnalyticsEmailHasher.hash(BcryptAnalyticsEmailHasher.java:40) at com.atlassian.analytics.client.serialize.EventSerializer$1.load(EventSerializer.java:65) at com.atlassian.analytics.client.serialize.EventSerializer$1.load(EventSerializer.java:62) at com.atlassian.cache.ehcache.LoadingCache.getFromLoader(LoadingCache.java:145) at com.atlassian.cache.ehcache.LoadingCache.loadValueAndReleaseLock(LoadingCache.java:100) at com.atlassian.cache.ehcache.LoadingCache.get(LoadingCache.java:76) at com.atlassian.cache.ehcache.DelegatingCache.get(DelegatingCache.java:96) ... 13 more Caused by: java.lang.NullPointerException at java.io.Reader.<init>(Reader.java:78) at java.io.InputStreamReader.<init>(InputStreamReader.java:113) at org.apache.commons.io.IOUtils.copy(IOUtils.java:1906) at org.apache.commons.io.IOUtils.toString(IOUtils.java:778) at org.apache.commons.io.IOUtils.toString(IOUtils.java:759) at com.atlassian.analytics.client.hash.reader.RemoteHashingInstructionsReader.readInstructions(RemoteHashingInstructionsReader.java:27) at com.atlassian.analytics.client.hash.BcryptAnalyticsEmailHasher$HashingInstructionsResettableLazyReference.create(BcryptAnalyticsEmailHasher.java:154) at com.atlassian.analytics.client.hash.BcryptAnalyticsEmailHasher$HashingInstructionsResettableLazyReference.create(BcryptAnalyticsEmailHasher.java:144) at com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create(ResettableLazyReference.java:140) at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:321) at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143) ... 23 more
Workaround
Disabling the Analytics and the below add-ons will prevent this exception from being thrown. Please note it's a spurious exception that prevents analytics being thrown however will not affect how Confluence operates outside of sending analytics.
- Confluence Analytics Whitelist Plugin
- Analytics Client Plugin and
- Analytics Whitelist Plugin
- is cloned from
-
JRASERVER-47580 JIRA Analytics events fail with a NullPointerException
- Gathering Impact
- was cloned as
-
BSERV-8339 Bitbucket Server Analytics events fail with a NullPointerException
- Closed
- links to