Reviewers: rjrjr,
Message:
Approach adapted from http://gwt-code-reviews.appspot.com/1401802
without having to deal with ClassLoader complications from mixing
additional interfaces into Proxy (that seemed to cause weird problems
with emma-enabled builds).
This patch includes the changes in
http://gwt-code-reviews.appspot.com/1453814/ and I'll update the issue
once that code is submitted.
The previous patch was insufficient because any circular references with
wrapped objects (especially Lists and Iterators) would prevent the
WeakMapping from ever clearing state. It only fixed the circularity
problem for simple bean types. With this patch, I've run the test
server against 8 looping instances of RequestFactoryJreSuite's main()
method. The server and the clients were all run on the same machine
with 32M heaps and this was observed to be stable over a thirty minute
period. The heaps could be made smaller if it weren't for the Unicode
tests having insanely nesting.
Description:
Ensure all ProxyAutoBeans not directly referenced from root object or
via a shim can be garbage-collected.
Issue 6193.
Patch by: bobv
Suggested by: t.broyer
Review by: rjrjr
Please review this at http://gwt-code-reviews.appspot.com/1451819/
Affected files:
M user/src/com/google/gwt/core/client/impl/WeakMapping.java
M
user/src/com/google/web/bindery/autobean/shared/impl/AbstractAutoBean.java
M user/src/com/google/web/bindery/autobean/vm/impl/JsonSplittable.java
M user/src/com/google/web/bindery/autobean/vm/impl/ProxyAutoBean.java
M
user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java
A
user/src/com/google/web/bindery/requestfactory/vm/testing/UrlRequestTransport.java
M
user/super/com/google/gwt/core/translatable/com/google/gwt/core/client/impl/WeakMapping.java
M
user/test/com/google/web/bindery/requestfactory/server/RequestFactoryJreTest.java
A
user/test/com/google/web/bindery/requestfactory/server/RequestFactoryTestServer.java
M
user/test/com/google/web/bindery/requestfactory/vm/RequestFactoryJreSuite.java
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors