From 7cd70548381b582f2dfc9b1eed497fd87b2f7203 Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@uni-duesseldorf.de>
Date: Thu, 27 Aug 2020 14:57:37 +0200
Subject: [PATCH] try improve disprover for null origin project

for Rodin 3.5RC startup
---
 .../eventb/disprover/core/DisproverReasoner.java  | 15 ++++++++++++---
 .../core/command/DisproverLoadCommand.java        |  1 +
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/DisproverReasoner.java b/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/DisproverReasoner.java
index 12354709..4a7ce472 100644
--- a/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/DisproverReasoner.java
+++ b/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/DisproverReasoner.java
@@ -107,9 +107,18 @@ public class DisproverReasoner implements IReasoner {
 
 		// find the IEventBProject belonging to the sequent
 		IPOSequent origin = (IPOSequent) sequent.getOrigin();
-		IRodinProject project = origin.getRodinProject();
-		IEventBProject evbProject = (IEventBProject) project
-				.getAdapter(IEventBProject.class);
+		
+		IEventBProject evbProject;
+		
+		if (origin==null) { // no origin available; seems to happen in Rodin 3.5RC upon startup
+		   System.out.println("No origin available for sequent")
+		   // throw new InterruptedException(); // Should we do this instead of trying to work with null project?
+		   evbProject = null;
+		} else {
+			IRodinProject project = origin.getRodinProject();
+			evbProject = (IEventBProject) project
+					.getAdapter(IEventBProject.class);
+		}
 		ICounterExample counterExample = DisproverCommand.disprove(
 				Animator.getAuxAnimator(), evbProject, allHypotheses,
 				selectedHypotheses, goal, timeoutFactor, context, pm);
diff --git a/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/command/DisproverLoadCommand.java b/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/command/DisproverLoadCommand.java
index faf38c74..d4d437ff 100644
--- a/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/command/DisproverLoadCommand.java
+++ b/de.prob.eventb.disprover.core/src/de/prob/eventb/disprover/core/command/DisproverLoadCommand.java
@@ -73,6 +73,7 @@ public final class DisproverLoadCommand implements IComposableCommand {
 	private boolean theoriesUsed() throws TranslationFailedException {
 		try {
 			final IRodinElement[] elements;
+			if (project==null) { return false;}
 			elements = project.getRodinProject().getChildren();
 			for (IRodinElement element : elements) {
 				if (element instanceof IRodinFile) {
-- 
GitLab