Fix the bug of NullPointerException.
This commit is contained in:
@@ -30,12 +30,13 @@ public class AkkaMiner {
|
|||||||
|
|
||||||
ActorSystem system = null;
|
ActorSystem system = null;
|
||||||
ActorRef parsingActor = null;
|
ActorRef parsingActor = null;
|
||||||
final int numberOfWorkers = 100;
|
final int numberOfWorkers = 200;
|
||||||
|
final WorkMessage msg = new WorkMessage(0, msgFiles);
|
||||||
try {
|
try {
|
||||||
log.info("Akka beings...");
|
log.info("Akka beings...");
|
||||||
system = ActorSystem.create("Mining-FixPattern-System");
|
system = ActorSystem.create("Mining-FixPattern-System");
|
||||||
parsingActor = system.actorOf(MineFixPatternActor.props(numberOfWorkers, editScriptsFilePath, patchesSourceCodeFilePath), "mine-fix-pattern-actor");
|
parsingActor = system.actorOf(MineFixPatternActor.props(numberOfWorkers, editScriptsFilePath, patchesSourceCodeFilePath), "mine-fix-pattern-actor");
|
||||||
parsingActor.tell(msgFiles, ActorRef.noSender());
|
parsingActor.tell(msg, ActorRef.noSender());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
system.shutdown();
|
system.shutdown();
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ public class MineFixPatternActor extends UntypedActor {
|
|||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Object message) throws Exception {
|
public void onReceive(Object message) throws Exception {
|
||||||
if (message instanceof List<?>) {
|
if (message instanceof WorkMessage) {
|
||||||
List<?> files = (List<?>) message;
|
List<MessageFile> files = ((WorkMessage) message).getMsgFiles();
|
||||||
int size = files.size();
|
int size = files.size();
|
||||||
int average = size / numberOfWorkers;
|
int average = size / numberOfWorkers;
|
||||||
|
|
||||||
@@ -55,9 +55,10 @@ public class MineFixPatternActor extends UntypedActor {
|
|||||||
toIndex = size;
|
toIndex = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Object> filesOfWorkers = new ArrayList<>();
|
List<MessageFile> filesOfWorkers = new ArrayList<>();
|
||||||
filesOfWorkers.addAll(files.subList(fromIndex, toIndex));
|
filesOfWorkers.addAll(files.subList(fromIndex, toIndex));
|
||||||
mineRouter.tell(filesOfWorkers, getSelf());
|
final WorkMessage workMsg = new WorkMessage(i + 1, filesOfWorkers);
|
||||||
|
mineRouter.tell(workMsg, getSelf());
|
||||||
logger.info("Assign a task to worker #" + (i + 1) + "...");
|
logger.info("Assign a task to worker #" + (i + 1) + "...");
|
||||||
}
|
}
|
||||||
} else if ("STOP".equals(message.toString())) {
|
} else if ("STOP".equals(message.toString())) {
|
||||||
|
|||||||
@@ -33,17 +33,17 @@ public class MineFixPatternWorker extends UntypedActor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Object message) throws Exception {
|
public void onReceive(Object message) throws Exception {
|
||||||
if (message instanceof List<?>) {
|
if (message instanceof WorkMessage) {
|
||||||
List<?> files = (List<?>) message;
|
WorkMessage msg = (WorkMessage) message;
|
||||||
|
List<MessageFile> files = msg.getMsgFiles();
|
||||||
StringBuilder editScripts = new StringBuilder();
|
StringBuilder editScripts = new StringBuilder();
|
||||||
StringBuilder patchesSourceCode = new StringBuilder();
|
StringBuilder patchesSourceCode = new StringBuilder();
|
||||||
for (Object obj : files) {
|
for (MessageFile msgFile : files) {
|
||||||
MessageFile msgFile = (MessageFile) obj;
|
|
||||||
File revFile = msgFile.getRevFile();
|
File revFile = msgFile.getRevFile();
|
||||||
File prevFile = msgFile.getPrevFile();
|
File prevFile = msgFile.getPrevFile();
|
||||||
File diffentryFile = msgFile.getDiffEntryFile();
|
File diffentryFile = msgFile.getDiffEntryFile();
|
||||||
if (!prevFile.exists()) {
|
if (!prevFile.exists()) {
|
||||||
System.out.println(prevFile.getPath());
|
System.out.println("Previous File:" + prevFile.getPath());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Miner miner = new Miner();
|
Miner miner = new Miner();
|
||||||
@@ -52,15 +52,13 @@ public class MineFixPatternWorker extends UntypedActor {
|
|||||||
editScripts.append(miner.getAstEditScripts());
|
editScripts.append(miner.getAstEditScripts());
|
||||||
patchesSourceCode.append(miner.getPatchesSourceCode());
|
patchesSourceCode.append(miner.getPatchesSourceCode());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(revFile.getPath());
|
System.out.println("Revised File:" + revFile.getPath());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<File> subFiles1 = FileHelper.getAllFilesInCurrentDiectory(editScriptsFilePath, ".list");
|
FileHelper.outputToFile(editScriptsFilePath + "edistScripts" + msg.getId() + ".list", editScripts, false);
|
||||||
List<File> subFiles2 = FileHelper.getAllFilesInCurrentDiectory(patchesSourceCodeFilePath, ".list");
|
FileHelper.outputToFile(patchesSourceCodeFilePath + "patches" + msg.getId() + ".list", patchesSourceCode, false);
|
||||||
FileHelper.outputToFile(editScriptsFilePath + "edistScripts" + subFiles1.size() + ".list", editScripts, false);
|
|
||||||
FileHelper.outputToFile(patchesSourceCodeFilePath + "patches" + subFiles2.size() + ".list", patchesSourceCode, false);
|
|
||||||
|
|
||||||
this.getSender().tell("STOP", getSelf());
|
this.getSender().tell("STOP", getSelf());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package edu.lu.uni.serval.FixPatternMiner;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class WorkMessage {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private List<MessageFile> msgFiles;
|
||||||
|
|
||||||
|
public WorkMessage(int id, List<MessageFile> msgFiles) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.msgFiles = msgFiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MessageFile> getMsgFiles() {
|
||||||
|
return msgFiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user