#vulnerable code 
                                private void rollbackAppraval(Block block) {
        if (null == block) {
            Log.warn("the block is null!");
            return;
        }
        this.rollbackTxList(block.getTxs(), 0, block.getTxs().size());
        PackingRoundManager.getValidateInstance().calc(this.getBlock(block.getHeader().getPreHash().getDigestHex()));
        List<String> hashList = this.bifurcateProcessor.getHashList(block.getHeader().getHeight() - 1);
        if (hashList.size() > 1) {
            Block preBlock = confirmingBlockCacheManager.getBlock(block.getHeader().getPreHash().getDigestHex());
            context.setBestBlock(preBlock);
            this.rollbackAppraval(preBlock);
        }
    } 
                            #location 7 
                            #vulnerability type NULL_DEREFERENCE
#fixed code
                                private void rollbackAppraval(Block block) {
        if (null == block) {
            Log.warn("the block is null!");
            return;
        }
        this.rollbackTxList(block.getTxs(), 0, block.getTxs().size());
        Block preBlock =this.getBlock(block.getHeader().getPreHash().getDigestHex());
        context.setBestBlock(preBlock);
        PackingRoundManager.getValidateInstance().calc(preBlock);
        List<String> hashList = this.bifurcateProcessor.getHashList(block.getHeader().getHeight() - 1);
        if (hashList.size() > 1) {
            this.rollbackAppraval(preBlock);
        }
    }