print(true);
logger.log(Level.WARNING, "DNSIncoming() dump " + print(true) + "\n exception " , e);
    DNSIncoming(DatagramPacket packet) throws IOException {        this.packet = packet;        this.data = packet.getData();        this.len = packet.getLength();        this.off = packet.getOffset();        this.questions = EMPTY;        this.answers = EMPTY;                try {            id = readUnsignedShort();            flags = readUnsignedShort();            numQuestions = readUnsignedShort();            numAnswers = readUnsignedShort();            numAuthorities = readUnsignedShort();            numAdditionals = readUnsignedShort();                        // parse questions            if (numQuestions > 0) {                questions = new Vector(numQuestions);                for (int i = 0 ; i < numQuestions ; i++) {                    DNSQuestion question = new DNSQuestion(readName(), readUnsignedShort(), readUnsignedShort());                    questions.add(question);                }            }                        // parse answers            int n = numAnswers + numAuthorities + numAdditionals;            if (n > 0) {                answers = new Vector(n);                for (int i = 0 ; i < n ; i++) {                    String domain = readName();                    int type = readUnsignedShort();                    int clazz = readUnsignedShort();                    int ttl = readInt();                    int len = readUnsignedShort();                    int end = off + len;                    DNSRecord rec = null;                                        switch (type) {                        case DNSConstants.TYPE_A:                            rec = new DNSRecord.Address(domain, type, clazz, ttl, readInt());                            break;                        case DNSConstants.TYPE_CNAME:                        case DNSConstants.TYPE_PTR:                            rec = new DNSRecord.Pointer(domain, type, clazz, ttl, readName());                            break;                        case DNSConstants.TYPE_TXT:                            rec = new DNSRecord.Text(domain, type, clazz, ttl, readBytes(off, len));                            break;                        case DNSConstants.TYPE_SRV:                            rec = new DNSRecord.Service(domain, type, clazz, ttl,                            readUnsignedShort(), readUnsignedShort(), readUnsignedShort(), readName());                            break;                        default :                            //System.out.println("DNSIncoming unknown type:"+type);                            break;                    }                                        if (rec != null) {                        // Add a record, if we were able to create one.                        answers.add(rec);                    } else {                        // Addjust the numbers for the skipped record                        if (answers.size() < numAnswers) {                            numAnswers--;                        } else if (answers.size() < numAnswers + numAuthorities) {                            numAuthorities--;                        } else if (answers.size() < numAnswers + numAuthorities + numAdditionals) {                            numAdditionals--;                        }                    }                    off = end;                }            }        } catch (IOException e) {            print(true);            throw e;        }    }