Example usage for java.net UnknownHostException getClass

List of usage examples for java.net UnknownHostException getClass

Introduction

In this page you can find the example usage for java.net UnknownHostException getClass.

Prototype

@HotSpotIntrinsicCandidate
public final native Class<?> getClass();

Source Link

Document

Returns the runtime class of this Object .

Usage

From source file:it.haefelinger.flaka.util.HttpUpload.java

protected boolean exec(HttpMethod meth) {
    HttpClient client;//from   ww  w  .j  a va 2  s.  co m
    boolean rc = false;

    /* exec http method */
    try {
        client = new HttpClient();
        settimeout(client);
        setcred(client);
        client.executeMethod(meth);
        rc = (meth.getStatusCode() / 100) == 2;
        if (rc == false) {
            setError(meth.getStatusLine().toString());
        }
    } catch (java.net.UnknownHostException ex) {
        set("errmsg", "unable to resolve host `" + ex.getMessage() + "'.");
    } catch (Exception ex) {
        setError(ex.getClass().getName() + " " + ex.getMessage());
        if (this.debug) {
            System.err.println("*** excepting seen while uploading ..");
            ex.printStackTrace(System.err);
            System.err.println("<<*>>");
        }
    }
    return rc;
}

From source file:com.clustercontrol.notify.util.SendSyslog.java

/**
 * ???syslog?????//from ww  w . j a  va  2 s. c o m
 * NotifyLogEscalateInfoData ? EscalateFacilityFlg ?ExecFacilityConstant.TYPE_GENERATION??
 * ?????outputInfo?null??????????
 *
 * @param outputInfo 
 * @param logEscalateInfo 
 * @return ??IP
 */
private List<InetAddress> getIpAddresses(OutputBasicInfo outputInfo,
        NotifyLogEscalateInfoData logEscalateInfo) {

    // ?
    ArrayList<InetAddress> ipAddresses = new ArrayList<InetAddress>();
    //?(RepositoryControllerLocal)?
    try {
        String facilityId = null;

        // 
        if (logEscalateInfo.getEscalateFacilityFlg() == ExecFacilityConstant.TYPE_FIX) {
            // ??????ID?????
            facilityId = logEscalateInfo.getEscalateFacility();
        } else {
            // ???
            if (outputInfo == null) {
                // NotifyLogEscalateInfoData ? EscalateFacilityFlg ?ExecFacilityConstant.TYPE_GENERATION??
                // ?????outputInfo?null??????????
                return ipAddresses;
            } else {
                facilityId = outputInfo.getFacilityId();
            }
        }

        ArrayList<String> facilityIdList = new RepositoryControllerBean()
                .getExecTargetFacilityIdList(facilityId, logEscalateInfo.getOwnerRoleId());

        for (String targetFacilityId : facilityIdList) {
            FacilityInfo facility = new RepositoryControllerBean().getFacilityEntityByPK(targetFacilityId);
            try {
                ipAddresses.add(getInetAdress(facility));
            } catch (UnknownHostException e) {
                m_log.info("getIpAddresses() : " + e.getClass().getSimpleName() + ", " + e.getMessage());
                // ?????
            }
        }

        return ipAddresses;
    } catch (Exception e) {
        m_log.warn("getIpAddresses() : " + e.getClass().getSimpleName() + ", " + e.getMessage(), e);
        // ????????
        return null;
    }
}

From source file:com.clustercontrol.notify.util.SendSyslog.java

/**
 * syslog??(ShelfCheckTask?AplLogger)/*from  w w w . j a  v  a 2 s. c om*/
 * ?????????syslog??<br>
 *
 * @param ipAddress
 * @param port
 * @param facility
 * @param severity
 * @param facilityId
 * @param message
 * @param timeStamp
 */
public void sendAfterConvertHostname(String ipAddress, int port, String facility, String severity,
        String facilityId, String message, String timeStamp) {
    // 
    String hostname = "";

    // ?
    hostname = getSyslogHeaderHost(facilityId);
    InetAddress inetAddress = null;

    int facilityInt = -1;
    int severityInt = -1;
    int priority = -1;

    // ?
    try {
        // generate InetAddress
        inetAddress = InetAddress.getByName(ipAddress);

        // generate priority of header
        facilityInt = SyslogFacilityConstant.stringToType(facility);
        severityInt = SyslogSeverityConstant.stringToType(severity);
        if (facilityInt == -1 || severityInt == -1) {
            m_log.info("send() sending syslog failure. facility(" + facility + ") or severity(" + severity
                    + ") is invalid.");
            return;
        }
        priority = facilityInt + severityInt;

        sendMsgWithRetry(inetAddress, port, priority, timeStamp, hostname, message);

    } catch (UnknownHostException e) {
        m_log.info("sending syslog failure. syslog's host(" + ipAddress + ") is invalid."
                + e.getClass().getSimpleName() + ", " + e.getMessage());
    } catch (SocketException e) {
        m_log.info("sending syslog failure." + e.getClass().getSimpleName() + ", " + e.getMessage());
    } catch (IOException e) {
        m_log.info("sending syslog failure." + e.getClass().getSimpleName() + ", " + e.getMessage());
    }
}

From source file:com.mirth.connect.connectors.mllp.MllpMessageReceiver.java

public void doConnect() throws ConnectException {
    disposing.set(false);//w w w. ja v a  2  s  .c o m

    if (connector.isServerMode()) {
        URI uri = endpoint.getEndpointURI().getUri();
        try {
            serverSocket = createServerSocket(uri);
            monitoringController.updateStatus(connector, connectorType, Event.INITIALIZED);
        } catch (UnknownHostException e) {
            logger.error(e.getClass().getName() + ": " + e.getMessage());
            throw new org.mule.providers.ConnectException(new Message("tcp", 1, uri), e, this);
        } catch (Exception e) {
            throw new org.mule.providers.ConnectException(new Message("tcp", 1, uri), e, this);
        }
        try {
            getWorkManager().scheduleWork(this, WorkManager.INDEFINITE, null, null);
        } catch (WorkException e) {
            throw new ConnectException(new Message(Messages.FAILED_TO_SCHEDULE_WORK), e, this);
        }
    } else {
        // If client mode, just start up one thread.
        Thread llpReceiver = new Thread(this);
        llpReceiver.start();
        monitoringController.updateStatus(connector, connectorType, Event.INITIALIZED);
    }
}

From source file:com.clustercontrol.ping.factory.RunMonitorPing.java

/**
 * fping?ping?????<BR>//from   w w w . j  a va 2  s  .c o m
 * @param facilityId Ping?ID()collect?facilityID???
 * @return ???????true
 * @throws HinemosUnknown
 */
private boolean collectFping(ArrayList<String> facilityList, ArrayList<Integer> priporityList)
        throws HinemosUnknown {

    //???
    if (m_now != null) {
        m_nodeDate = m_now.getTime();
    }

    //??????
    // hosts[] IP(String ??)
    // hostsv6[]  IPv6(String??)
    // node     IP????
    // target   nodo?
    HashSet<String> hosts = new HashSet<String>();
    HashSet<String> hostsv6 = new HashSet<String>();
    m_Target = new Hashtable<String, String[]>();

    String facilityId = null;
    int version = 4;
    String[] node;
    for (int index = 0; index < facilityList.size(); index++) {
        facilityId = facilityList.get(index);
        if (facilityId != null && !"".equals(facilityId)) {

            node = new String[2];

            try {

                // ??
                NodeInfo info = new RepositoryControllerBean().getNode(facilityId);

                //m_log.error(facilityAttrMap.get(FacilityAttributeConstant.IPPROTOCOLNUMBER));
                //???????version?

                if (info.getIpAddressVersion() != null) {
                    version = info.getIpAddressVersion();
                } else {
                    version = 4;
                }

                if (version == 6) {

                    InetAddress[] ip = InetAddress.getAllByName(info.getIpAddressV6());

                    if (ip.length != 1) {
                        //IPInetAddress??????1????????
                        //UnnownHostExcption
                        UnknownHostException e = new UnknownHostException();
                        m_log.info("collectFping() : " + e.getClass().getSimpleName() + ", " + e.getMessage());
                        throw e;
                    }

                    node[0] = ip[0].getHostAddress();

                    if (node[0] != null && !node[0].equals("")) {

                        //IPHashSet?????
                        hostsv6.add(node[0]);
                    }
                } else {
                    node[0] = info.getIpAddressV4();
                    if (node[0] != null && !node[0].equals("")) {

                        //IPHashSet?????
                        hosts.add(node[0]);
                    }
                }
                if (node[0] != null && !node[0].equals("")) {
                    node[1] = info.getNodeName();
                    //target??????
                    m_Target.put(facilityId, node);
                }
            } catch (FacilityNotFound e) {
                m_message = MessageConstant.MESSAGE_COULD_NOT_GET_NODE_ATTRIBUTES_PING.getMessage();
                m_messageOrg = e.getMessage();
                return false;
            } catch (UnknownHostException e) {
                // ???
            }
        }
    }

    if (m_reachabilityFping == null) {
        m_reachabilityFping = new ReachAddressFping(m_runCount, m_runInterval, m_pingTimeout);
    }

    boolean result = true;
    boolean resultTmp = true;
    //IPv4???fping??
    if (hosts.size() != 0) {

        result = m_reachabilityFping.isReachable(hosts, 4);
        m_MsgErr = m_reachabilityFping.getM_errMsg();
    }
    //IPv6???fping6??
    if (hostsv6.size() != 0) {

        resultTmp = m_reachabilityFping.isReachable(hostsv6, 6);
        m_MsgErrV6 = m_reachabilityFping.getM_errMsg();

        //??&????
        result = result & resultTmp;
    }
    return result;
}

