src/main/java/com/amlinv/jmxutil/polling/JmxAttributePoller.java
public void poll() throws IOException {
        synchronized (this) {
            // Make sure not to check and create a connection if shutting down.
            if (shutdownInd) {
                return;
            }

            // Atomically indicate polling is active now so a caller can determine with certainty whether polling is
            //  completely shutdown.
            pollActiveInd = true;
        }

        try {
            this.checkConnection();

            this.concurrencyTestHooks.beforePollProcessorStart();

            if (this.mBeanAccessConnection instanceof MBeanBatchCapableAccessConnection) {
                this.batchPollProcessor.pollBatch((MBeanBatchCapableAccessConnection) this.mBeanAccessConnection,
                        this.polledObjects);
            } else {
                this.pollIndividually();
            }
        } catch (IOException ioExc) {
            this.safeClose(this.mBeanAccessConnection);
            this.mBeanAccessConnection = null;

            throw ioExc;
        } finally {
            this.concurrencyTestHooks.afterPollProcessorFinish();

            synchronized (this) {
                pollActiveInd = false;
                this.notifyAll();
            }
        }
    }
public void poll() throws IOException {
        synchronized (this) {
            // Make sure not to check and create a connection if shutting down.
            if (shutdownInd) {
                return;
            }

            // Atomically indicate polling is active now so a caller can determine with certainty whether polling is
            //  completely shutdown.
            pollActiveInd = true;
        }

        try {
            this.checkConnection();

            this.concurrencyTestHooks.beforePollProcessorStart();

            if (this.mBeanAccessConnection instanceof MBeanBatchCapableAccessConnection) {
                this.batchPollProcessor.pollBatch((MBeanBatchCapableAccessConnection) this.mBeanAccessConnection,
                        this.polledObjects);
            } else {
                this.pollIndividually();
            }
        } catch (IOException ioExc) {
            this.safeClose(this.mBeanAccessConnection);
            this.mBeanAccessConnection = null;

            throw ioExc;
        } finally {
            this.concurrencyTestHooks.afterPollProcessorFinish();

            synchronized (this) {
                pollActiveInd = false;
                this.notifyAll();
            }
        }
    }
Poll the configured objects now and store the results in the objects themselves.

@throws IOException