after running openfire for 20 days i have this objects in heap:
num #instances #bytes class name
1: 1817247 135524464 [C
2: 2361170 118636936 [Ljava.lang.Object;
3: 2735010 87520320 java.util.concurrent.ConcurrentHashMap$Segment
4: 61025 86286872 [B
5: 2829222 67901328 java.util.concurrent.locks.ReentrantLock$NonfairSync
6: 2256789 54162936 java.util.ArrayList
7: 2735010 48456704 [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
8: 1942836 46628064 java.lang.String
9: 1702752 40866048 org.dom4j.tree.DefaultAttribute
10: 1191818 28603632 org.dom4j.tree.DefaultElement
11: 486742 27902992 [Ljava.util.Hashtable$Entry;
12: 482313 23151024 java.util.concurrent.FutureTask$Sync
13: 486689 19467560 java.util.Hashtable
14: 218128 19323928 [Ljava.util.HashMap$Entry;
15: 482313 19292520 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask
16: 439632 17585280 org.jivesoftware.openfire.forms.spi.XFormFieldImpl
17: 170940 13675072 [Ljava.util.concurrent.ConcurrentHashMap$Segment;
18: 77039 9936560
19: 403639 9687336 java.util.concurrent.ConcurrentHashMap$HashEntry
20: 482960 7727360 java.util.Collections$SynchronizedSet
21: 482313 7717008 java.util.concurrent.Executors$RunnableAdapter
22: 482117 7713872 java.util.Hashtable$EntrySet
23: 230959 7390688 org.xmpp.packet.JID
24: 180398 7215920 java.util.HashMap
the java.util.concurrent.locks.ReentrantLock class is only used in the LocalLockFactory which is new in 3.4.5. so there have to be the problem.