Fix the bug of NullPointerException.
This commit is contained in:
@@ -30,12 +30,13 @@ public class AkkaMiner {
|
||||
|
||||
ActorSystem system = null;
|
||||
ActorRef parsingActor = null;
|
||||
final int numberOfWorkers = 100;
|
||||
final int numberOfWorkers = 200;
|
||||
final WorkMessage msg = new WorkMessage(0, msgFiles);
|
||||
try {
|
||||
log.info("Akka beings...");
|
||||
system = ActorSystem.create("Mining-FixPattern-System");
|
||||
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) {
|
||||
system.shutdown();
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -43,8 +43,8 @@ public class MineFixPatternActor extends UntypedActor {
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void onReceive(Object message) throws Exception {
|
||||
if (message instanceof List<?>) {
|
||||
List<?> files = (List<?>) message;
|
||||
if (message instanceof WorkMessage) {
|
||||
List<MessageFile> files = ((WorkMessage) message).getMsgFiles();
|
||||
int size = files.size();
|
||||
int average = size / numberOfWorkers;
|
||||
|
||||
@@ -55,9 +55,10 @@ public class MineFixPatternActor extends UntypedActor {
|
||||
toIndex = size;
|
||||
}
|
||||
|
||||
List<Object> filesOfWorkers = new ArrayList<>();
|
||||
List<MessageFile> filesOfWorkers = new ArrayList<>();
|
||||
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) + "...");
|
||||
}
|
||||
} else if ("STOP".equals(message.toString())) {
|
||||
|
||||
@@ -33,17 +33,17 @@ public class MineFixPatternWorker extends UntypedActor {
|
||||
|
||||
@Override
|
||||
public void onReceive(Object message) throws Exception {
|
||||
if (message instanceof List<?>) {
|
||||
List<?> files = (List<?>) message;
|
||||
if (message instanceof WorkMessage) {
|
||||
WorkMessage msg = (WorkMessage) message;
|
||||
List<MessageFile> files = msg.getMsgFiles();
|
||||
StringBuilder editScripts = new StringBuilder();
|
||||
StringBuilder patchesSourceCode = new StringBuilder();
|
||||
for (Object obj : files) {
|
||||
MessageFile msgFile = (MessageFile) obj;
|
||||
for (MessageFile msgFile : files) {
|
||||
File revFile = msgFile.getRevFile();
|
||||
File prevFile = msgFile.getPrevFile();
|
||||
File diffentryFile = msgFile.getDiffEntryFile();
|
||||
if (!prevFile.exists()) {
|
||||
System.out.println(prevFile.getPath());
|
||||
System.out.println("Previous File:" + prevFile.getPath());
|
||||
continue;
|
||||
}
|
||||
Miner miner = new Miner();
|
||||
@@ -52,15 +52,13 @@ public class MineFixPatternWorker extends UntypedActor {
|
||||
editScripts.append(miner.getAstEditScripts());
|
||||
patchesSourceCode.append(miner.getPatchesSourceCode());
|
||||
} catch (Exception e) {
|
||||
System.out.println(revFile.getPath());
|
||||
System.out.println("Revised File:" + revFile.getPath());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
List<File> subFiles1 = FileHelper.getAllFilesInCurrentDiectory(editScriptsFilePath, ".list");
|
||||
List<File> subFiles2 = FileHelper.getAllFilesInCurrentDiectory(patchesSourceCodeFilePath, ".list");
|
||||
FileHelper.outputToFile(editScriptsFilePath + "edistScripts" + subFiles1.size() + ".list", editScripts, false);
|
||||
FileHelper.outputToFile(patchesSourceCodeFilePath + "patches" + subFiles2.size() + ".list", patchesSourceCode, false);
|
||||
FileHelper.outputToFile(editScriptsFilePath + "edistScripts" + msg.getId() + ".list", editScripts, false);
|
||||
FileHelper.outputToFile(patchesSourceCodeFilePath + "patches" + msg.getId() + ".list", patchesSourceCode, false);
|
||||
|
||||
this.getSender().tell("STOP", getSelf());
|
||||
} 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