Buggy code:
public class Controller extends Observable { private String version = "0.26.0<seq2seq4repair_space>beta" ; private String buildTime = "2016-02-19<seq2seq4repair_space>00:00:00<seq2seq4repair_space>UTC" ; private long buildTimestamp ; public static final String releaseVersion = "0.26.0" ; public static final int STATUS_NO_CONNECTIONS = 0 ; public static final int STATUS_SYNCHRONIZING = 1 ; public static final int STATUS_OK = 2 ; private boolean processingWalletSynchronize = false ; private int status ; private Network network ; private ApiService rpcService ; private WebService webService ; private BlockChain blockChain ; private BlockGenerator blockGenerator ; private Wallet wallet ; private Synchronizer synchronizer ; private TransactionCreator transactionCreator ; private boolean needSync = false ; private Timer timer = new Timer ( ) ; private Timer timerPeerHeightUpdate = new Timer ( ) ; private Random random = new SecureRandom ( ) ; private byte [ ] foundMyselfID = new byte [ 128 ] ; private byte [ ] messageMagic ; private long toOfflineTime ; private Map < Peer , Integer > peerHeight ; private Map < Peer , Pair < String , Long > > peersVersions ; private static Controller instance ; public boolean isProcessingWalletSynchronize ( ) { } public void setProcessingWalletSynchronize ( boolean isPocessing ) { } public String getVersion ( ) { } public int getNetworkPort ( ) { } public String getBuildDateTimeString ( ) { } public String getBuildDateString ( ) { } public long getBuildTimestamp ( ) { } public byte [ ] getMessageMagic ( ) { } public void statusInfo ( ) { } public byte [ ] getFoundMyselfID ( ) { } public int getWalletSyncHeight ( ) { } public void getSendMyHeightToPeer ( Peer peer ) { } public Map < Peer , Integer > getPeerHeights ( ) { } public Integer getHeightOfPeer ( Peer peer ) { } public Map < Peer , Pair < String , Long > > getPeersVersions ( ) { } public Pair < String , Long > getVersionOfPeer ( Peer peer ) { } public static Controller getInstance ( ) { } public int getStatus ( ) { } public void setNeedSync ( boolean needSync ) { } public boolean isNeedSync ( ) { } public void start ( ) throws Exception { } public void replaseAssetsFavorites ( ) { } public void reCreateDB ( ) throws IOException , Exception { } public void reCreateDB ( boolean useDataBak ) throws IOException , Exception { File dataDir = new File ( Settings . getInstance ( ) . getDataDir ( ) ) ; if ( dataDir . exists ( ) ) { Files . walkFileTree ( dataDir . toPath ( ) , new SimpleFileVisitorForRecursiveFolderDeletion ( ) ) ; File dataBak = getDataBakDir ( dataDir ) ; if ( ( useDataBak && ( dataBak . exists ( ) ) ) && ( Settings . getInstance ( ) . isCheckpointingEnabled ( ) ) ) { FileUtils . copyDirectory ( dataBak , dataDir ) ; System . out . println ( Lang . getInstance ( ) . translate ( "restoring<seq2seq4repair_space>backup<seq2seq4repair_space>database" ) ) ; try { DBSet . reCreateDatabase ( ) ; } catch ( IOError e ) { e . printStackTrace ( ) ; if ( dataDir . exists ( ) ) { Files . walkFileTree ( dataDir . toPath ( ) , new SimpleFileVisitorForRecursiveFolderDeletion ( ) ) ; } if ( dataBak . exists ( ) ) { <START_BUG> Files . walkFileTree ( dataDir . toPath ( ) , new SimpleFileVisitorForRecursiveFolderDeletion ( ) ) ; <END_BUG> } DBSet . reCreateDatabase ( ) ; } } else { DBSet . reCreateDatabase ( ) ; } } if ( DBSet . getInstance ( ) . getBlockMap ( ) . isProcessing ( ) ) { throw new Exception ( ( ( ( Lang . getInstance ( ) . translate ( "The<seq2seq4repair_space>application<seq2seq4repair_space>was<seq2seq4repair_space>not<seq2seq4repair_space>closed<seq2seq4repair_space>correctly!<seq2seq4repair_space>Delete<seq2seq4repair_space>the<seq2seq4repair_space>folder<seq2seq4repair_space>" ) ) + ( dataDir . getAbsolutePath ( ) ) ) + ( Lang . getInstance ( ) . translate ( "<seq2seq4repair_space>and<seq2seq4repair_space>start<seq2seq4repair_space>the<seq2seq4repair_space>application<seq2seq4repair_space>again." ) ) ) ) ; } } public void startFromScratchOnDemand ( ) throws IOException { } private File getDataBakDir ( File dataDir ) { } public void rpcServiceRestart ( ) { } public void webServiceRestart ( ) { } @ Override public void addObserver ( Observer o ) { } @ Override public void deleteObserver ( Observer o ) { } public void deleteWalletObserver ( Observer o ) { } private boolean isStopping = false ; public void stopAll ( ) { } private void createDataCheckpoint ( ) { } public List < Peer > getActivePeers ( ) { } public void walletStatusUpdate ( int height ) { } public long getToOfflineTime ( ) { } public void setToOfflineTime ( long time ) { } public void onConnect ( Peer peer ) { } public void actionAfterConnect ( ) { } public void forgingStatusChanged ( ForgingStatus status ) { } public void onDisconnect ( Peer peer ) { } public void onError ( Peer peer ) { } public void onMessage ( Message message ) { } public void addActivePeersObserver ( Observer o ) { } public void removeActivePeersObserver ( Observer o ) { } private void broadcastBlock ( Block newBlock ) { } private void broadcastTransaction ( Transaction transaction ) { } public boolean isUpToDate ( ) { } public boolean isNSUpToDate ( ) { } public void update ( ) { } private Peer getMaxHeightPeer ( ) { } public int getMaxPeerHeight ( ) { } public boolean doesWalletExists ( ) { } public boolean doesWalletDatabaseExists ( ) { } public boolean createWallet ( byte [ ] seed , String password , int amount ) { } public boolean recoverWallet ( byte [ ] seed , String password , int amount ) { } public List < Account > getAccounts ( ) { } public List < PrivateKeyAccount > getPrivateKeyAccounts ( ) { } public String generateNewAccount ( ) { } public PrivateKeyAccount getPrivateKeyAccountByAddress ( String address ) { } public Account getAccountByAddress ( String address ) { } public BigDecimal getUnconfirmedBalance ( String address ) { }

Fix:
Files . walkFileTree ( dataBak . toPath ( ) , new SimpleFileVisitorForRecursiveFolderDeletion ( ) ) ;