Buggy code:
public class ExplorerWithRadioChannel { public static void main ( String [ ] args ) { File home = new File ( System . getProperty ( "user.home" ) ) ; final File localRoot = new File ( home , ".sfm" ) ; <START_BUG> boolean local = false ; <END_BUG> String server = ( local ) ? "localhost" : "www.softwarefm.com" ; String prefix = ( local ) ? new File ( home , ".sfm_remote" ) . getAbsolutePath ( ) : "git:////www.softwarefm.com//" ; int port = ( local ) ? 8080 : 80 ; final IHttpClient client = Utils . builder ( server , port ) ; final IRepositoryFacard facard = GitRepositoryFactory . gitRepositoryFacard ( client , localRoot , prefix ) ; final IServiceExecutor service = IServiceExecutor . Utils . defaultExecutor ( ) ; try { final List < String > rootUrl = Arrays . asList ( "//softwareFm//data" , "//softwareFm//snippet" ) ; final String firstUrl = "//softwareFm//data//activemq//activemq//artifact//activemq-axis" ; Show . display ( ExplorerWithRadioChannel . class . getSimpleName ( ) , new org . softwareFm . utilities . functions . IFunction1 < Composite , Composite > ( ) { @ Override public Composite apply ( Composite from ) throws Exception { Composite explorerAndButton = Swts . newComposite ( from , NULL , "ExplorerAndButton" ) ; explorerAndButton . setLayout ( new GridLayout ( ) ) ; Composite buttonPanel = Swts . newComposite ( explorerAndButton , NULL , "ButtonPanel" ) ; buttonPanel . setLayout ( Row . getHorizonalNoMarginRowLayout ( ) ) ; final IMutableCardDataStore cardDataStore = ICardDataStore . Utils . repositoryCardDataStore ( from , facard ) ; ICardFactory cardFactory = ICardFactory . Utils . cardFactory ( ) ; final CardConfig cardConfig = ICollectionConfigurationFactory . Utils . softwareFmConfigurator ( ) . configure ( from . getDisplay ( ) , new CardConfig ( cardFactory , cardDataStore ) ) ; IMasterDetailSocial masterDetailSocial = IMasterDetailSocial . Utils . masterDetailSocial ( explorerAndButton ) ; IPlayListGetter playListGetter = new ArtifactPlayListGetter ( cardDataStore ) ; ILoginStrategy loginStrategy = ILoginStrategy . Utils . softwareFmLoginStrategy ( from . getDisplay ( ) , service , client ) ; final IExplorer explorer = IExplorer . Utils . explorer ( masterDetailSocial , cardConfig , rootUrl , playListGetter , service , loginStrategy ) ; ICardMenuItemHandler . Utils . addSoftwareFmMenuItemHandlers ( explorer ) ; IBrowserConfigurator . Utils . configueWithUrlRssTweet ( explorer ) ; SnippetFeedConfigurator . configure ( explorer , cardConfig ) ; explorer . displayCard ( firstUrl , new CardAndCollectionDataStoreAdapter ( ) ) ; buttonPanel . setLayoutData ( Grid . makeGrabHorizonalAndFillGridData ( ) ) ; masterDetailSocial . getComposite ( ) . setLayoutData ( Grid . makeGrabHorizonalVerticalAndFillGridData ( ) ) ; Buttons . makePushButton ( buttonPanel , null , "Next" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . next ( ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Prev" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . previous ( ) ; } } ) ; final AtomicReference < String > url = new AtomicReference < String > ( ) ; explorer . addCardListener ( new ICardChangedListener ( ) { @ Override public void valueChanged ( ICard card , String key , Object newValue ) { } @ Override public void cardChanged ( ICardHolder cardHolder , ICard card ) { url . set ( card . url ( ) ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Select<seq2seq4repair_space>Artifact" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . selectAndNext ( url . get ( ) ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Refresh" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . clearCaches ( ) ; String url = explorer . getCardHolder ( ) . getCard ( ) . url ( ) ; explorer . displayCard ( url , new CardAndCollectionDataStoreAdapter ( ) ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Unrecognised<seq2seq4repair_space>Jar" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . displayUnrecognisedJar ( new File ( "a//b//cake-forkjoin-0.1.jar" ) , "0123439754987345978" , "some<seq2seq4repair_space>project<seq2seq4repair_space>name" ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Not<seq2seq4repair_space>A<seq2seq4repair_space>Jar" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . displayNotAJar ( ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Artifact" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . displayCard ( firstUrl , new CardAndCollectionDataStoreAdapter ( ) ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Nuke" , false , new Runnable ( ) { @ Override public void run ( ) { cardConfig . cardDataStore . delete ( explorer . getCardHolder ( ) . getCard ( ) . url ( ) , new IAfterEditCallback ( ) { @ Override public void afterEdit ( String url ) { explorer . displayCard ( url , new CardAndCollectionDataStoreAdapter ( ) ) ; } } ) ; } } ) ; Buttons . makePushButton ( buttonPanel , null , "Mysoftwarefm" , false , new Runnable ( ) { @ Override public void run ( ) { explorer . showMySoftwareFm ( ) ; } } ) ; Row . setRowDataFor ( 100 , 20 , buttonPanel . getChildren ( ) ) ; explorer . addExplorerListener ( IExplorerListener . Utils . sysout ( ) ) ; return explorerAndButton ; } } ) ; } finally { facard . shutdown ( ) ; service . shutdownAndAwaitTermination ( clientTimeOut , TimeUnit . SECONDS ) ; } } No newline ; at end ; of file ; }

Fix:
boolean local = true ;