[ 
https://issues.apache.org/jira/browse/THRIFT-1954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer updated THRIFT-1954:
-------------------------------
    Description: 
In TSocket.java, the connect() logic uses the socket timeout value (for 
reads/writes) as the connection timeout, as well:
{code}
  public void open() throws TTransportException {
    if (isOpen()) {
      throw new TTransportException(TTransportException.ALREADY_OPEN, "Socket 
already connected.");
    }

    if (host_.length() == 0) {
      throw new TTransportException(TTransportException.NOT_OPEN, "Cannot open 
null host.");
    }
    if (port_ <= 0) {
      throw new TTransportException(TTransportException.NOT_OPEN, "Cannot open 
without port.");
    }

    if (socket_ == null) {
      initSocket();
    }

    try {
      socket_.connect(new InetSocketAddress(host_, port_), timeout_); <--- this 
value should be a separately defined
      inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024);
{code}
In many applications, the duration of time one is willing to wait before 
establishing a connection is not the same as the duration of time one is 
willing to wait before timing out on a read.  

For example, I may want to time out on establishing a connection after 1 second 
but am willing to wait 10 seconds for long reads to complete.

Please create a separate value that can be passed into the constructor, thanks

  was:
In TSocket.java, the connect() logic uses the socket timeout value (for 
reads/writes) as the connection timeout, as well:

  public void open() throws TTransportException {
    if (isOpen()) {
      throw new TTransportException(TTransportException.ALREADY_OPEN, "Socket 
already connected.");
    }

    if (host_.length() == 0) {
      throw new TTransportException(TTransportException.NOT_OPEN, "Cannot open 
null host.");
    }
    if (port_ <= 0) {
      throw new TTransportException(TTransportException.NOT_OPEN, "Cannot open 
without port.");
    }

    if (socket_ == null) {
      initSocket();
    }

    try {
      socket_.connect(new InetSocketAddress(host_, port_), timeout_); <--- this 
value should be a separately defined
      inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024);

In many applications, the duration of time one is willing to wait before 
establishing a connection is not the same as the duration of time one is 
willing to wait before timing out on a read.  

For example, I may want to time out on establishing a connection after 1 second 
but am willing to wait 10 seconds for long reads to complete.

Please create a separate value that can be passed into the constructor, thanks


> Allow for a separate connection timeout value 
> ----------------------------------------------
>
>                 Key: THRIFT-1954
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1954
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Java - Library
>            Reporter: Ahmed Bashir
>
> In TSocket.java, the connect() logic uses the socket timeout value (for 
> reads/writes) as the connection timeout, as well:
> {code}
>   public void open() throws TTransportException {
>     if (isOpen()) {
>       throw new TTransportException(TTransportException.ALREADY_OPEN, "Socket 
> already connected.");
>     }
>     if (host_.length() == 0) {
>       throw new TTransportException(TTransportException.NOT_OPEN, "Cannot 
> open null host.");
>     }
>     if (port_ <= 0) {
>       throw new TTransportException(TTransportException.NOT_OPEN, "Cannot 
> open without port.");
>     }
>     if (socket_ == null) {
>       initSocket();
>     }
>     try {
>       socket_.connect(new InetSocketAddress(host_, port_), timeout_); <--- 
> this value should be a separately defined
>       inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024);
> {code}
> In many applications, the duration of time one is willing to wait before 
> establishing a connection is not the same as the duration of time one is 
> willing to wait before timing out on a read.  
> For example, I may want to time out on establishing a connection after 1 
> second but am willing to wait 10 seconds for long reads to complete.
> Please create a separate value that can be passed into the constructor, thanks



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to