From source file:com.clustercontrol.nodemap.session.NodeMapControllerBean.java

/**
 * fping?ping?????<BR>/*from ww  w.j  a v  a 2  s.  c  o m*/
 * @param facilityId Ping?ID()collect?facilityID???
 * @return ping??
 * @throws HinemosUnknown
 * @throws NodeMapException 
 */
public List<String> pingToFacilityList(List<String> facilityList) throws HinemosUnknown, NodeMapException {

    String message = "";
    String messageOrg = "";
    //??????
    // hosts[] IP(String ??)
    // hostsv6[]  IPv6(String??)
    // node     IP????
    // target   nodo?
    HashSet<String> hosts = new HashSet<String>();
    HashSet<String> hostsv6 = new HashSet<String>();
    // ip?name
    Hashtable<String, List<String>> facilityNameTable = new Hashtable<>();

    String facilityId = null;
    int version = 4;
    String[] node;
    for (int index = 0; index < facilityList.size(); index++) {
        facilityId = facilityList.get(index);
        if (facilityId != null && !"".equals(facilityId)) {
            node = new String[2];
            try {

                // ??
                NodeInfo info = new RepositoryControllerBean().getNode(facilityId);

                if (info.getIpAddressVersion() != null) {
                    version = info.getIpAddressVersion();
                } else {
                    version = 4;
                }

                if (version == 6) {

                    InetAddress[] ip = InetAddress.getAllByName(info.getIpAddressV6());

                    if (ip.length != 1) {
                        //IPInetAddress??????1????????
                        //UnnownHostExcption
                        UnknownHostException e = new UnknownHostException();
                        m_log.info("pingToFacilityList() : " + e.getClass().getSimpleName() + ", "
                                + e.getMessage());
                        throw e;
                    }

                    node[0] = ip[0].getHostAddress();
                    if (node[0] != null && !node[0].equals("")) {
                        //IPHashSet?????
                        hostsv6.add(node[0]);
                    }
                } else {
                    node[0] = info.getIpAddressV4();
                    if (node[0] != null && !node[0].equals("")) {

                        //IPHashSet?????
                        hosts.add(node[0]);
                    }
                }
                if (node[0] != null && !node[0].equals("")) {
                    node[1] = info.getNodeName();
                    //target??????
                    List<String> facilitys = facilityNameTable.get(node[0]);
                    if (facilitys == null) {
                        facilitys = new ArrayList<>();
                    }
                    facilitys.add(facilityId);
                    facilityNameTable.put(node[0], facilitys);
                }
            } catch (FacilityNotFound e) {
                message = MessageConstant.MESSAGE_COULD_NOT_GET_NODE_ATTRIBUTES_PING.getMessage() + ","
                        + facilityId;
                messageOrg = e.getMessage();
                throw new NodeMapException(message + ", " + messageOrg, e);
            } catch (UnknownHostException e) {
                // ???
            }
        }
    }

    int runCount = 0;
    int runInterval = 0;
    int pingTimeout = 0;
    try {
        // [](default:1?19)
        String runCountKey = "nodemap.ping.runcount";
        runCount = HinemosPropertyUtil
                .getHinemosPropertyNum(runCountKey, Long.valueOf(PingRunCountConstant.TYPE_COUNT_01))
                .intValue();
        CommonValidator.validateInt(runCountKey, runCount, 1, 9);

        // [ms](default:1000?05000)
        String runIntervalKey = "nodemap.ping.runinterval";
        runInterval = HinemosPropertyUtil
                .getHinemosPropertyNum(runIntervalKey, Long.valueOf(PingRunIntervalConstant.TYPE_SEC_02))
                .intValue();
        CommonValidator.validateInt(runIntervalKey, runInterval, 0, 5 * 1000);

        // [ms](default:5000?13600000)
        String pintTimeoutKey = "nodemap.ping.timeout";
        pingTimeout = HinemosPropertyUtil
                .getHinemosPropertyNum(pintTimeoutKey, Long.valueOf(PingRunIntervalConstant.TYPE_SEC_05))
                .intValue();
        CommonValidator.validateInt(pintTimeoutKey, pingTimeout, 1, 60 * 60 * 1000);
    } catch (Exception e) {
        m_log.warn("pingToFacilityList() : " + e.getClass().getSimpleName() + ", " + e.getMessage(), e);
        throw new HinemosUnknown(e.getMessage(), e);
    }

    ReachAddressFping reachabilityFping = new ReachAddressFping(runCount, runInterval, pingTimeout);

    boolean result = true;
    boolean resultTmp = true;
    ArrayList<String> msgErr = new ArrayList<>();
    ArrayList<String> msgErrV6 = new ArrayList<>();
    Hashtable<String, PingResult> fpingResultSet = new Hashtable<String, PingResult>();
    Hashtable<String, PingResult> fpingResultSetV6 = new Hashtable<String, PingResult>();

    RunMonitorPing monitorPing = new RunMonitorPing();
    //IPv4???fping??
    if (hosts.size() != 0) {
        result = reachabilityFping.isReachable(hosts, 4);
        msgErr = reachabilityFping.getM_errMsg();
    }
    //IPv6???fping6??
    if (hostsv6.size() != 0) {
        resultTmp = reachabilityFping.isReachable(hostsv6, 6);
        msgErrV6 = reachabilityFping.getM_errMsg();
    }

    if (!result || !resultTmp) {
        return null;
    }
    List<String> retList = new ArrayList<>();
    fpingResultSet = monitorPing.wrapUpFping(msgErr, runCount, 4);
    fpingResultSetV6 = monitorPing.wrapUpFping(msgErrV6, runCount, 6);
    //IPv4????????IPv6?????
    m_log.debug("pingToFacilityList(): before fpingResultSet check");
    if (fpingResultSet.size() == 0) {
        m_log.debug("pingToFacilityList(): after fpingResultSet check");
        fpingResultSet = fpingResultSetV6;
    }
    //IPv4??????IPv6??
    else if (fpingResultSetV6.size() != 0) {
        fpingResultSet.putAll(fpingResultSetV6);
    }
    for (Map.Entry<String, List<String>> ipAdd : facilityNameTable.entrySet()) {
        PingResult pingResult = fpingResultSet.get(ipAdd.getKey());
        for (String facility : ipAdd.getValue()) {
            retList.add(facility + " : " + pingResult.getMesseageOrg());
        }
    }
    return retList;
}

From source file:com.clustercontrol.repository.factory.NodeSearcher.java

