addToFrontier(initStateNode);
addToFrontier(goalStateNode);
while (!isFrontierEmpty() && !CancelableThread.currIsCanceled()) {
ExtendedNode nodeToExpand = (ExtendedNode) removeFromFrontier();
ExtendedNode nodeFromOtherProblem;
<BUG>if (!earlyGoalCheck
&& (nodeFromOtherProblem = getCorrespondingNodeFromOtherProblem(nodeToExpand)) != null)
</BUG>
return getSolution(orgP, nodeToExpand, nodeFromOtherProblem);
<BUG>metrics.incrementInt(METRIC_NODES_EXPANDED);
for (Node s : SearchUtils.expandNode(nodeToExpand, problem)) {
</BUG>
ExtendedNode successor = new ExtendedNode(s, nodeToExpand.getProblemIndex());

addToFrontier(initStateNode);
addToFrontier(goalStateNode);
while (!isFrontierEmpty() && !CancelableThread.currIsCanceled()) {
ExtendedNode nodeToExpand = (ExtendedNode) removeFromFrontier();
ExtendedNode nodeFromOtherProblem;
if (!earlyGoalCheck && (nodeFromOtherProblem = getCorrespondingNodeFromOtherProblem(nodeToExpand)) != null)
return getSolution(orgP, nodeToExpand, nodeFromOtherProblem);
for (Node s : nodeExpander.expand(nodeToExpand, problem)) {
ExtendedNode successor = new ExtendedNode(s, nodeToExpand.getProblemIndex());
