public void readBug(int id) {
		System.out.println("====READING BUG: " + id + "====");
		String urlStr = Const.bugXmlUrl("" + id);
		if (!mh.existBug("" + id)) {

			int tryTimes = 3;
			while (tryTimes > 0) {
				try {
					URL u = new URL(urlStr);
					HttpsURLConnection conn = (HttpsURLConnection) u
							.openConnection();
					Document dom = Jsoup.parse(conn.getInputStream(), "utf-8",
							urlStr);
					Elements skip1 = dom.getElementsByAttributeValue("error",
							"InvalidBugId");
					Elements skip2 = dom.getElementsByAttributeValue("error",
							"NotPermitted");

					if (skip1.isEmpty() && skip2.isEmpty()) {

						System.out.print("FILTER SOURCECODE...");
						DBObject bug = filterBugInfo(dom);
						System.out.println("OK");

						System.out.print("GETTING HISTORY...");
						List<DBObject> his = getHistory("" + id);
						if (his == null) {
							his = new ArrayList<DBObject>();
							LogHelper.logHistory(id);
						}
						bug.put("history", his);
						System.out.println("OK");

						System.out.print("FILTER COMMENT...");
						ArrayList<DBObject> commentList = filterComment(dom);
						System.out.println("OK");
						System.out.print("PASSING COMMENT...");
						for (DBObject comm : commentList) {
							if (!mh.existComment(comm)) {
								comm.put("bug_id", "" + id);
								mh.addComment(comm);
							} else {
								System.out.println("COMMENT ALREADY EXISTED: "
										+ comm.get("commentid"));
							}
						}
						System.out.println("OK");

						System.out.print("PASSING SOURCECODE...");
						bug.put("url", urlStr);
						mh.addBug(bug);
						LogHelper.logThis(id + "");
						System.out.println("OK");
					} else {
						System.out.println("EMPTY BUG!");
					}
					tryTimes = 0;
				} catch (Exception e) {
					System.out.println("ERROR: " + e.getMessage());
					System.out.println("TRY AGAIN: " + tryTimes);
					tryTimes--;
					if (tryTimes == 0) {
						LogHelper.logSkip(id);
					}
					continue;
				}
			}
		} else {
			System.out.println("BUG ALREADY EXISTED: " + id);
			LogHelper.logThis(id + "");
		}
	}