public List<NodeInfoDeviceSearch> searchNode(String ownerRoleId, String ipAddrFrom, String ipAddrTo, int port,
        String community, int version, String facilityID, String securityLevel, String user, String authPass,
        String privPass, String authProtocol, String privProtocol)
        throws HinemosUnknown, FacilityDuplicate, InvalidSetting {

    long startTime = HinemosTime.currentTimeMillis();
    // ?(60)???????
    int maxMsec = HinemosPropertyUtil
            .getHinemosPropertyNum("repository.node.search.timeout", Long.valueOf(50 * 1000)).intValue();
    List<NodeInfoDeviceSearch> nodeList = new ArrayList<NodeInfoDeviceSearch>();

    if (duplicateExec.tryAcquire()) {
        try {/*from  w  w  w  .  ja  v a2  s.c  o  m*/
            String errMsg = MessageConstant.MESSAGE_PLEASE_SET_IPADDR_CORRECT_FORMAT.getMessage();

            //?
            if (ipAddrFrom == null || ipAddrFrom.equals("") || ipAddrTo == null || ipAddrTo.equals("")) {
                throw new HinemosUnknown(MessageConstant.MESSAGE_PLEASE_SET_SEARCH_IPADDR.getMessage());
            } else if (version == SnmpVersionConstant.TYPE_V3
                    && securityLevel.equals(SnmpSecurityLevelConstant.NOAUTH_NOPRIV) == false) {
                if (user == null || user.equals("")) {
                    throw new HinemosUnknown(MessageConstant.MESSAGE_PLEASE_SET_USER_NAME.getMessage());
                } else if (authPass == null || authPass.equals("")) {
                    throw new HinemosUnknown(
                            MessageConstant.MESSAGE_PLEASE_SET_AUTHPASS_8CHARA_MINIMUM.getMessage());
                } else if (securityLevel.equals(SnmpSecurityLevelConstant.AUTH_PRIV)) {
                    if (privPass == null || privPass.equals("")) {
                        throw new HinemosUnknown(
                                MessageConstant.MESSAGE_PLEASE_SET_PRIVPASS_8CHARA_MINIMUM.getMessage());
                    }
                }
            }

            List<String> ipAddressList = null;

            // IP?
            InetAddress addressFrom;
            InetAddress addressTo;
            try {
                addressFrom = InetAddress.getByName(ipAddrFrom);
                addressTo = InetAddress.getByName(ipAddrTo);

                if (addressFrom instanceof Inet4Address && addressTo instanceof Inet4Address) {
                    //IPv4?????String?
                    if (!ipAddrFrom.matches(".{1,3}?\\..{1,3}?\\..{1,3}?\\..{1,3}?")) {
                        m_log.info(errMsg);
                        throw new HinemosUnknown(errMsg);
                    }
                    ipAddressList = RepositoryUtil.getIpList(ipAddrFrom, ipAddrTo, 4);
                } else if (addressFrom instanceof Inet6Address && addressTo instanceof Inet6Address) {
                    //IPv6????String???
                    ipAddressList = RepositoryUtil.getIpList(ipAddrFrom, ipAddrTo, 6);
                } else {
                    m_log.info(errMsg);
                    throw new HinemosUnknown(errMsg);
                }
            } catch (UnknownHostException e) {
                m_log.warn(errMsg);
                throw new HinemosUnknown(errMsg);
            }

            if (m_log.isDebugEnabled()) {
                StringBuilder str = new StringBuilder();
                for (String ipAddress : ipAddressList) {
                    if (str.length() != 0) {
                        str.append(", ");
                    }
                    str.append(ipAddress);
                }
                m_log.debug("ipAddress=" + str);
            }

            List<NodeInfoDeviceSearch> searchList = new ArrayList<>();
            try {
                //?
                //256?????
                if (ipAddressList.size() > HinemosPropertyUtil.getHinemosPropertyNum(MaxSearchNodeKey,
                        Long.valueOf(256))) {
                    m_log.info(MessageConstant.MESSAGE_EXCEED_LIMIT_NUMBER_256NODES.getMessage());
                    throw new HinemosUnknown(MessageConstant.MESSAGE_EXCEED_LIMIT_NUMBER_256NODES.getMessage());
                }

                //????
                //delay????????????(60??????)
                List<Future<NodeInfoDeviceSearch>> list = new ArrayList<>();
                for (String ipAddress : ipAddressList) {
                    if (list.size() > 0) {
                        Thread.sleep(HinemosPropertyUtil.getHinemosPropertyNum("repository.node.search.delay",
                                Long.valueOf(10)));
                    }
                    try {
                        InetAddress address = InetAddress.getByName(ipAddress);
                        List<String> facilityList = new RepositoryControllerBean()
                                .getFacilityIdByIpAddress(address);
                        if (facilityList != null && 0 < facilityList.size()) {
                            //??IP????
                            m_log.info("ipAddress " + address + " is already registered.");
                            continue;
                        }
                    } catch (UnknownHostException e) {
                        m_log.warn("UnknownHostException : " + e.getMessage()); // ???????
                        continue;
                    }
                    NodeSearchTask task = new NodeSearchTask(ipAddress, port, community, version, facilityID,
                            securityLevel, user, authPass, privPass, authProtocol, privProtocol);
                    list.add(_executorService.submit(task));
                }

                for (Future<NodeInfoDeviceSearch> future : list) {
                    if (future != null) {
                        try {
                            // SNMP??5?????????get??????
                            searchList.add(future.get(maxMsec, TimeUnit.MILLISECONDS));
                        } catch (TimeoutException e) {
                            m_log.warn("searchNode : " + e.getClass().getName() + ", " + e.getMessage());
                        }
                    }
                }
            } catch (InterruptedException e) {
                m_log.warn("searchNode : " + e.getClass().getName() + ", " + e.getMessage(), e);
                throw new HinemosUnknown(e.getMessage(), e);
            } catch (ExecutionException e) {
                m_log.warn("searchNode : " + e.getClass().getName() + ", " + e.getMessage(), e);
                throw new HinemosUnknown(e.getMessage(), e);
            }

            //
            RepositoryControllerBean controller = new RepositoryControllerBean();

            boolean commitFlag = false;
            for (NodeInfoDeviceSearch searchInfo : searchList) {
                try {
                    if (searchInfo == null) {
                        m_log.warn("searchInfo is null");
                        continue;
                    }
                    nodeList.add(searchInfo);
                    NodeInfo nodeInfo = searchInfo.getNodeInfo();
                    nodeInfo.setOwnerRoleId(ownerRoleId);
                    m_log.info("nodeInfo " + nodeInfo);
                    if (searchInfo.getErrorMessage() != null) {
                        continue;
                    }

                    //?
                    long msec = HinemosTime.currentTimeMillis() - startTime;
                    if (msec > maxMsec) {
                        m_log.info(MessageConstant.MESSAGE_TIME_OUT.getMessage() + " msec=" + msec);
                        throw new HinemosUnknown(MessageConstant.MESSAGE_TIME_OUT.getMessage());
                    }
                    try {
                        //????????
                        controller.addNodeWithoutRefresh(nodeInfo);
                        commitFlag = true;
                    } catch (FacilityDuplicate | InvalidSetting | HinemosUnknown e) {
                        String errorMessage = "" + e.getMessage();
                        searchInfo.setErrorMessage(errorMessage);
                    } finally {
                    }
                } catch (Exception e) {
                    m_log.warn("searchNode : " + e.getClass().getName() + ", " + e.getMessage(), e);
                    throw new HinemosUnknown(e.getMessage());
                }
            }
            if (commitFlag) {
                new FacilityIdCacheInitCallback().postCommit();

                //FacilityTreeCache??????
                JpaTransactionManager jtm = new JpaTransactionManager();
                try {
                    jtm.begin();
                    new FacilityTreeCacheRefreshCallback().postCommit();
                    jtm.commit();
                } catch (Exception e1) {
                    jtm.rollback();
                    throw e1;
                } finally {
                    jtm.close();
                }

                new RepositoryChangedNotificationCallback().postCommit();
            }
        } catch (HinemosUnknown e) {
            throw e;
        } finally {
            m_log.info("node search : " + "ipAddrFrom=" + ipAddrFrom + ", ipAddrTo=" + ipAddrTo + ", time="
                    + (HinemosTime.currentTimeMillis() - startTime) + "ms");
            duplicateExec.release();
        }
    } else {
        m_log.warn("runningCheck is busy !!");
    }

    return nodeList;
}

From source file:com.dragonflow.StandardMonitor.URLOriginalMonitor.java

/**
 * /* w ww.j a  v a 2  s . c  om*/
 */
