https://drive.google.com/folderview?id=0B4cxDnPAjctLfmwxSlZhcFhDZEd4aF9QQnBaZWpQT1VhSnN4UE4xdG9NcDc1Nm55YzZzdW8&usp=sharing code in this link above the main method run 5 threads when I run the code every thread share variables with other thread and output should in this structure E:\TIPZIL8\1\osama\2\osama12.pdf E:\TIPZIL8\2\ali\3\Ahmed23.htm E:\TIPZIL8\3\ali\4\amr34.htm E:\TIPZIL8\4\ali\5\hossam45.htm E:\TIPZIL8\5\ali\6\ali56.htm
but the out put different
public class GetPDFLink implements Runnable {
private String id;
private String link;
private String info;
private String name;
public GetPDFLink(String id,String link,String info,String name) {
this.id = id;
this.link = link;
this.info = info;
this.name = name;
}
public void run() {
Download a = new Download();
try {
System.out.println(name + " is running");
System.out.println(id+"&&&&&&&&&&&");
a.downloadHTMLWithPDFolder(id, link, info, name);
} catch (IOException ex) {
Logger.getLogger(GetPDFLink.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Thread.sleep(2000);
} catch (InterruptedException ex) {
Logger.getLogger(GetPDFLink.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("after sleeping");
}
public static void main(String[] args) throws InterruptedException {
GetPDFLink m_1 = new GetPDFLink("1","http://ir.pdf.com/secfiling.cfm?filingID=1437749-15-7272","pdf1","osama");
GetPDFLink m_2 = new GetPDFLink("2","http://ir.pdf.com/secfiling.cfm?filingID=1437749-15-3861","pdf2","Ahmed");
GetPDFLink m_3 = new GetPDFLink("3","http://ir.pdf.com/secfiling.cfm?filingID=1437749-15-3698","pdf3","amr");
GetPDFLink m_4 = new GetPDFLink("4","http://ir.pdf.com/secfiling.cfm?filingID=1437749-15-3369","pdf4","hossam");
GetPDFLink m_5 = new GetPDFLink("5","http://ir.pdf.com/secfiling.cfm?filingID=1437749-15-3369","pdf5","ali");
Thread t1 = new Thread(m_1);
Thread t2 = new Thread(m_2);
Thread t3 = new Thread(m_3);
Thread t4 = new Thread(m_4);
Thread t5 = new Thread(m_5);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
System.out.println("this might print first!");
}
}
public class Download{
static String company_id = "";
static String company_Name = "";
static String pdfInfo = "";
static String pdfLinkDownload = "";
static String s= "";
public void downloadHTMLWithPDFolder(String company_id,String pdfLinkDownload,String pdfInfo,
String company_Name)
throws MalformedURLException, IOException {
int company = 0;
Download.company_id = company_id;
Download.company_Name = company_Name;
Download.pdfInfo = pdfInfo;
Download.pdfLinkDownload = pdfLinkDownload;
BufferedInputStream in = null;
FileOutputStream fout = null;
File file=new File("E:\\ALL");
company = Integer.parseInt(company_id);
company ++;
s = ""+company;
if(!file.exists())
{
file.mkdirs();
}
File fileid=new File("E:\\ALL\\"+company_id);
if(!fileid.exists())
{
fileid.mkdirs();
}
File file1=new File("E:\\ALL\\"+company_id+"\\"+company_Name);
if(!file1.exists())
{
file1.mkdirs();
}
File filec=new File("E:\\ALL\\"+company_id+"\\"+company_Name+"\\"+s);
if(!filec.exists())
{
filec.mkdirs();
}
try {
System.out.println("open...");
pdfInfo.replaceAll("/","");
fout =new FileOutputStream("E:\\ALL\\"+company_id+"\\"+company_Name+"\\"+s+"\\"+company_Name+company_id+company+".htm");
System.out.println("LINK : " + pdfLinkDownload);
in = new BufferedInputStream(new URL(pdfLinkDownload).openStream());
final byte data[] = new byte[1024];
int count;
while ((count = in.read(data, 0, 1024)) != -1) {
fout.write(data, 0, count);
}
}
finally
{
if (in != null)
{
in.close();
}
if (fout != null) {
fout.close();
}
System.out.println("fileDwonloaded ....***");
}
}
}
Edit :: The Problem Solved by remove static variables