2778, 2775 - fix from Vijay for reflect field problem
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
index d3952f3..7212b4a 100644
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
+++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: JavaClassJDOMAdaptor.java,v $
- *  $Revision: 1.8 $  $Date: 2004/06/22 17:55:17 $ 
+ *  $Revision: 1.9 $  $Date: 2004/07/06 21:51:55 $ 
  */
 
 import java.util.*;
@@ -400,7 +400,7 @@
 	public boolean reflectValues() {
 		super.reflectValues();
 		boolean isHeadless = UIContextDetermination.getCurrentContext() == UIContextDetermination.HEADLESS_CONTEXT;
-		if (getSourceProject() != null && getSourceType() != null && getSourceType().exists()) {
+		if (canReflect()) {
 			ICompilationUnit cu = getSourceType().getCompilationUnit();
 			boolean isWC = cu != null ? cu.isWorkingCopy() : false;
 			IResource res = isWC ? getSourceType().getResource() : null;
@@ -436,8 +436,14 @@
 	}
 	
 	
+	/**
+	 * @return
+	 */
+	private boolean canReflect() {
+		return getSourceProject() != null && getSourceType() != null && getSourceType().exists();
+	}
 	public synchronized boolean reflectFieldsIfNecessary() {
-		if (reflectValuesIfNecessary()) {
+		if (reflectValuesIfNecessary() && canReflect()) {
 			if (!hasReflectedFields && !isReflectingFields) {
 				isReflectingFields = true;
 				try {
@@ -455,8 +461,8 @@
 		} else
 			return false;	// Couldn't reflect the base values, so couldn't do fields either
 	}
-	public boolean reflectMethodsIfNecessary() {
-		if (reflectValuesIfNecessary()) {
+	public synchronized boolean reflectMethodsIfNecessary() {
+		if (reflectValuesIfNecessary() && canReflect()) {
 			if (!hasReflectedMethods && !isReflectingMethods) {
 				isReflectingMethods = true;
 				try {