Can you create an issue an attach a test that shows the problem? On Jul 24, 2012 3:29 PM, "glenviewjeff" <[email protected]> wrote:
> I looked a little more carefully and it seems that things are much worse > than I thought. These are more like "phantom" binding errors. Guice is > apparently doing some analysis at injector creation time--it's > pre-constructing and storing in memory what appears to be all potential > binding errors, even if the errors don't actually exist in the code. > > For instance, there is a binding error stored in memory in the event that > an object is requested that was bound but not exposed in a private module > (robot legs). Of course, that's the whole purpose of private modules. I > assume Guice does this because once the injector is created, it never wants > to look at the modules again, but needs to have the error available in case > someone tries to access a private unexposed object? > > I guess it ends up that I don't want a strict error checking mode, I > actually want a "release mode" or something, where Guice doesn't construct > these "errors"! > > I'm not sure if this would even be possible, but better yet would be to > fix Guice so that upon binding error, it could recreate the injector > (re-parsing the modules, etc.) to find the cause of the error. > > On Tuesday, July 24, 2012 2:05:08 PM UTC-5, glenviewjeff wrote: >> >> I started doing a memory analysis of my Android app and was quite >> surprised to find that in memory there were a bunch of Java strings holding >> binding errors inside a child injector. These errors are apparently not >> reported upon injector creation. I wrote unit tests for the erroneous >> bindings and as expected, they caused a runtime binding error. >> >> It looks like the errors are stored in memory after constructing the >> injector but only thrown when a client object requests that the erroneous >> object is be injected. My integration tests somehow didn't pick up these >> binding errors and the errors are wasting significant runtime memory. >> >> Running and poking around through memory dumps is not a terribly feasible >> way to find these. Is there a strict error checking/reporting feature for >> Guice to give me the information on all broken bindings at the time the >> injector is created? Is there a reason this isn't the default behavior? >> >> >> -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-guice/-/SH0BfcTZ6zYJ. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
