[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-development
Subject:    Re: tomee git commit: useless code since done in the connection close
From:       Romain Manni-Bucau <rmannibucau () gmail ! com>
Date:       2016-08-29 21:22:51
Message-ID: CACLE=7NviVntZgBmegkNoZZmKijJRdAmYt7=jC_PwP13P0B85g () mail ! gmail ! com
[Download RAW message or body]


+1, doesnt make sense to do both to me, in particular with our pooling
abstraction

Le 29 août 2016 21:42, "Jonathan Gallimore" <jgallimore@tomitribe.com> a
écrit :

> Indeed it is, and I think your change to do that in connection.close() is
> actually a better fix (thanks!), but we still have an issue, and that is
> the order in Client.java:
>
>            if (null != in) {
>                 try {
>                     in.close();
>                 } catch (final Throwable e) {
>                     //Ignore
>                 }
>             }
>
>             if (null != conn) {
>                 try {
>                     conn.close();
>                 } catch (final Throwable t) {
>                     logger.log(Level.WARNING, "Error closing connection
> with server: " + t.getMessage(), t);
>                 }
>             }
>
> The inputstream will be closed before conn.close() - effectively closing
> the stream while under certain circumstances there is still more to read.
> This specifically happens when the response from the server uses
> Transfer-encoding: chunked, and the client is connecting over https. The
> effect in this case
> is that HttpsUrlConnection won't reuse the connection (effectively there is
> no keep-alive) and the SSL handshake has to happen all over again on the
> next call.
>
> As I mentioned, I prefer your solution - feels neater. The question is, how
> to solve this small ordering issue - how about moving the in.close() /
> out.close() logic
> to each of the implementations of Connection? (HttpConnection,
> SocketConnection and an anonymous class in MockConnectionFactory)
>
> Thoughts?
>
> Jon
>
>
> On Mon, Aug 29, 2016 at 10:23 AM, <rmannibucau@apache.org> wrote:
>
> > Repository: tomee
> > Updated Branches:
> >   refs/heads/master a26d99040 -> 8514d47c5
> >
> >
> > useless code since done in the connection close
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
> > Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/8514d47c
> > Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/8514d47c
> > Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/8514d47c
> >
> > Branch: refs/heads/master
> > Commit: 8514d47c58b60e8288ccffa28a1bc3f33b4cbdfd
> > Parents: a26d990
> > Author: Romain manni-Bucau <rmannibucau@gmail.com>
> > Authored: Mon Aug 29 11:22:51 2016 +0200
> > Committer: Romain manni-Bucau <rmannibucau@gmail.com>
> > Committed: Mon Aug 29 11:22:51 2016 +0200
> >
> > ----------------------------------------------------------------------
> >  .../java/org/apache/openejb/client/Client.java     | 17
> -----------------
> >  1 file changed, 17 deletions(-)
> > ----------------------------------------------------------------------
> >
> >
> > http://git-wip-us.apache.org/repos/asf/tomee/blob/8514d47c/
> > server/openejb-client/src/main/java/org/apache/openejb/
> client/Client.java
> > ----------------------------------------------------------------------
> > diff --git a/server/openejb-client/src/main/java/org/apache/openejb/
> client/Client.java
> > b/server/openejb-client/src/main/java/org/apache/openejb/
> > client/Client.java
> > index d017e7f..837a2ea 100644
> > --- a/server/openejb-client/src/main/java/org/apache/openejb/
> > client/Client.java
> > +++ b/server/openejb-client/src/main/java/org/apache/openejb/
> > client/Client.java
> > @@ -405,23 +405,6 @@ public class Client {
> >              }
> >
> >              if (null != in) {
> > -
> > -                // consume anything left in the buffer if we're running
> > in http(s) mode
> > -                if (HttpConnectionFactory.HttpConnection.class.
> isInstance(conn))
> > {
> > -                    final HttpConnectionFactory.HttpConnection
> > httpConnection = HttpConnectionFactory.HttpConnection.class.cast(conn);
> > -                    if ("https".equalsIgnoreCase(
> httpConnection.getURI().getScheme()))
> > {
> > -
> > -                        try {
> > -                            int read = 0;
> > -                            while (read > -1) {
> > -                                read = in.read();
> > -                            }
> > -                        } catch (Throwable e) {
> > -                            // ignore
> > -                        }
> > -                    }
> > -                }
> > -
> >                  try {
> >                      in.close();
> >                  } catch (final Throwable e) {
> >
> >
>
>
> --
> Jonathan Gallimore
> http://twitter.com/jongallimore
> http://www.tomitribe.com
>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic