org.apache.tomcat.jni.Error Java Examples

The following examples show how to use org.apache.tomcat.jni.Error. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AprSocketWrapperImpl.java    From cloudstack with Apache License 2.0 6 votes vote down vote up
/**
 * Connect this socket wrapper to remote server and start main loop on
 * AprSocketSource stdout link, to watch for incoming data, and
 * AprSocketSink stdin link, to pull for outgoing data.
 */
@Override
public void connect(InetSocketAddress address) throws IOException {
    try {
        inetAddress = Address.info(address.getHostName(), Socket.APR_UNSPEC, address.getPort(), 0, pool);
        socket = Socket.create(Address.getInfo(inetAddress).family, Socket.SOCK_STREAM, Socket.APR_PROTO_TCP, pool);
    } catch (Exception e) {
        throw new IOException("[" + this + "] ERROR: Cannot create socket for \"" + address + "\".", e);
    }

    int ret = Socket.connect(socket, inetAddress);
    if (ret != 0)
        throw new IOException("[" + this + "] ERROR: Cannot connect to remote host \"" + address + "\": " + Error.strerror(ret));

    source.setSocket(socket);
    sink.setSocket(socket);

    // Start polling for data to send to remote sever
    runMainLoop(IN, STDIN, true, true);

    // Push incoming data from server to handlers
    runMainLoop(OUT, STDOUT, false, false);

}
 
Example #2
Source File: AprEndpoint.java    From Tomcat8-Source-Read with MIT License 5 votes vote down vote up
/**
 * Allocate a new poller of the specified size.
 * @param size The size
 * @param pool The pool from which the poller will be allocated
 * @param timeout The timeout
 * @return the poller pointer
 */
protected long allocatePoller(int size, long pool, int timeout) {
    try {
        return Poll.create(size, pool, 0, timeout * 1000);
    } catch (Error e) {
        if (Status.APR_STATUS_IS_EINVAL(e.getError())) {
            log.info(sm.getString("endpoint.poll.limitedpollsize", "" + size));
            return 0;
        } else {
            log.error(sm.getString("endpoint.poll.initfail"), e);
            return -1;
        }
    }
}
 
Example #3
Source File: AprEndpoint.java    From Tomcat7.0.67 with Apache License 2.0 5 votes vote down vote up
/**
 * Allocate a new poller of the specified size.
 */
protected long allocatePoller(int size, long pool, int timeout) {
    try {
        return Poll.create(size, pool, 0, timeout * 1000);
    } catch (Error e) {
        if (Status.APR_STATUS_IS_EINVAL(e.getError())) {
            log.info(sm.getString("endpoint.poll.limitedpollsize", "" + size));
            return 0;
        } else {
            log.error(sm.getString("endpoint.poll.initfail"), e);
            return -1;
        }
    }
}
 
Example #4
Source File: AprEndpoint.java    From tomcatsrc with Apache License 2.0 5 votes vote down vote up
/**
 * Allocate a new poller of the specified size.
 */
protected long allocatePoller(int size, long pool, int timeout) {
    try {
        return Poll.create(size, pool, 0, timeout * 1000);
    } catch (Error e) {
        if (Status.APR_STATUS_IS_EINVAL(e.getError())) {
            log.info(sm.getString("endpoint.poll.limitedpollsize", "" + size));
            return 0;
        } else {
            log.error(sm.getString("endpoint.poll.initfail"), e);
            return -1;
        }
    }
}
 
