Here a little update to this, cause today my application did run into
an OOM due to this (with 1GB Heap)
The current HeapDump shows me

That the wicket PropertyResolver uses about 1GB Ram, from those are
about 62MB for

------------------------------------------------------------------------------------------------------------------
ref 
|CGLIB$CALLBACK_0|org.ops4j.pax.wicket.internal.PaxWicketApplicationFactory$WebApplicationWrapper
@ 0xf2b693d0
------------------------------------------------------------------------------------------------------------------

I guess those are basically the session, looks OK right now.
But the rest is consumed by about 260000 ConcurrentHashMap Entries.

For example:

Type|Name            |Value
------------------------------------------------------------------------------------------------------------------
ref 
|CGLIB$CALLBACK_0|org.ops4j.pax.wicket.internal.PaxWicketApplicationFactory$WebApplicationWrapper
@ 0xc1fa0250
------------------------------------------------------------------------------------------------------------------

I don't know how to say this, but it seems awfully wrong right now ...

regards, Achim

2012/10/22 Achim Nierbeck <bcanh...@googlemail.com>:
> Hi,
>
> I've seen the exact thing but didn't have the time (yet) to get a hold of it.
> But since it's mostly Wicket classes involved I had the impression
> it's wicket itself
> that does this.
> To prove something like it, I wanted to create an example which would work
> in both world (pax-wicket and wicket) but due to lack of time I wasn't able to
> get to it.
>
> But since I'm not the only one I'd guess this is something worthy to
> investigate :)
> My next test would have been to switch to Wicket 6 (pax-wicket 2.0)
>
> regards, Achim
>
> 2012/10/22 Bram Pouwelse <b...@pouwelse.com>:
>> Hi,
>>
>> I'm working on an application that's using Pax Wicket (version 1.1.0).
>> Because the application is using more memory than expected I'm running
>> some tests and analysing heap dumps for a few days now.
>>
>> While analysing the heap of my "weekend test" I've found this at the
>> top of the Pax Wicket bundle class loader at the top of the dominator
>> tree, seems to me that the PropertyResolver is creating new
>> DefaultClassCache instances all the time but I don't understand why.
>>
>> Below I've pasted a few selections from Eclipse Memory Analyzer:
>>
>>
>> Dominator tree:
>>
>> Class Name
>>                                   | Shallow Heap | Retained Heap |
>> Percentage
>> -----------------------------------------------------------------------------------------------------------------------------------------------------
>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @
>> 0xc123ee58                          |           88 |   643,602,288 |
>>   89.39%
>> |- java.util.Vector @ 0xc1252208
>>                                   |           32 |   643,566,800 |
>> 89.38%
>> |  '- java.lang.Object[1280] @ 0xc2445ee8
>>                                   |        5,136 |   643,566,768 |
>> 89.38%
>> |     |- class org.apache.wicket.util.lang.PropertyResolver @
>> 0xb9b5d330                                 |           32 |
>> 643,420,472 |     89.36% *
>> |     |  '- java.util.concurrent.ConcurrentHashMap @ 0xc2962bf8
>>                                   |           48 |   643,420,440 |
>> 89.36%
>> |     |     '- java.util.concurrent.ConcurrentHashMap$Segment[16] @
>> 0xc2962c28                           |           80 |   643,420,392 |
>>    89.36%
>> |     |        |- java.util.concurrent.ConcurrentHashMap$Segment @
>> 0xc2963098                            |           40 |   643,418,872 |
>>     89.36% **
>> |     |        |  |-
>> java.util.concurrent.ConcurrentHashMap$HashEntry[262144] @ 0xd8674190
>>              |    1,048,592 |   643,418,768 |     89.36%
>> |     |        |  |  '-
>> java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea9687a8
>>           |           32 |   642,370,176 |     89.22%
>> |     |        |  |     |-
>> java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea967a28
>>        |           32 |   642,366,720 |     89.22%
>> |     |        |  |     |  |-
>> java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea966ca8
>>     |           32 |   642,363,264 |     89.22% ***
>> |     |        |  |     |  |-
>> org.apache.wicket.util.lang.PropertyResolver$DefaultClassCache @
>> 0xea967398|           16 |         3,424 |      0.00%
>> |     |        |  |     |  '- Total: 2 entries
>>                                   |              |               |
>> |     |        |  |     |-
>> org.apache.wicket.util.lang.PropertyResolver$DefaultClassCache @
>> 0xea968118   |           16 |         3,424 |      0.00%
>> |     |        |  |     '- Total: 2 entries
>>                                   |              |               |
>> -----------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> * class org.apache.wicket.util.lang.PropertyResolver @ 0xb9b5d330 [statics]:
>> Type|Name                               |Value
>> ---------------------------------------------------------------------------------------------
>> ref |SET                                |set
>> ref |IS                                 |is
>> ref |GET                                |get
>> ref 
>> |applicationToClassesToGetAndSetters|java.util.concurrent.ConcurrentHashMap
>> @ 0xc2962bf8
>> int |RESOLVE_CLASS                      |2
>> int |CREATE_NEW_VALUE                   |1
>> int |RETURN_NULL                        |0
>> ref |log
>> |org.ops4j.pax.logging.slf4j.Slf4jLogger @ 0xc2972ba0
>> ---------------------------------------------------------------------------------------------
>>
>> ** java.util.concurrent.ConcurrentHashMap$HashEntry[262144] @
>> 0xd8674190 [attributes]
>> Type |Name      |Value
>> --------------------------------------------------------------------------------------
>> float|loadFactor|0.75
>> ref  |table
>> |java.util.concurrent.ConcurrentHashMap$HashEntry[262144] @ 0xd8674190
>> int  |threshold |196608
>> int  |modCount  |185871
>> int  |count     |185871
>> ref  |sync      |java.util.concurrent.locks.ReentrantLock$NonfairSync
>> @ 0xc29630c0
>> --------------------------------------------------------------------------------------
>>
>>
>> *** java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea966ca8 
>> [attributes]
>> Type|Name |Value
>> ---------------------------------------------------------------------------------------------------
>> ref |next |java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xea965f28
>> ref |value|org.apache.wicket.util.lang.PropertyResolver$DefaultClassCache
>> @ 0xea966618
>> int |hash |1234246985
>> ref |key  
>> |nl.ditp.fabuland.core.internal.WicketApplication$$EnhancerByCGLIB$$4188d86a
>> @ 0xc22bcc88
>> ---------------------------------------------------------------------------------------------------
>>
>>
>> Is this caused by a coding error in the application or a bug in Wicket
>> / Pax Wicket?
>>
>> Thanks,
>>
>> Bram Pouwelse
>>
>> _______________________________________________
>> general mailing list
>> general@lists.ops4j.org
>> http://lists.ops4j.org/mailman/listinfo/general
>
>
>
> --
>
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
> Committer & Project Lead
> OPS4J Pax for Vaadin
> <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
> Lead
> blog <http://notizblog.nierbeck.de/>



-- 

Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
Committer & Project Lead
OPS4J Pax for Vaadin
<http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project
Lead
blog <http://notizblog.nierbeck.de/>

_______________________________________________
general mailing list
general@lists.ops4j.org
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to