//Line 829 of https://github.com/freenet/fred/blob/next/src/freenet/client/async/BaseManifestPutter.java public void start(ClientContext context) throws InsertException { 830 if (logMINOR) 831 Logger.minor(this, "Starting " + this+" persistence="+persistent()+ " containermode="+containerMode); 832 PutHandler[] running; 833 PutHandler[] containers; 834 835 synchronized (this) { 836 running = runningPutHandlers.toArray(new PutHandler[runningPutHandlers.size()]); 837 if (containerMode) { 838 containers = getContainersToStart(running.length > 0); 839 } else { 840 containers = null; 841 } 842 } 843 844 try { 845 for (int i = 0; i < running.length; i++) { 846 running[i].start(context); 847 if (logMINOR) 848 Logger.minor(this, "Started " + i + " of " + running.length); 849 if (isFinished()) { 850 if (logMINOR) 851 Logger.minor(this, "Already finished, killing start() on " + this); 852 return; 853 } 854 } 855 if (logMINOR) 856 Logger.minor(this, "Started " + running.length + " PutHandler's for " + this); 857 858 if (containerMode) { 859 for (int i = 0; i < containers.length; i++) { 860 containers[i].start(context); 861 if (logMINOR) 862 Logger.minor(this, "Started " + i + " of " + containers.length); 863 if (isFinished()) { 864 if (logMINOR) 865 Logger.minor(this, "Already finished, killing start() on " + this); 866 return; 867 } 868 } 869 if (logMINOR) 870 Logger.minor(this, "Started " + containers.length + " PutHandler's (containers) for " + this); 871 872 } 873 if (!containerMode && running.length == 0) { 874 gotAllMetadata(context); 875 } 876 } catch (InsertException e) { 877 synchronized(this) { 878 finished = true; 879 } 880 cancelAndFinish(context); 881 throw e; 882 } 883 //debugDecompose("Start - End"); 884 }