Example #5
Source File: TestXxxEndpoint.java    From Tomcat8-Source-Read with MIT License 4 votes vote down vote up
private long createAprSocket(int port, long pool)
             throws Exception {
    /**
     * Server socket "pointer".
     */
    long serverSock = 0;

    String address = InetAddress.getByName("localhost").getHostAddress();

    // Create the APR address that will be bound
    int family = Socket.APR_INET;
    if (Library.APR_HAVE_IPV6) {
        if (!OS.IS_BSD && !OS.IS_WIN32 && !OS.IS_WIN64)
            family = Socket.APR_UNSPEC;
     }

    long inetAddress = 0;
    try {
        inetAddress = Address.info(address, family,
                                   port, 0, pool);
        // Create the APR server socket
        serverSock = Socket.create(Address.getInfo(inetAddress).family,
                                   Socket.SOCK_STREAM,
                                   Socket.APR_PROTO_TCP, pool);
    } catch (Exception ex) {
        log.error("Could not create socket for address '" + address + "'");
        return 0;
    }

    if (OS.IS_UNIX) {
        Socket.optSet(serverSock, Socket.APR_SO_REUSEADDR, 1);
    }
    // Deal with the firewalls that tend to drop the inactive sockets
    Socket.optSet(serverSock, Socket.APR_SO_KEEPALIVE, 1);
    // Bind the server socket
    int ret = Socket.bind(serverSock, inetAddress);
    if (ret != 0) {
        log.error("Could not bind: " + Error.strerror(ret));
        throw (new Exception(Error.strerror(ret)));
    }
    return serverSock;
}
 
Example #6
Source File: TestXxxEndpoint.java    From Tomcat7.0.67 with Apache License 2.0 4 votes vote down vote up
private long createAprSocket(int port, long pool)
             throws Exception {
    /**
     * Server socket "pointer".
     */
    long serverSock = 0;

    String address = InetAddress.getByName("localhost").getHostAddress();

    // Create the APR address that will be bound
    int family = Socket.APR_INET;
    if (Library.APR_HAVE_IPV6) {
        if (!OS.IS_BSD && !OS.IS_WIN32 && !OS.IS_WIN64)
            family = Socket.APR_UNSPEC;
     }

    long inetAddress = 0;
    try {
        inetAddress = Address.info(address, family,
                                   port, 0, pool);
        // Create the APR server socket
        serverSock = Socket.create(Address.getInfo(inetAddress).family,
                                   Socket.SOCK_STREAM,
                                   Socket.APR_PROTO_TCP, pool);
    } catch (Exception ex) {
        log.error("Could not create socket for address '" + address + "'");
        return 0;
    }

    if (OS.IS_UNIX) {
        Socket.optSet(serverSock, Socket.APR_SO_REUSEADDR, 1);
    }
    // Deal with the firewalls that tend to drop the inactive sockets
    Socket.optSet(serverSock, Socket.APR_SO_KEEPALIVE, 1);
    // Bind the server socket
    int ret = Socket.bind(serverSock, inetAddress);
    if (ret != 0) {
        log.error("Could not bind: " + Error.strerror(ret));
        throw (new Exception(Error.strerror(ret)));
    }
    return serverSock;
}
 
Example #7
Source File: TestXxxEndpoint.java    From tomcatsrc with Apache License 2.0 4 votes vote down vote up
private long createAprSocket(int port, long pool)
             throws Exception {
    /**
     * Server socket "pointer".
     */
    long serverSock = 0;

    String address = InetAddress.getByName("localhost").getHostAddress();

    // Create the APR address that will be bound
    int family = Socket.APR_INET;
    if (Library.APR_HAVE_IPV6) {
        if (!OS.IS_BSD && !OS.IS_WIN32 && !OS.IS_WIN64)
            family = Socket.APR_UNSPEC;
     }

    long inetAddress = 0;
    try {
        inetAddress = Address.info(address, family,
                                   port, 0, pool);
        // Create the APR server socket
        serverSock = Socket.create(Address.getInfo(inetAddress).family,
                                   Socket.SOCK_STREAM,
                                   Socket.APR_PROTO_TCP, pool);
    } catch (Exception ex) {
        log.error("Could not create socket for address '" + address + "'");
        return 0;
    }

    if (OS.IS_UNIX) {
        Socket.optSet(serverSock, Socket.APR_SO_REUSEADDR, 1);
    }
    // Deal with the firewalls that tend to drop the inactive sockets
    Socket.optSet(serverSock, Socket.APR_SO_KEEPALIVE, 1);
    // Bind the server socket
    int ret = Socket.bind(serverSock, inetAddress);
    if (ret != 0) {
        log.error("Could not bind: " + Error.strerror(ret));
        throw (new Exception(Error.strerror(ret)));
    }
    return serverSock;
}