private static long[] checkInternalURL(SocketSession socketsession, String s, String s1, String s2, String s3,
        String s4, String s5, String s6, String s7, Array array, String s8, String s9, String s10,
        StringBuffer stringbuffer, long l, String s11, int i, long l1, StringBuffer stringbuffer1,
        StringBuffer stringbuffer2) {
    String s12 = "";
    if (s.lastIndexOf('#') != -1) {
        s = s.substring(0, s.lastIndexOf('#'));
    }
    if ((debugURL & kDebugRequest) != 0) {
        LogManager.log("RunMonitor", "checking URL... " + s);
    }
    int j = 0;
    if (socketsession.context.getSetting("_keepTryingForGoodStatus").length() > 0) {
        j = TextUtils.toInt(socketsession.context.getSetting("_keepTryingForGoodStatus"));
    }
    long l2 = kURLNoStatusError;
    long l3 = 0L;
    long l4 = System.currentTimeMillis();
    long l6 = 0L;
    long l7 = 0L;
    long l8 = 0L;
    long l9 = 0L;
    long l10 = 0L;
    long l11 = 0L;
    long l12 = 0L;
    boolean flag = false;
    URLInfo urlinfo = new URLInfo(s);
    String s16 = urlinfo.getProtocol();
    String s17 = urlinfo.getHost();
    int k = urlinfo.getConnectPort();
    boolean flag1 = false;
    boolean flag2 = false;
    if (SocketStream.getSSLFactory() != null) {
        flag1 = true;
        if (socketsession.context.getSetting("_sslJavaEnabled").length() > 0) {
            flag1 = true;
        } else if (socketsession.context.getSetting("_sslJavaDisabled").length() > 0) {
            flag1 = false;
        }
    }
    boolean flag3 = false;
    if (s8.startsWith(NT_CHALLENGE_RESPONSE_TAG)) {
        s8 = s8.substring(NT_CHALLENGE_RESPONSE_TAG.length());
        flag3 = true;
    }
    boolean flag4 = false;
    if (socketsession.context.getSetting("_urlMonitorUseApacheHttpClient").length() > 0) {
        flag4 = true;
    }
    SocketStream socketstream = null;
    String s18 = getUserAgent(array);
    if (s18.length() == 0) {
        s18 = socketsession.context.getSetting("_URLUserAgent");
    }
    String s19 = getSslgetOptions(array);
    if (s19.length() == 0) {
        s19 = socketsession.context.getSetting("_sslgetOptions");
    }
    String s20 = socketsession.context.getSetting("_URLMonitorProxyExceptions");
    String s21 = null;
    String s22 = "";
    String s23 = "";
    String s25 = "";
    String s26 = getContentType(array);
    String s27 = encodeParameters(array, s26);
    socketsession.addCookieParameters(array, s);
    if (stringbuffer == null) {
        stringbuffer = new StringBuffer(kURLBufferSize);
    }
    boolean flag5 = socketsession.context.getSetting("_concatURLRedirects").length() != 0;
    if (flag5 && concatBuffer == null) {
        concatBuffer = new StringBuffer(kURLBufferSize);
    }
    if (s8.length() > 0) {
        Base64Encoder base64encoder = new Base64Encoder(s8 + ":" + s9);
        s22 = "Authorization: Basic " + base64encoder.processString() + CRLF;
    }
    if (s6.length() > 0) {
        Base64Encoder base64encoder1 = new Base64Encoder(s6 + ":" + s7);
        String s24 = base64encoder1.processString();
        s25 = "Proxy-Authorization: Basic " + s24 + CRLF;
    }
    long l13 = l1 - System.currentTimeMillis();
    long l14 = l13 / 1000L;
    long l15 = -1L;
    CounterLock counterlock;

    // 617
    try {
        if (s10.length() != 0) {
            String s28 = "";
            if (s27.length() > 0) {
                s28 = HTTPRequest.encodeString(s27);
            }
            String s32;
            if (s10.indexOf("get.exe") != -1) {
                String s36 = socketsession.context.getSetting("_URLRemoteOptions");
                if (s36.length() == 0) {
                    s36 = "-ignoreErrors+-ignoreUnknownCA+-x";
                }
                if (flag3 && !s8.startsWith(NT_CHALLENGE_RESPONSE_TAG)) {
                    s8 = NT_CHALLENGE_RESPONSE_TAG + s8;
                }
                if (s18.length() > 0) {
                    if (s28.length() > 0) {
                        s28 = s28 + URLEncoder.encode("&");
                    }
                    s28 = s28 + URLEncoder.encode("User-Agent: " + s18);
                }
                if (s19.length() > 0) {
                    if (s28.length() > 0) {
                        s28 = s28 + URLEncoder.encode("&");
                    }
                    s28 = s28 + URLEncoder.encode("sslgetOptions: " + s19);
                }
                if (s11.length() > 0) {
                    String as[] = TextUtils.split(s11, CRLF);
                    for (int k1 = 0; k1 < as.length; k1++) {
                        if (s28.length() > 0) {
                            s28 = s28 + URLEncoder.encode("&");
                        }
                        if (getHeaderType(as[k1]) < 0) {
                            s28 = s28 + URLEncoder.encode("Custom-Header: ");
                        }
                        String s46 = as[k1];
                        int i3 = s46.indexOf("&");
                        if (i3 >= 0 && !s46.startsWith(URLSequenceMonitor.refererStartToken)) {
                            s46 = s46.substring(0, i3);
                        }
                        s28 = s28 + URLEncoder.encode(s46);
                    }

                }
                String s13 = socketsession.getCookieHeader(s, true);
                if (s13.length() > 0) {
                    String s40 = "";
                    if (s36.endsWith("-x")) {
                        s40 = "-x";
                        s36 = s36.substring(0, s36.length() - 2);
                    }
                    String as2[] = TextUtils.split(s13, CRLF);
                    for (int j2 = 0; j2 < as2.length; j2++) {
                        s36 = s36 + "-c+%22" + URLEncoder.encode(as2[j2]) + "%22+";
                    }

                    s36 = s36 + s40;
                }
                s32 = s10 + "?" + s36 + "+%22" + URLEncoder.encode(s) + "%22" + "+%22" + l14 + "%22" + "+%22"
                        + URLEncoder.encode(s8) + "%22" + "+%22" + URLEncoder.encode(s9) + "%22" + "+%22" + s28
                        + "%22" + "+%22" + URLEncoder.encode(s5) + "%22" + "+%22" + URLEncoder.encode(s6)
                        + "%22" + "+%22" + URLEncoder.encode(s7) + "%22";
            } else if (s10.indexOf("port.exe") != -1) {
                s32 = s10 + "&host=" + s;
            } else {
                s32 = s10 + "?host=" + s;
            }
            Array array2 = null;
            String s41 = "";
            String s43 = "";
            String s47 = "";
            String s49 = "";
            String s51 = "";
            String s54 = "";
            String s56 = "";
            if (Platform.isPortal()) {
                String s59 = HTTPUtils.getLocationIDByURL(s10);
                if (Portal.isPortalID(s59)) {
                    PortalSiteView portalsiteview = (PortalSiteView) Portal.getSiteViewForID(s59);
                    if (portalsiteview != null) {
                        s41 = portalsiteview.getProperty(PortalSiteView.pUserName);
                        s43 = portalsiteview.getProperty(PortalSiteView.pPassword);
                        s49 = portalsiteview.getProperty(PortalSiteView.pProxy);
                        s51 = portalsiteview.getProperty(PortalSiteView.pProxyUserName);
                        s54 = portalsiteview.getProperty(PortalSiteView.pProxyPassword);
                    }
                }
            }
            int k3 = i;
            if (socketsession.context == null)
                ;
            CounterLock counterlock1 = null;
            if (!socketsession.inRemoteRequest) {
                counterlock1 = getLocationLock(socketsession.context, s10, s);
            }
            try {
                long l18 = System.currentTimeMillis() + (l14 + 30L) * 1000L;
                socketsession.inRemoteRequest = true;
                long al2[] = check1URL(socketsession, s32, s1, s2, s3, s4, s49, s51, s54, array2, s41, s43, s47,
                        stringbuffer, l, s56, k3, l18, stringbuffer1, stringbuffer2);
                l2 = al2[0];
                if (j > 0) {
                    l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s32, 0, j);
                }
                if (debugURL != 0) {
                    System.out.println("Status1: " + l2);
                }
                l3 = al2[1];
            } finally {
                socketsession.inRemoteRequest = false;
                if (counterlock1 != null) {
                    releaseLocationLock(counterlock1);
                }
            }

            String s65 = stringbuffer.toString();
            int i4 = s65.length();
            stringbuffer.setLength(0);
            int j4 = 0;
            while (j4 < i4) {
                int k4 = s65.indexOf("\r\r\n", j4);
                if (k4 < 0) {
                    stringbuffer.append(s65.substring(j4));
                    break;
                }
                stringbuffer.append(s65.substring(j4, k4) + "\r\n");
                j4 = k4 + 3;
            }

            String s68 = stringbuffer.toString();
            if (s10.indexOf("get.exe") != -1) {
                String s70 = "URLMonitorDuration: ";
                int k5 = s68.lastIndexOf(s70);
                if (k5 != -1) {
                    l3 = TextUtils.toLong(s68.substring(k5 + s70.length(), k5 + s70.length() + 10));
                }
                s70 = "URLMonitorStatus: ";
                k5 = s68.lastIndexOf(s70);
                long l21 = l2;
                if (k5 != -1) {
                    l21 = TextUtils.toLong(s68.substring(k5 + s70.length(), k5 + s70.length() + 10));
                }
                if (l21 != 200L || l2 != (long) kURLContentMatchError && l2 != (long) kURLContentErrorFound) {
                    if (k5 != -1) {
                        l2 = l21;
                        if (debugURL != 0) {
                            System.out.println("Status2 ssl: " + l2);
                        }
                    } else {
                        int j6 = s68.length();
                        if (j6 > 500) {
                            j6 = 500;
                        }
                        String s78 = s68.substring(0, j6);
                        if (j > 0) {
                            l21 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l21, s32, 0, j);
                        }
                        LogManager.log("Error", "Remote URL error, [" + HTTPUtils.getLocationIDByURL(s10) + "] "
                                + lookupStatus(l2) + ", " + s10 + ", " + s + ", detail: " + s78);
                        l2 = kURLRemoteMonitoringError;
                        if (debugURL != 0) {
                            System.out.println("Status3 kURLRemoteMonitoringError: " + l2);
                        }
                    }
                }
            }
            s68 = getHTTPContent(s68);
            int i5 = s68.lastIndexOf("\r\nURLMonitorStatus: ");
            if (i5 >= 0) {
                s68 = s68.substring(0, i5);
            }
            stringbuffer.setLength(0);
            stringbuffer.append(s68);
            l12 = stringbuffer.length();
        } else {

            if (flag3 || s16.equals("https") && !flag1 || flag4) {
                flag2 = true;
                counterlock = null;
                try {
                    if (s16.equals("https")) {
                        counterlock = getSSLGroupLock(socketsession.context);
                    }
                    if (flag4) {
                        Vector vector = new Vector();
                        if (socketsession.context.getSetting("_sslKeepAlive").length() > 0) {
                            if (s5.length() > 0) {
                                vector.add(new Header("Proxy-Connection", "Keep-Alive"));
                            } else {
                                vector.add(new Header("Connection", "Keep-Alive"));
                            }
                        }
                        vector.add(new Header("User-Agent", s18));
                        Header header = socketsession.getCookieHeader(s);
                        if (header != null) {
                            vector.add(header);
                        }
                        if (s27.length() > 0) {
                            vector.add(new Header("Content-Type", s26));
                        }
                        String s42 = "";
                        HTTPRequestSettings httprequestsettings = new HTTPRequestSettings(s, s8, s9, s42, null,
                                s5, s6, s7, vector, 1, (int) l13, (int) l13);
                        StringBuffer stringbuffer3 = new StringBuffer();
                        ApacheHttpMethod apachehttpmethod = null;
                        long l17 = System.currentTimeMillis();
                        apachehttpmethod = ApacheHttpUtils.getRequest(httprequestsettings, stringbuffer3);
                        l3 = System.currentTimeMillis() - l17;
                        l2 = apachehttpmethod.getStatusCode();
                        if (apachehttpmethod.getResponseBodyAsString() != null) {
                            stringbuffer2.append(apachehttpmethod.getResponseBodyAsString());
                        }
                        if (apachehttpmethod.getResponseBody() != null) {
                            l12 = apachehttpmethod.getResponseBody().length;
                        }
                    } else {
                        if (s5 == null) {
                            s5 = "";
                        }
                        Array array1 = new Array();
                        array1.add(Platform.getRoot() + "/tools/sslget");
                        if (s19.length() > 0) {
                            Array array3 = Platform.split(' ', s19);
                            Enumeration enumeration = array3.elements();
                            while (enumeration.hasMoreElements()) {
                                array1.add(enumeration.nextElement());
                            }
                        }
                        if (socketsession.context.getSetting("_sslKeepAlive").length() > 0) {
                            array1.add("-keepAlive");
                        }
                        boolean flag6 = socketsession.context.getSetting("_urlUnixSSL").length() == 0;
                        array1.add("-agent");
                        array1.add("\"" + s18 + "\"");
                        String s14 = s11;
                        s14 = socketsession.getCookieHeader(s, flag6) + s14;
                        if (s14.length() > 0) {
                            String as1[] = TextUtils.split(s14, CRLF);
                            for (int i2 = 0; i2 < as1.length; i2++) {
                                array1.add("-c");
                                array1.add("\"" + as1[i2] + "\"");
                            }

                        }
                        if (s27.length() > 0) {
                            array1.add("-c");
                            array1.add("\"" + CONTENT_TYPE_HEADER + s26 + "\"");
                        }
                        if (array != null) {
                            Enumeration enumeration1 = array.elements();
                            while (enumeration1.hasMoreElements()) {
                                String s44 = (String) enumeration1.nextElement();
                                if (TextUtils.startsWithIgnoreCase(s44, CUSTOM_HEADER)) {
                                    array1.add("-c");
                                    array1.add("\"" + s44.substring(CUSTOM_HEADER.length()) + "\"");
                                }
                            }
                        }
                        array1.add("-x");
                        array1.add(s);
                        array1.add("" + l14);
                        array1.add("\"" + s8 + "\"");
                        array1.add("\"" + s9 + "\"");
                        array1.add("\"" + s27 + "\"");
                        if (!hostIsProxyException(s20, s)) {
                            array1.add("\"" + s5 + "\"");
                        } else {
                            array1.add("\"\"");
                        }
                        array1.add("\"" + s6 + "\"");
                        array1.add("\"" + s7 + "\"");
                        SSLCounter++;
                        if (sslLock.current() == 0) {
                            LogManager.log("RunMonitor",
                                    "ssl block, " + ((sslLock.max - sslLock.current()) + 1) + ", " + s);
                        } else {
                            LogManager.log("RunMonitor", "ssl start, " + SSLCounter + ", " + s);
                        }
                        Array array4 = new Array();
                        l2 = sendSSLRequest(urlinfo.getHost(), socketsession, array1, sslLock, array4);
                        if (debugURL != 0) {
                            System.out.println("Status4 sendSSLRequest: " + l2);
                        }
                        SSLCounter--;
                        Enumeration enumeration2 = array4.elements();
                        int k2 = 0;
                        boolean flag7 = false;
                        l12 = -1L;
                        String s52 = "URLMonitorStatus:";
                        String s55 = "URLMonitorDuration:";
                        String s57 = "URLMonitorDNSDuration:";
                        String s60 = "URLMonitorConnectDuration:";
                        String s62 = "URLMonitorResponseDuration:";
                        String s66 = "URLMonitorDownloadDuration:";
                        boolean flag8 = true;
                        while (enumeration2.hasMoreElements()) {
                            String s69 = (String) enumeration2.nextElement();
                            if (stringbuffer2 != null) {
                                stringbuffer2.append(s69 + "\n");
                            }
                            if (++k2 > 2) {
                                int j5 = s69.indexOf(s52);
                                if (j5 >= 0) {
                                    String s71 = s69.substring(s69.length() - 10);
                                    l2 = TextUtils.toLong(s71);
                                    if (debugURL != 0) {
                                        System.out.println("Status5 statusString: " + l2);
                                    }
                                    flag8 = false;
                                }
                                int i6 = s69.indexOf(s55);
                                if (i6 >= 0) {
                                    String s72 = s69.substring(s69.length() - 10);
                                    l3 = TextUtils.toLong(s72);
                                }
                                i6 = s69.indexOf(s57);
                                if (i6 >= 0) {
                                    String s73 = s69.substring(s69.length() - 10);
                                    l6 = TextUtils.toLong(s73);
                                }
                                i6 = s69.indexOf(s60);
                                if (i6 >= 0) {
                                    String s74 = s69.substring(s69.length() - 10);
                                    l7 = TextUtils.toLong(s74);
                                }
                                i6 = s69.indexOf(s62);
                                if (i6 >= 0) {
                                    String s75 = s69.substring(s69.length() - 10);
                                    l8 = TextUtils.toLong(s75);
                                }
                                i6 = s69.indexOf(s66);
                                if (i6 >= 0) {
                                    String s76 = s69.substring(s69.length() - 10);
                                    l9 = TextUtils.toLong(s76);
                                }
                                if (k2 == 4 && s69.length() == 0) {
                                    flag7 = true;
                                }
                                if ((!flag7 || k2 % 2 != 0 || s69.length() != 0) && flag8) {
                                    stringbuffer.append(s69);
                                    stringbuffer.append('\n');
                                }
                            }
                        }
                        LogManager.log("RunMonitor", "SSL END, " + SSLCounter + ", " + l3 + "   " + s);
                        l12 = stringbuffer.length();
                    }
                    if (counterlock != null) {
                        releaseSSLGroupLock(counterlock);
                    }
                } catch (Exception exception1) {
                    if (counterlock != null) {
                        releaseSSLGroupLock(counterlock);
                    }
                    throw exception1;
                }
            } else {
                String s29 = urlinfo.getFile();
                String s33 = getHostHeader(array, s17, k, s16);
                String s37 = null;
                int j1 = -1;
                if (s5.length() != 0 && !isProxyException(s20, s17)) {
                    if (!s5.startsWith("http://")) {
                        s5 = "http://" + s5;
                    }
                    j1 = k;
                    s37 = s17;
                    URLInfo urlinfo1 = new URLInfo(s5);
                    s17 = urlinfo1.getHost();
                    k = urlinfo1.getConnectPort();
                    if (!s16.equals("https")) {
                        if (s29.equals("/") && !s.endsWith("/")) {
                            s29 = s + "/";
                        } else {
                            s29 = s;
                        }
                    }
                }
                String s45 = socketsession.getCookieHeader(s, false);
                String s48 = getRequestCommand(array);
                String s50 = socketsession.getVersion();
                String s53 = getRequestProtocol(array);
                if (s53.endsWith("/")) {
                    s53 = s53 + s50;
                }
                String s15 = s11;
                int j3 = -1;
                String s58 = s15;
                if ((j3 = s15.indexOf("&" + URLSequenceMonitor.refererEndToken)) != -1) {
                    s15 = s58.substring(0, j3);
                    s15 = s15 + s58.substring(j3 + ("&" + URLSequenceMonitor.refererEndToken).length());
                }
                if (s15.length() > 0 && !s15.endsWith(CRLF)) {
                    s15 = s15 + CRLF;
                }
                if (array != null) {
                    Enumeration enumeration3 = array.elements();
                    while (enumeration3.hasMoreElements()) {
                        String s63 = (String) enumeration3.nextElement();
                        if (TextUtils.startsWithIgnoreCase(s63, CUSTOM_HEADER)) {
                            s15 = s15 + s63.substring(CUSTOM_HEADER.length()) + CRLF;
                        }
                    }
                }
                String s61 = socketsession.getStreamEncoding();
                String s64 = "";
                if (s61.length() > 0) {
                    s64 = "Accept-charset: " + s61 + CRLF;
                }
                String s67 = s48 + " " + s29 + " " + s53 + CRLF + "User-Agent: " + s18 + CRLF + s64
                        + "Accept: */*" + CRLF + "Host: " + s33 + CRLF + s22 + s25 + s45 + s15;
                if (s27.length() == 0) {
                    s67 = s67 + CRLF;
                } else {
                    if (s61.length() > 0) {
                        s64 = "; charset=" + s61;
                    }
                    s67 = s67 + CONTENT_TYPE_HEADER + s26 + s64 + CRLF + "Content-length: " + s27.length()
                            + CRLF + CRLF + s27;
                }
                long l5 = System.currentTimeMillis();
                long l19 = l5;
                InetAddress inetaddress = InetAddress.getByName(s17);
                long l20 = System.currentTimeMillis();
                l6 = l20 - l19;
                String s77 = Platform.dottedIPString(inetaddress.getAddress()) + ":" + k;
                l19 = l20;
                socketstream = socketsession.connect(s77, inetaddress, k, s16, s37, j1, s6, s7, l1);
                l20 = System.currentTimeMillis();
                l7 = l20 - l19;
                Socket socket = socketstream.socket;
                int k6 = (int) (l1 - System.currentTimeMillis());
                if ((long) k6 <= kTimedOutValue) {
                    throw new InterruptedIOException();
                }
                if (s16.equals("https") && socketsession.context.getSetting("_urlCertDays").length() > 0) {
                    try {
                        SSLSession sslsession = ((SSLSocket) socketstream.socket).getSession();
                        X509Certificate ax509certificate[] = sslsession.getPeerCertificateChain();
                        int j7 = 0;
                        for (int k7 = 0; k7 < ax509certificate.length; k7++) {
                            X509Certificate x509certificate = ax509certificate[k7];
                            long l22 = System.currentTimeMillis();
                            long l23 = l22 + 0x5265c00L;
                            int i8 = 0;
                            while (true) {
                                Date date = new Date(l23);
                                try {
                                    x509certificate.checkValidity(date);
                                } catch (CertificateExpiredException certificateexpiredexception) {
                                    if (i8 == 0) {
                                        i8++;
                                    }
                                    break;
                                } catch (CertificateNotYetValidException certificatenotyetvalidexception) {
                                    break;
                                }
                                i8++;
                                l23 += 0x5265c00L;
                            }

                            if (i8 <= 0) {
                                continue;
                            }
                            if (j7 == 0) {
                                j7 = i8;
                                continue;
                            }
                            if (j7 > i8) {
                                j7 = i8;
                            }
                        }

                        if (j7 > 1) {
                            l15 = j7;
                        }
                        if (j7 == 1) {
                            l15 = 0L;
                        }
                    } catch (SSLPeerUnverifiedException sslpeerunverifiedexception) {
                        /* empty */
                    }
                }
                Platform.setSocketTimeout(socket, k6);
                if ((debugURL & kDebugRequest) != 0) {
                    LogManager.log("RunMonitor", "sending request... " + s67);
                }
                l19 = System.currentTimeMillis();
                socketstream.transmit(s67);
                if (stringbuffer2 != null) {
                    stringbuffer2.append(s67);
                }
                if ((debugURL & kDebugRequest) != 0) {
                    LogManager.log("RunMonitor", "request sent");
                }
                long al3[];
                if (s50.equals("1.0")) {
                    al3 = fillBuffer(socketsession, socketstream, l1, stringbuffer, l, l19);
                } else {
                    al3 = fillBufferParse(s48, socketsession, socketstream, socket, l1, stringbuffer, l, l19);
                }
                if (stringbuffer2 != null) {
                    stringbuffer2.append(stringbuffer.toString());
                }
                if (!socketstream.receivedReply || al3.length > 2 && al3[2] == -1L) {
                    socketstream.receivedEndOfStreamOnFirst = false;
                    LogManager.log("RunMonitor", "reopening connection to " + inetaddress);
                    socketstream.reconnect();
                    l19 = l20;
                    socketstream = socketsession.connect(s77, inetaddress, k, s16, s37, j1, s6, s7, l1);
                    l20 = System.currentTimeMillis();
                    l7 += l20 - l19;
                    Socket socket1 = socketstream.socket;
                    int i7 = (int) (l1 - System.currentTimeMillis());
                    if ((long) i7 <= kTimedOutValue) {
                        throw new InterruptedIOException();
                    }
                    Platform.setSocketTimeout(socket1, i7);
                    if (debugURL != 0) {
                        LogManager.log("RunMonitor", "sending request2..." + s67);
                        System.out.println("URLOriginalMonitor : sending request2..." + s67);
                    }
                    l19 = System.currentTimeMillis();
                    socketstream.transmit(s67);
                    if (stringbuffer2 != null) {
                        stringbuffer2.append(s67);
                    }
                    if (debugURL != 0) {
                        LogManager.log("RunMonitor", "request2 sent");
                        System.out.println("URLOriginalMonitor : request2 sent");
                    }
                    if (s50.equals("1.0")) {
                        al3 = fillBuffer(socketsession, socketstream, l1, stringbuffer, l, l19);
                    } else {
                        al3 = fillBufferParse(s48, socketsession, socketstream, socket1, l1, stringbuffer, l,
                                l19);
                    }
                    if (stringbuffer2 != null) {
                        stringbuffer2.append(stringbuffer.toString());
                    }
                }
                l12 = al3[0];
                l8 = al3[1];
                l20 = System.currentTimeMillis();
                l9 = l20 - l19 - l8;
                l3 = l20 - l5;
                if ((debugURL & kDebugIO) != 0) {
                    LogManager.log("RunMonitor",
                            "total, duration: " + l3 + ", clock: " + System.currentTimeMillis());
                }
            }
        }
        // 5637

        if ((debugURL & kDebugData) != 0) {
            LogManager.log("RunMonitor", "content=" + stringbuffer);
        }
        URLScannerInputStream urlscannerinputstream = new URLScannerInputStream(stringbuffer, l2);
        urlscannerinputstream.parse();
        if (urlscannerinputstream.contentLength != -1L) {
            l12 = urlscannerinputstream.contentLength;
        }
        l10 = urlscannerinputstream.lastModified;
        l11 = urlscannerinputstream.date;
        s21 = urlscannerinputstream.location;
        l2 = urlscannerinputstream.status;
        if (j > 0) {
            l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s, 0, j);
        }
        if (debugURL != 0) {
            System.out.println("Status6 scanner.status: " + l2);
        }
        if ((debugURL & kDebugReply) != 0) {
            if (l2 != 200L) {
                LogManager.log("RunMonitor", "status=" + l2 + ", reply=" + stringbuffer);
            } else {
                LogManager.log("RunMonitor", "status=" + l2);
            }
        }
        if (socketstream != null) {
            socketstream.keepAlive = urlscannerinputstream.isKeepAlive();
        }
        if (!socketsession.inRemoteRequest) {
            flag = urlscannerinputstream.refreshRedirect;
        }
        // 5905
    } catch (UnknownHostException e) {
        l2 = kURLBadHostNameError;
        if (debugURL != 0) {
            System.out.println("Status7 kURLBadHostNameError: " + l2 + " exception: " + e.toString());
        }
    } catch (InterruptedIOException e) {
        l2 = kURLTimeoutError;
        if (debugURL != 0) {
            System.out.println("Status8 kURLTimeoutError: " + l2 + " exception: " + e.toString());
        }
    } catch (SocketException e) {
        if (debugURL != 0) {
            e.printStackTrace();
            LogManager.log("RunMonitor", "socket exception, " + e);
        }
        if (Platform.noRoute(e)) {
            l2 = kURLNoRouteToHostError;
            if (debugURL != 0) {
                System.out.println("Status9 kURLNoRouteToHostError: " + l2 + " exception: " + e.toString());
            }
        } else {
            l2 = kURLNoConnectionError;
            if (debugURL != 0) {
                System.out.println("Status10 kURLNoConnectionError: " + l2 + " exception: " + e.toString());
            }
            if (Platform.isWindows()) {
                l2 = kSSL2NotFoundError;
                if (debugURL != 0) {
                    System.out.println("Status11 kSSL2NotFoundError: " + l2 + " exception: " + e.toString());
                }
            }
        }
    } catch (Exception e) {
        String s34 = e.getClass() + ", " + e.getMessage();
        if (s34.indexOf("SSLException") != -1 && Platform.isWindows()) {
            String s38 = s17 + ":" + k;
            addSSL2Only(s38, s + ", " + s34);
            l2 = kSSL2NotFoundError;
            if (debugURL != 0) {
                System.out.println("Status12 kSSL2NotFoundError: " + l2 + " exception: " + e.toString());
            }
        } else {
            e.printStackTrace();
            l2 = kSSL2NotFoundError;
            if (debugURL != 0) {
                System.out.println("Status13 kSSL2NotFoundError: " + l2 + " exception: " + e.toString());
            }
        }
    } finally {
        if (j > 0) {
            l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s, 0, j);
        }
        if (socketstream != null) {
            if (socketstream.receivedEndOfStreamOnFirst) {
                String s79 = s17 + ":" + k;
                addSSL2Only(s79, s + ", " + " first line null");
                l2 = kSSL2NotFoundError;
                if (debugURL != 0) {
                    System.out.println("Status14 kSSL2NotFoundError: " + l2);
                }
                socketstream.receivedEndOfStreamOnFirst = false;
            }
            socketsession.release(socketstream);
        }
    }

    // 6637

    if (200L < l2 && l2 < 300L && socketsession.context.getSetting("_urlEnable2xxStatus").length() == 0) {
        l2 = 200L;
    }
    if (debugURL != 0) {
        System.out.println("Status15 200: " + l2);
    }
    if (l2 == 301L || l2 == 302L || l2 == 303L || l2 == 307L || flag) {
        if (s21 != null) {
            s21 = TextUtils.unescapeHTML(s21);
            s21 = resolveURL(s21, new URLInfo(s1), "");
            socketsession.refererURL = s21;
            long l16 = socketsession.context.getSettingAsLong("_urlRedirectMax", DEFAULT_MAX_REDIRECTS);
            if ((long) i <= l16) {
                if ((debugURL & kDebugRequest) != 0) {
                    LogManager.log("RunMonitor", "redirect=" + s21);
                }
                socketsession.updateCookies(stringbuffer.toString(), s);
                if (stringbuffer1 != null) {
                    stringbuffer1.setLength(0);
                    stringbuffer1.append(s21);
                }
                if (flag5 && concatBuffer != null) {
                    concatBuffer.append(stringbuffer.toString());
                }
                stringbuffer.setLength(0);
                s8 = socketsession.originalUserName;
                s9 = socketsession.originalPassword;
                long al1[] = check1URL(socketsession, s21, s21, s2, s3, s4, s5, s6, s7, null, s8, s9, s2,
                        stringbuffer, l, s11, i + 1, l1, stringbuffer1, stringbuffer2);
                l2 = al1[0];
                if (j > 0) {
                    l2 = getURLStatus_ForBackupToRegularMeansOnly(socketsession, l2, s21, 0, j);
                }
                if (debugURL != 0) {
                    System.out.println("Status16 redirectResult: " + l2);
                }
                l10 = al1[3];
                l11 = al1[4];
                l3 += al1[1];
                l12 += al1[2];
                l6 += al1[5];
                l7 += al1[6];
                l8 += al1[7];
                l9 += al1[8];
            }
        }
    } else {
        if (l2 == (long) kURLNoStatusError) {
            if (socketsession.context.getSetting("_urlAllowNoStatus").length() > 0) {
                l2 = kURLok;
                if (debugURL != 0) {
                    System.out.println("Status17 kURLok: " + l2);
                }
            } else {
                LogManager.log("Error", "URL missing status: " + s);
            }
        }
        if (flag5 && concatBuffer != null) {
            concatBuffer.append(stringbuffer.toString());
            stringbuffer.setLength(0);
            stringbuffer.append(concatBuffer.toString());
            concatBuffer = null;
        }
        String s30 = I18N.UnicodeToString(stringbuffer.toString(), I18N.nullEncoding());
        if (l2 == 200L && s4.length() != 0) {
            int i1 = TextUtils.matchExpression(s30, s4);
            if (i1 != Monitor.kURLok && I18N.hasUnicode(s4)) {
                String s39 = getHTMLEncoding(s30);
                i1 = TextUtils.matchExpression(s30, I18N.UnicodeToString(s4, s39));
            }
            if (i1 == 200) {
                l2 = kURLContentErrorFound;
            }
            if (debugURL != 0) {
                System.out.println("Status18 kURLContentErrorFound: " + l2);
            }
        }
        if (l2 == 200L && s3.length() != 0) {
            l2 = TextUtils.matchExpression(s30, s3);
            if (debugURL != 0) {
                System.out.println("Status19 TextUtils.matchExpression(contents,match): " + l2);
            }
            if (l2 != (long) Monitor.kURLok && I18N.hasUnicode(s3)) {
                String s35 = getHTMLEncoding(s30);
                l2 = TextUtils.matchExpression(s30, I18N.UnicodeToString(s3, s35));
                if (debugURL != 0) {
                    System.out.println(
                            "Status20 TextUtils.matchExpression(contents, I18N.UnicodeToString(match,encoding): "
                                    + l2);
                }
            }
        }
    }
    if (socketsession.context.getSetting("_urlDetailLogEnabled").length() > 0 && s.indexOf("get.exe") == -1) {
        String s31 = "";
        if (s10.length() > 0) {
            s31 = "[" + HTTPUtils.getLocationIDByURL(s10) + "]";
        }
        LogManager.log(socketsession.context.getSetting(pURLLogName),
                s31 + s + "\t" + l2 + "\t" + l3 + "\t" + l12 + "\t" + l10 + "\t" + l11 + "\t" + l6 + "\t" + l7
                        + "\t" + l8 + "\t" + l9 + "\t" + socketsession.context.getProperty(pName) + "\t"
                        + socketsession.context.getProperty(pGroupID) + "\t"
                        + socketsession.context.getProperty(pID));
    }
    if (!socketsession.inRemoteRequest) {
        internalURLs++;
        internalURLBytes += l12;
        internalURLDuration += l3;
        if (l2 != 200L) {
            internalURLErrors++;
        }
    }
    if (s10.length() > 0) {
        internalRemoteURLs++;
        internalRemoteBytes += l12;
        internalRemoteDuration += l3;
        if (l2 != 200L) {
            internalRemoteErrors++;
        }
    } else if (s16.equals("https")) {
        if (flag2) {
            internalSecureURLs++;
            internalSecureBytes += l12;
            internalSecureDuration += l3;
            if (l2 != 200L) {
                internalSecureErrors++;
            }
        } else {
            internalSecureJavaURLs++;
            internalSecureJavaBytes += l12;
            internalSecureJavaDuration += l3;
            if (l2 != 200L) {
                internalSecureJavaErrors++;
            }
        }
    } else if (!socketsession.inRemoteRequest) {
        internalJavaURLs++;
        internalJavaBytes += l12;
        internalJavaDuration += l3;
        if (l2 != 200L) {
            internalJavaErrors++;
        }
    }
    long al[] = new long[10];
    al[0] = l2;
    if (debugURL != 0) {
        System.out.println("Status21 #############################results[0]: " + l2);
    }
    al[1] = l3;
    al[2] = l12;
    al[3] = l10;
    al[4] = l11;
    al[5] = l6;
    al[6] = l7;
    al[7] = l8;
    al[8] = l9;
    al[9] = l15;
    return al;
}

