#vulnerable code 
                                private void nextRound() throws NulsException, IOException {
        packingRoundManager.calc(getBestBlock());
        while (TimeService.currentTimeMillis() < (packingRoundManager.getCurrentRound().getStartTime())) {
            try {
                Thread.sleep(100L);
            } catch (InterruptedException e) {
                Log.error(e);
            }
        }
        boolean imIn = consensusManager.isPartakePacking() && packingRoundManager.getCurrentRound().getLocalPacker() != null;
        if (imIn) {
            startMeeting();
        }
    } 
                            #location 3 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                                private void nextRound() throws NulsException, IOException {
        packingRoundManager.calc(getBestBlock());
        PocMeetingRound round = packingRoundManager.getCurrentRound();
        while (TimeService.currentTimeMillis() < round.getStartTime()) {
            try {
                Thread.sleep(100L);
            } catch (InterruptedException e) {
                Log.error(e);
            }
        }
        boolean imIn = consensusManager.isPartakePacking() &&round.getLocalPacker() != null;
        if (imIn) {
            startMeeting(round);
        }
    }