Hi,

I'm looking for a robust mechanism to close Resources that have been
opened within a request scope. My application streams lots of data from
a backend and that connection remains open until it is acively closed.
Sometimes I spot resource leaks and suspect that they are caused by
aborted requests. This is the code I use:

 @GET //@Produces(...)
 public Response streamData(...) {
    ...
    Stream<Pojo> ps = null;
    try {
        // connect to db and obtain data stream for <key>
        ps = loadData(db, key);
        // apply detailed encoding instrunctions and create a
StreamingOutput
        final StreamingOutput stream = Encoder.encodeData(ps,
encodingArgs);
        return Response.ok(stream).build();
    } catch (Exception e) {
        closeOnException(ps); // wrapper for ps.close();
        throw e;
    }
 } 


What it handles are exceptions that occur *before* the Response is
built, but I can hardly control what happens afterwards. So I am
looking for a bullet-proof mechanism or hook that allows me to close
any resources that were opened within the request scope. @UnitOfWork is
a mechanism that is very close to what I want, but it is closely
coupled to Hibernate. What I need is a hook that accepts any instance
of Closeable/Autocloseable that is used within the executed method.

-Matthias

-- 
You received this message because you are subscribed to the Google Groups 
"dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to