From source file:com.clustercontrol.poller.impl.WbemPollerImpl.java

/**
 * ?// w  w w  .  j a  va2 s .  c  om
 * IP?DataTable????
 * ????DataTable??
 * 
 * @param ipAddress IP
 * @param port ??
 * @param protocol 
 * @param user 
 * @param password 
 * @param nameSpace ???
 * @param retries ????
 * @param timeout ??
 * @param cimList CIM??
 * @param indexCheckFlg ???????????
 */
@SuppressWarnings("unchecked")
public DataTable polling(String ipAddress, int port, String protocol, String user, String password,
        String nameSpace, int retries, int timeout, Set<String> cimList // cim????
) {
    // ?
    init();

    if (port < 0) {
        m_log.debug("set Port. " + port + " to " + DEFAULT_PORT);
        port = DEFAULT_PORT;
    }

    // ?
    if (retries < 0) {
        m_log.debug("set Retries. " + retries + " to " + DEFAULT_RETRIES);
        retries = DEFAULT_RETRIES;
    }

    if (timeout < 0) {
        m_log.debug("set Timeout. " + timeout + " to " + DEFAULT_TIMEOUT);
        timeout = DEFAULT_TIMEOUT;
    }

    // ????
    DataTable dataTable = new DataTable();

    m_ipAddress = ipAddress;
    try {
        InetAddress address = InetAddress.getByName(ipAddress);
        if (address instanceof Inet6Address) {
            m_ipAddress = "[" + m_ipAddress + "]";
        }
    } catch (UnknownHostException e) {
        m_log.warn("polling() ipAddress = " + ipAddress, e);
    }
    m_cimAgentAddress = protocol + "://" + m_ipAddress + ":" + port;

    if (nameSpace != null) {
        m_nameSpace = nameSpace;
    }

    // ?
    if (m_log.isDebugEnabled()) {
        m_log.debug("polling() start : " + m_ipAddress.toString());
        m_log.debug("Port            : " + port);
        m_log.debug("Protocol        : " + protocol);
        m_log.debug("User            : " + user);
        m_log.debug("Password        : " + password);
        m_log.debug("Retries         : " + retries);
        m_log.debug("Timeout         : " + timeout);
        m_log.debug("URL             : " + m_cimAgentAddress);
    }

    long enumerationStart = HinemosTime.currentTimeMillis();

    CIMClient cimClient = null;

    try {

        // *****************************
        // 1. Create user credentials
        // *****************************
        UserPrincipal userPr = new UserPrincipal(user);
        PasswordCredential pwCred = new PasswordCredential(password.toCharArray());

        // *****************************
        // 2. Set NameSpace
        // - URL is set like: http(s)://<IP>:Port
        // - Namespace does not need to be specified in COPs if set in this constuctor
        // - There is no server authentication being done. Thus: No need for a truststore
        // *****************************
        CIMNameSpace ns = new CIMNameSpace(m_cimAgentAddress, m_nameSpace);

        // *****************************
        // 3. Create CIM Client
        // *****************************
        cimClient = new CIMClient(ns, userPr, pwCred);

        // *****************************
        // 4. Create Session Properties
        // *****************************
        SessionProperties properties = cimClient.getSessionProperties();
        if (properties == null) {
            properties = new SessionProperties();
            cimClient.setSessionProperties(properties);
        }
        properties.setHttpTimeOut(timeout);

        m_cimText = new String[cimList.size()];

        // ??????HashMap?
        HashMap<String, ArrayList<String>> requestMap = new HashMap<String, ArrayList<String>>();
        String cimClass = "";
        String cimProperty = "";
        ArrayList<String> propertyList = null;

        int i = 0;
        for (String cimText : cimList) {

            m_cimText[i] = cimText;

            String[] targetValue = m_cimText[i].split("\\.");
            cimClass = targetValue[0];
            cimProperty = targetValue[1];

            propertyList = requestMap.get(cimClass);

            // ????????
            if (propertyList != null && propertyList.size() != 0) {
                propertyList.add(cimProperty);
            }
            // ???????????
            else {
                propertyList = new ArrayList<String>();
                propertyList.add(cimProperty);
                requestMap.put(cimClass, propertyList);
            }

            i++;
        }

        CIMObjectPath cop = null;
        CIMInstance ci = null;
        CIMValue value = null;
        Enumeration<CIMInstance> enm = null;

        // ???
        for (int j = 0; j < retries; j++) {
            boolean errorFlg = false;
            m_retMap = new HashMap<String, CIMValue>();
            try {
                for (Map.Entry<String, ArrayList<String>> cimClassEntry : requestMap.entrySet()) {
                    cimClass = cimClassEntry.getKey();
                    propertyList = cimClassEntry.getValue();

                    m_log.debug("CIMClass : " + cimClassEntry.getKey());

                    cop = new CIMObjectPath(cimClassEntry.getKey());
                    enm = cimClient.enumInstances(cop, true);

                    i = 0;
                    while (enm.hasMoreElements()) {

                        ci = enm.nextElement();

                        for (String property : propertyList) {
                            cimProperty = property;

                            if (ci.getProperty(cimProperty) != null) {

                                value = ci.getProperty(cimProperty).getValue();

                                // ????5?1???
                                // CIM??????????????
                                // 
                                // ?????Array index out of range: 0??
                                // test code
                                /*
                                if(value.getType().getType() == CIMDataType.STRING_ARRAY){
                                   testCounter ++;
                                   if (testCounter > 10) {
                                      value = new CIMValue(new Vector<String>(),
                                            new CIMDataType(CIMDataType.STRING_ARRAY));
                                      testCounter = 0;
                                   }
                                }
                                 */
                                // test code

                                if (!checkCIMData(value)) {
                                    errorFlg = true;
                                    continue;
                                    /*
                                     * ??????????
                                     * (???????????????)
                                     */
                                }
                                m_retMap.put(cimClass + "." + cimProperty + "." + i, value);

                            }
                        }
                        if (errorFlg) {
                            break;
                        }
                        i++;
                    }
                    if (errorFlg) {
                        break;
                    }
                }
            } catch (CIMException e) {
                errorFlg = true;
                for (String property : propertyList) {
                    dataTable.putValue(new TableEntry(getEntryKey(cimClass + "." + property + ".0"),
                            HinemosTime.currentTimeMillis(), ErrorType.IO_ERROR, e));
                }
                m_log.warn("polling() warning :" + m_ipAddress.toString() + ", cimClass=" + cimClass + ", ID="
                        + e.getID() + ", message=" + e.getMessage());
            } catch (Exception e) {
                errorFlg = true;
                for (String property : propertyList) {
                    dataTable.putValue(new TableEntry(getEntryKey(cimClass + "." + property + ".0"),
                            HinemosTime.currentTimeMillis(), ErrorType.IO_ERROR, e));
                }
                m_log.warn("polling() warning :" + m_ipAddress.toString() + ", " + cimClass
                        + " unforeseen error. " + e.getMessage(), e);
            } finally {
                if (errorFlg) {
                    // m_retMap = new HashMap<String, CIMValue>();
                    /*
                     * ???????????m_retMap?
                     * ???
                     */
                } else {
                    break;
                }
            }
        }
    } catch (RuntimeException e) {
        m_log.warn("polling() warning :" + m_ipAddress.toString() + " unforeseen error. " + e.getMessage(), e);
    } finally {
        if (cimClient != null) {
            try {
                cimClient.close();
            } catch (Exception e) {
                m_log.warn("polling():" + m_ipAddress.toString() + " Session close failed", e);
            }
        }
    }

    long enumerationStop = HinemosTime.currentTimeMillis();

    // ?
    if (m_log.isDebugEnabled()) {
        m_log.debug("polling() end : time : " + (enumerationStop - enumerationStart));
    }

    // ***************
    // ?? (?)
    // ***************
    try {
        // ?????????????
        if (m_retMap == null || m_retMap.size() == 0) {
            m_log.debug("wbemReceived() : " + m_ipAddress.toString() + " result is empty");
            return dataTable;
        }

        long time = HinemosTime.currentTimeMillis(); // ?

        for (Map.Entry<String, CIMValue> entry : m_retMap.entrySet()) {
            String cimString = entry.getKey();
            CIMValue value = entry.getValue();

            if (value.getType().getType() == CIMDataType.UINT8) {
                long ret = ((UnsignedInt8) value.getValue()).longValue();
                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);
            } else if (value.getType().getType() == CIMDataType.UINT16) {
                long ret = ((UnsignedInt16) value.getValue()).longValue();
                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);
            } else if (value.getType().getType() == CIMDataType.UINT32) {
                long ret = ((UnsignedInt32) value.getValue()).longValue();
                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);
            } else if (value.getType().getType() == CIMDataType.UINT64) {
                BigInteger bigInt = ((UnsignedInt64) value.getValue()).bigIntValue();
                long ret = bigInt.longValue();
                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);
            } else if (value.getType().getType() == CIMDataType.STRING) {
                String ret = (String) value.getValue();
                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);

            } else if (value.getType().getType() == CIMDataType.STRING_ARRAY) {

                Vector<String> ret = (Vector<String>) value.getValue();
                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);
            } else if (value.getType().getType() == CIMDataType.DATETIME) {

                CIMDateTime sdt = (CIMDateTime) value.getValue();

                // CIMDateTime?Calendar?
                Calendar cal = sdt.getCalendar();

                // Calendar??????????
                long ret = cal.getTimeInMillis() / 1000;

                dataTable.putValue(getEntryKey(cimString), time, ret);

                m_log.debug("polling() dataTable put : " + "entryKey : " + getEntryKey(cimString) + ", time : "
                        + time + ", value : " + ret);

            } else {
                m_log.debug("polling() data type is nothing");
            }

        }
    } catch (Exception e) { // ?????????
        m_log.warn("polling() : " + e.getClass().getSimpleName() + ", " + e.getMessage(), e);

        // ?????
        dataTable.clear();
        for (Map.Entry<String, CIMValue> entry : m_retMap.entrySet()) {
            final String entryKey = getEntryKey(entry.getKey());
            dataTable
                    .putValue(new TableEntry(entryKey, HinemosTime.currentTimeMillis(), ErrorType.IO_ERROR, e));
        }
    }
    return dataTable;
}