#vulnerable code 
                                public void checkGenesisBlock() throws IOException {
        Block genesisBlock = NulsContext.getInstance().getGenesisBlock();
        genesisBlock.verify();
        Block localGenesisBlock = this.blockService.getGengsisBlock();
        if (null == localGenesisBlock) {
            this.blockService.saveBlock(genesisBlock);
            return;
        }
        localGenesisBlock.verify();
        System.out.println(genesisBlock.size()+"===="+localGenesisBlock.size());
        String logicHash = genesisBlock.getHeader().getHash().getDigestHex();
        System.out.println(logicHash);
        String localHash = localGenesisBlock.getHeader().getHash().getDigestHex();
        System.out.println(localHash);
        if (!logicHash.equals(localHash)) {
            throw new NulsRuntimeException(ErrorCode.DATA_ERROR);
        }
    } 
                            #location 16 
                            #vulnerability type THREAD_SAFETY_VIOLATION
#fixed code
                                public void checkGenesisBlock() throws IOException {
        Block genesisBlock = NulsContext.getInstance().getGenesisBlock();
        genesisBlock.verify();
        Block localGenesisBlock = this.blockService.getGengsisBlock();
        if (null == localGenesisBlock) {
            this.blockService.saveBlock(genesisBlock);
            return;
        }
        localGenesisBlock.verify();
        String logicHash = genesisBlock.getHeader().getHash().getDigestHex();
        String localHash = localGenesisBlock.getHeader().getHash().getDigestHex();
        if (!logicHash.equals(localHash)) {
            throw new NulsRuntimeException(ErrorCode.DATA_ERROR);
        }
    }