Skip to content

Commit d6f67da

Browse files
author
mgricken
committed
Merging trunk into branch.
% svn merge https://drjava.svn.sourceforge.net/svnroot/drjava/trunk Conflict discovered in 'eclipse/lib/plt.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: s (e) edit - change merged file in an editor (df) diff-full - show all changes made to merged file (r) resolved - accept merged version of file (dc) display-conflict - show all conflicts (ignoring merged version) (mc) mine-conflict - accept my version for all conflicts (same) (tc) theirs-conflict - accept their version for all conflicts (same) (mf) mine-full - accept my version of entire file (even non-conflicts) (tf) theirs-full - accept their version of entire file (same) (p) postpone - mark the conflict to be resolved later (l) launch - launch external tool to resolve conflict (s) show all - show this list Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf --- Merging r5346 through r5368 into '.': U eclipse/lib/plt.jar U platform/src-windows/edu/rice/cs/drjava/platform/WindowsRegistry.java A platform/src-windows/edu/rice/cs/drjava/platform/WindowsRegistryTest.java U platform/classes/base-windows/edu/rice/cs/drjava/platform/WindowsRegistry.class Conflict discovered in 'dynamicjava/lib/plt.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf U dynamicjava/lib/plt.jar Conflict discovered in 'drjava/lib/platform.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf U drjava/lib/platform.jar Conflict discovered in 'drjava/lib/javalanglevels-base.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf U drjava/lib/javalanglevels-base.jar Conflict discovered in 'drjava/lib/dynamicjava-base.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf U drjava/lib/dynamicjava-base.jar Conflict discovered in 'drjava/lib/plt.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf U drjava/lib/plt.jar U drjava/src/edu/rice/cs/drjava/DrJava.java U drjava/src/edu/rice/cs/drjava/model/definitions/CompoundUndoManager.java U drjava/src/edu/rice/cs/drjava/model/repl/InteractionsDJDocument.java U drjava/src/edu/rice/cs/drjava/model/DocumentRegion.java U drjava/src/edu/rice/cs/drjava/model/FindReplaceMachine.java U drjava/src/edu/rice/cs/drjava/model/AbstractGlobalModel.java U drjava/src/edu/rice/cs/drjava/config/OptionConstants.java U drjava/src/edu/rice/cs/drjava/ui/MainFrame.java U drjava/src/edu/rice/cs/drjava/ui/InteractionsPane.java U drjava/src/edu/rice/cs/drjava/ui/DetachedFrame.java U drjava/src/edu/rice/cs/drjava/ui/KeyBindingManager.java U drjava/src/edu/rice/cs/drjava/ui/DefinitionsPane.java U drjava/src/edu/rice/cs/drjava/ui/MainFrameStatics.java U drjava/src/edu/rice/cs/drjava/ui/avail/GUIAvailabilityNotifier.java A drjava/src/edu/rice/cs/drjava/ui/avail/OrGUIAvailabilityActionAdapter.java A drjava/src/edu/rice/cs/drjava/ui/avail/AndGUIAvailabilityActionAdapter.java U drjava/src/edu/rice/cs/drjava/ui/avail/DefaultGUIAvailabilityNotifier.java A drjava/src/edu/rice/cs/drjava/ui/avail/OrGUIAvailabilityComponentAdapter.java U drjava/src/edu/rice/cs/drjava/ui/avail/GUIAvailabilityListener.java A drjava/src/edu/rice/cs/drjava/ui/avail/AndGUIAvailabilityComponentAdapter.java A drjava/src/edu/rice/cs/drjava/ui/avail/OrGUIAvailabilityListener.java A drjava/src/edu/rice/cs/drjava/ui/avail/AndGUIAvailabilityListener.java D drjava/src/edu/rice/cs/drjava/ui/avail/ConjoinedGUIAvailabilityListener.java D drjava/src/edu/rice/cs/drjava/ui/avail/ConjoinedGUIAvailabilityActionAdapter.java D drjava/src/edu/rice/cs/drjava/ui/avail/ConjoinedGUIAvailabilityComponentAdapter.java U drjava/src/edu/rice/cs/drjava/ui/config/VectorKeyStrokeOptionComponent.java U drjava/src/edu/rice/cs/drjava/ui/config/ConfigFrame.java U drjava/src/edu/rice/cs/drjava/ui/config/ConfigPanel.java U drjava/src/edu/rice/cs/drjava/ui/MainFrameTest.java U drjava/src/edu/rice/cs/drjava/ui/RegionsTreePanel.java U drjava/src/edu/rice/cs/drjava/ui/InteractionsController.java U drjava/src/edu/rice/cs/drjava/ui/AbstractConsoleController.java U drjava/src/edu/rice/cs/util/swing/DelegatingAction.java Conflict discovered in 'javalanglevels/lib/plt.jar'. Select: (p) postpone, (mf) mine-full, (tf) theirs-full, (s) show all options: tf U javalanglevels/lib/plt.jar % svn status M . M plt/src/edu/rice/cs/plt/collect/MutableRelationTest.java M eclipse/lib/plt.jar ? platform/platform.jar M platform/src-windows/edu/rice/cs/drjava/platform/WindowsRegistry.java A + platform/src-windows/edu/rice/cs/drjava/platform/WindowsRegistryTest.java ? platform/classes/lib ? platform/classes/test-hj M platform/classes/base-windows/edu/rice/cs/drjava/platform/WindowsRegistry.class M dynamicjava/lib/plt.jar M dynamicjava/src/edu/rice/cs/dynamicjava/interpreter/ImportContext.java M dynamicjava/src/edu/rice/cs/dynamicjava/interpreter/ClassChecker.java ? drjava/drjava.jar ? drjava/classes M drjava/lib/platform.jar M drjava/lib/javalanglevels-base.jar M drjava/lib/dynamicjava-base.jar M drjava/lib/plt.jar ? drjava/src/edu/rice/cs/drjava/CodeStatus.java ? drjava/src/edu/rice/cs/drjava/Version.java M drjava/src/edu/rice/cs/drjava/DrJava.java M drjava/src/edu/rice/cs/drjava/model/definitions/CompoundUndoManager.java M drjava/src/edu/rice/cs/drjava/model/repl/InteractionsDJDocument.java M drjava/src/edu/rice/cs/drjava/model/DocumentRegion.java M drjava/src/edu/rice/cs/drjava/model/FindReplaceMachine.java M drjava/src/edu/rice/cs/drjava/model/AbstractGlobalModel.java M drjava/src/edu/rice/cs/drjava/config/OptionConstants.java M drjava/src/edu/rice/cs/drjava/ui/MainFrame.java M drjava/src/edu/rice/cs/drjava/ui/InteractionsPane.java M drjava/src/edu/rice/cs/drjava/ui/DetachedFrame.java M drjava/src/edu/rice/cs/drjava/ui/KeyBindingManager.java M drjava/src/edu/rice/cs/drjava/ui/DefinitionsPane.java M drjava/src/edu/rice/cs/drjava/ui/MainFrameStatics.java M drjava/src/edu/rice/cs/drjava/ui/avail/GUIAvailabilityNotifier.java A + drjava/src/edu/rice/cs/drjava/ui/avail/OrGUIAvailabilityActionAdapter.java A + drjava/src/edu/rice/cs/drjava/ui/avail/AndGUIAvailabilityActionAdapter.java M drjava/src/edu/rice/cs/drjava/ui/avail/DefaultGUIAvailabilityNotifier.java A + drjava/src/edu/rice/cs/drjava/ui/avail/OrGUIAvailabilityComponentAdapter.java M drjava/src/edu/rice/cs/drjava/ui/avail/GUIAvailabilityListener.java A + drjava/src/edu/rice/cs/drjava/ui/avail/AndGUIAvailabilityComponentAdapter.java A + drjava/src/edu/rice/cs/drjava/ui/avail/OrGUIAvailabilityListener.java D drjava/src/edu/rice/cs/drjava/ui/avail/ConjoinedGUIAvailabilityActionAdapter.java A + drjava/src/edu/rice/cs/drjava/ui/avail/AndGUIAvailabilityListener.java D drjava/src/edu/rice/cs/drjava/ui/avail/ConjoinedGUIAvailabilityComponentAdapter.java D drjava/src/edu/rice/cs/drjava/ui/avail/ConjoinedGUIAvailabilityListener.java M drjava/src/edu/rice/cs/drjava/ui/config/VectorKeyStrokeOptionComponent.java M drjava/src/edu/rice/cs/drjava/ui/config/ConfigFrame.java M drjava/src/edu/rice/cs/drjava/ui/config/ConfigPanel.java M drjava/src/edu/rice/cs/drjava/ui/MainFrameTest.java M drjava/src/edu/rice/cs/drjava/ui/RegionsTreePanel.java M drjava/src/edu/rice/cs/drjava/ui/InteractionsController.java M drjava/src/edu/rice/cs/drjava/ui/AbstractConsoleController.java M drjava/src/edu/rice/cs/util/swing/DelegatingAction.java M javalanglevels/lib/plt.jar git-svn-id: file:///tmp/test-svn/branches/drjava-compilers@5369 fe72c1cf-3628-48e9-8b72-1c46755d3cff
2 parents d911293 + 6963125 commit d6f67da

39 files changed

+1076
-406
lines changed

drjava/lib/dynamicjava-base.jar

0 Bytes
Binary file not shown.

drjava/lib/javalanglevels-base.jar

0 Bytes
Binary file not shown.

drjava/lib/platform.jar

224 Bytes
Binary file not shown.

drjava/lib/plt.jar

0 Bytes
Binary file not shown.

drjava/src/edu/rice/cs/drjava/DrJava.java

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import edu.rice.cs.drjava.ui.DrJavaErrorHandler;
5353
import edu.rice.cs.plt.concurrent.DelayedInterrupter;
5454
import edu.rice.cs.plt.concurrent.JVMBuilder;
55+
import edu.rice.cs.plt.reflect.JavaVersion;
5556
import edu.rice.cs.util.ArgumentTokenizer;
5657
import edu.rice.cs.util.Log;
5758
import edu.rice.cs.util.UnexpectedException;
@@ -178,7 +179,7 @@ public static synchronized void addFileToOpen(String s) {
178179
if (_doRestart && _alreadyRestarted) {
179180
_log.log("addFileToOpen: already done the restart, trying to use remote control");
180181
// we already did the restart, try to use the remote control to open the file
181-
if (DrJava.getConfig().getSetting(edu.rice.cs.drjava.config.OptionConstants.REMOTE_CONTROL_ENABLED)) {
182+
if (DrJava.getConfig().getSetting(OptionConstants.REMOTE_CONTROL_ENABLED)) {
182183
_log.log("\tremote control...");
183184
openWithRemoteControl(_filesToOpen,NUM_REMOTE_CONTROL_RETRIES );
184185
_log.log("\tclearing _filesToOpen");
@@ -200,7 +201,7 @@ public static synchronized void clearFilesToOpen() {
200201
* @return true if successful
201202
*/
202203
public static synchronized boolean openWithRemoteControl(ArrayList<String> files, int numAttempts) {
203-
if (!DrJava.getConfig().getSetting(edu.rice.cs.drjava.config.OptionConstants.REMOTE_CONTROL_ENABLED) ||
204+
if (!DrJava.getConfig().getSetting(OptionConstants.REMOTE_CONTROL_ENABLED) ||
204205
!_restartedDrJavaUsesRemoteControl ||
205206
(files.size()==0)) return false;
206207

@@ -255,7 +256,7 @@ public static void configureAndLoadDrJavaRoot(String[] args) {
255256
// if there were files passed on the command line,
256257
// try to open them in an existing instance
257258
if (!_forceNewInstance &&
258-
DrJava.getConfig().getSetting(edu.rice.cs.drjava.config.OptionConstants.REMOTE_CONTROL_ENABLED) &&
259+
DrJava.getConfig().getSetting(OptionConstants.REMOTE_CONTROL_ENABLED) &&
259260
(_filesToOpen.size() > 0)) {
260261
if (openWithRemoteControl(_filesToOpen,1)) System.exit(0); // files opened in existing instance, quit
261262
}
@@ -290,7 +291,7 @@ public static void configureAndLoadDrJavaRoot(String[] args) {
290291
}
291292

292293
if (_doRestart) {
293-
if (DrJava.getConfig().getSetting(edu.rice.cs.drjava.config.OptionConstants.REMOTE_CONTROL_ENABLED)) {
294+
if (DrJava.getConfig().getSetting(OptionConstants.REMOTE_CONTROL_ENABLED)) {
294295
// at this time, OUR remote control server hasn't been started yet
295296
// if one is running, then we won't be able to contact the restarted DrJava
296297
_restartedDrJavaUsesRemoteControl = !RemoteControlClient.isServerRunning();
@@ -453,7 +454,7 @@ else if (arg.equals("-help") || arg.equals("-?")) {
453454
}
454455

455456
if ((!("".equals(getConfig().getSetting(MASTER_JVM_XMX)))) &&
456-
(!(edu.rice.cs.drjava.config.OptionConstants.heapSizeChoices.get(0).equals(getConfig().getSetting(MASTER_JVM_XMX))))) {
457+
(!(OptionConstants.heapSizeChoices.get(0).equals(getConfig().getSetting(MASTER_JVM_XMX))))) {
457458
_jvmArgs.add("-Xmx" + getConfig().getSetting(MASTER_JVM_XMX).trim() + "M");
458459
heapSizeGiven = true;
459460
}
@@ -598,7 +599,7 @@ public static void cleanUp() {
598599
public static boolean warnIfLinuxWithCompiz() {
599600
try {
600601
if (!System.getProperty("os.name").equals("Linux")) return false; // not Linux
601-
if (!DrJava.getConfig().getSetting(edu.rice.cs.drjava.config.OptionConstants.WARN_IF_COMPIZ)) return false; // set to ignore
602+
if (!DrJava.getConfig().getSetting(OptionConstants.WARN_IF_COMPIZ)) return false; // set to ignore
602603

603604
// get /bin/ps
604605
File ps = new File("/bin/ps");
@@ -622,30 +623,36 @@ public static boolean warnIfLinuxWithCompiz() {
622623
}
623624
if (!compiz) return false; // no Compiz
624625

626+
final JavaVersion.FullVersion ver160_20 = JavaVersion.parseFullVersion("1.6.0_20");
627+
if (JavaVersion.CURRENT_FULL.compareTo(ver160_20)>=0) return false; // Java >= 1.6.0_20
628+
625629
String[] options = new String[] { "Yes", "Yes, and ignore from now on", "No" };
626-
int res = javax.swing.JOptionPane.showOptionDialog(null,
627-
"<html>DrJava has detected that you are using Compiz.<br>" +
628-
"<br>" +
629-
"Compiz and Java Swing are currently incompatible and can cause<br>" +
630-
"DrJava or your computer to crash.<br>" +
631-
"<br>" +
632-
"We recommend that you <b>disable Compiz</b>. On Ubuntu, go to<br>" +
633-
"System->Preferences->Appearence, display the Visual Effects tab,<br>" +
634-
"and select 'None'.<br>" +
635-
"<br>" +
636-
"For more information, please go to http://drjava.org/compiz<br>" +
637-
"<br>" +
638-
"Do you want to start DrJava anyway?</html>",
639-
"Compiz detected",
640-
JOptionPane.DEFAULT_OPTION,
641-
javax.swing.JOptionPane.WARNING_MESSAGE,
642-
null,
643-
options,
644-
options[0]);
630+
int res = javax.swing.JOptionPane.
631+
showOptionDialog(null,
632+
"<html>DrJava has detected that you are using Compiz with a version<br>" +
633+
"of Java that is older than " + ver160_20 + ".<br>" +
634+
"<br>" +
635+
"Compiz and older versions of Java are incompatible and can cause<br>" +
636+
"DrJava or your computer to crash.<br>" +
637+
"<br>" +
638+
"We recommend that you <b>update to " + ver160_20 + " or newer</b>,<br>" +
639+
"or that you disable Compiz if you still experience problems.<br>" +
640+
"On Ubuntu, go to System->Preferences->Appearence, display the<br>" +
641+
"Visual Effects tab, and select 'None'.<br>" +
642+
"<br>" +
643+
"For more information, please go to http://drjava.org/compiz<br>" +
644+
"<br>" +
645+
"Do you want to start DrJava anyway?</html>",
646+
"Compiz detected",
647+
JOptionPane.DEFAULT_OPTION,
648+
javax.swing.JOptionPane.WARNING_MESSAGE,
649+
null,
650+
options,
651+
options[0]);
645652
switch(res) {
646653
case 1:
647654
// set "ignore" option
648-
DrJava.getConfig().setSetting(edu.rice.cs.drjava.config.OptionConstants.WARN_IF_COMPIZ, false);
655+
DrJava.getConfig().setSetting(OptionConstants.WARN_IF_COMPIZ, false);
649656
break;
650657
case 2:
651658
System.exit(0);

drjava/src/edu/rice/cs/drjava/config/OptionConstants.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,11 @@ static class LookAndFeels {
309309
/** Return the look-and-feel to use by default */
310310
public static String getDefaultLookAndFeel() {
311311
if (PlatformFactory.ONLY.isMacPlatform())
312-
return UIManager.getSystemLookAndFeelClassName();
312+
return UIManager.getSystemLookAndFeelClassName(); // Mac: Let the system decide.
313+
else if (PlatformFactory.ONLY.isWindowsPlatform())
314+
return UIManager.getCrossPlatformLookAndFeelClassName(); // Windows: Metal, because the Windows LAF is ugly
313315
else
314-
return UIManager.getCrossPlatformLookAndFeelClassName();
316+
return UIManager.getSystemLookAndFeelClassName(); // Linux: Let the system decide. Probably GTK, which is ok.
315317
}
316318

317319
/** Need to ensure that a look-and-feel can be instantiated and is valid.

drjava/src/edu/rice/cs/drjava/model/AbstractGlobalModel.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2171,14 +2171,18 @@ public OpenDefinitionsDocument getODDForDocument(AbstractDocumentInterface doc)
21712171
public DocumentIterator getDocumentIterator() { return this; }
21722172

21732173
/** Returns the ODD preceding the given document in the document list.
2174+
* NOTE: the returned document may be null if the document wasn't found and the user did not want to continue.
21742175
* @param d the current Document
2175-
* @return the next Document
2176+
* @return the next Document (or null if not found and user did not want to continue)
21762177
*/
2177-
public OpenDefinitionsDocument getNextDocument(OpenDefinitionsDocument d)
2178-
{
2179-
return getNextDocument(d, null);
2180-
}
2178+
public OpenDefinitionsDocument getNextDocument(OpenDefinitionsDocument d) { return getNextDocument(d, null); }
21812179

2180+
/** Returns the ODD preceding the given document in the document list.
2181+
* NOTE: the returned document may be null if the document wasn't found and the user did not want to continue.
2182+
* @param d the current Document
2183+
* @param frame the frame that should serve as parent for a potential dialog window
2184+
* @return the next Document (or null if not found and user did not want to continue)
2185+
*/
21822186
public OpenDefinitionsDocument getNextDocument(OpenDefinitionsDocument d, Component frame) {
21832187
OpenDefinitionsDocument nextdoc = null; // irrelevant initialization required by javac
21842188
// try {
@@ -2192,10 +2196,17 @@ public OpenDefinitionsDocument getNextDocument(OpenDefinitionsDocument d, Compon
21922196
// catch(DocumentClosedException dce) { return getNextDocument(nextdoc); }
21932197
}
21942198

2199+
/** Checks that the document exists, and if it doesn't, asks if the user wants to continue.
2200+
* NOTE: the returned document may be null if the document wasn't found and the user did not want to continue.
2201+
* @param d the next Document
2202+
* @param frame the frame that should serve as parent for a potential dialog window
2203+
* @return the next Document (or null if not found and user did not want to continue)
2204+
*/
21952205
private OpenDefinitionsDocument getNextDocHelper(OpenDefinitionsDocument nextdoc, Component frame) {
21962206
if ( nextdoc.isUntitled() || nextdoc.verifyExists()) return nextdoc;
21972207
// Note: verifyExists prompts user for location of the file if it is not found
2198-
int rc = JOptionPane.showConfirmDialog(frame, "Files not found, continue to next document?", "Continue?", JOptionPane.YES_NO_OPTION);
2208+
int rc = JOptionPane.showConfirmDialog(frame, "Files not found, continue to next document?", "Continue?",
2209+
JOptionPane.YES_NO_OPTION);
21992210
if(rc==JOptionPane.NO_OPTION)
22002211
return null;
22012212
// cannot find nextdoc; move on to next document

drjava/src/edu/rice/cs/drjava/model/DocumentRegion.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ public class DocumentRegion implements OrderedDocumentRegion {
5656

5757
/** Create a new simple document region with a bona fide document */
5858
public DocumentRegion(OpenDefinitionsDocument doc, int start, int end) {
59-
assert doc != null && end >= start;
59+
assert doc != null;
60+
assert end >= start; // split in two to help diagnose bug 2906538: AssertionError After Go To Find Result and Edit
6061
_doc = doc;
6162
_start = start;
6263
_end = end;

drjava/src/edu/rice/cs/drjava/model/FindReplaceMachine.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,9 @@ public void setReplaceWord(String word) {
196196
*/
197197
public boolean onMatch() {
198198

199-
// Bug: this invariant doesn't hold. See DrJava bug #2321815
200-
/* assert Utilities.TEST_MODE || EventQueue.isDispatchThread(); */
199+
// Should be fixed now because of invokeAndWait in MainFrame constructor
200+
// (was: this invariant doesn't hold. See DrJava bug #2321815)
201+
assert Utilities.TEST_MODE || EventQueue.isDispatchThread();
201202

202203
String findWord = _findWord;
203204
int wordLen, off;
@@ -281,10 +282,7 @@ private int replaceAll(boolean searchAll, boolean searchSelectionOnly) {
281282
count += _replaceAllInCurrentDoc(false);
282283
_doc = _docIterator.getNextDocument(_doc, _frame);
283284

284-
if(_doc==null)
285-
{
286-
i=n;
287-
}
285+
if(_doc==null) break;
288286
}
289287

290288
// update display (adding "*") in navigatgorPane
@@ -367,10 +365,7 @@ private int processAll(Runnable1<FindResult> findAction, boolean searchAll, bool
367365
count += _processAllInCurrentDoc(findAction, false);
368366
_doc = _docIterator.getNextDocument(_doc, _frame);
369367

370-
if(_doc==null)
371-
{
372-
i=n;
373-
}
368+
if(_doc==null) break;
374369
}
375370

376371
// update display (perhaps adding "*") in navigatgorPane
@@ -644,7 +639,9 @@ private FindResult _findNextInOtherDocs(final OpenDefinitionsDocument startDoc,
644639
// System.err.println("_findNextInOtherDocs(" + startDoc.getText() + ", " + start + ", " + len + ")");
645640

646641
boolean allWrapped = false;
642+
// _doc may be null if the next document isn't found and the user didn't want to continue!
647643
_doc = _isForward ? _docIterator.getNextDocument(startDoc) : _docIterator.getPrevDocument(startDoc);
644+
if (_doc == null) return new FindResult(startDoc, -1, true, true);
648645

649646
while (_doc != startDoc) {
650647
if (_doc == _firstDoc) allWrapped = true;
@@ -664,7 +661,9 @@ private FindResult _findNextInOtherDocs(final OpenDefinitionsDocument startDoc,
664661
if (fr.getFoundOffset() >= 0) return fr;
665662
}
666663
// System.err.println("Advancing from '" + _doc.getText() + "' to next doc");
664+
// _doc may be null if the next document isn't found and the user didn't want to continue!
667665
_doc = _isForward ? _docIterator.getNextDocument(_doc) : _docIterator.getPrevDocument(_doc);
666+
if (_doc == null) return new FindResult(startDoc, -1, true, true);
668667
// System.err.println("Next doc is: '" + _doc.getText() + "'");
669668
}
670669

drjava/src/edu/rice/cs/drjava/model/definitions/CompoundUndoManager.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ public CompoundUndoManager(GlobalEventNotifier notifier) {
120120
super.addEdit(ce);
121121
_notifyUndoHappened();
122122
}
123-
else _compoundEdits.get(0).addEdit(ce);
123+
else {
124+
_compoundEdits.get(0).addEdit(ce);
125+
}
124126
}
125127
}
126128
else throw new IllegalStateException("Improperly nested compound edits.");
@@ -163,7 +165,10 @@ public CompoundUndoManager(GlobalEventNotifier notifier) {
163165
/** Returns true when a compound edit is in progress, or when there are valid stored undoable edits
164166
* @return true iff undoing is possible
165167
*/
166-
public /* synchronized */ boolean canUndo() { return _compoundEditInProgress() || super.canUndo(); }
168+
public /* synchronized */ boolean canUndo() {
169+
LOG.log("canUndo: _compoundEditInProgress() = "+_compoundEditInProgress()+", super.canUndo() = "+super.canUndo());
170+
LOG.log(" "+_compoundEdits);
171+
return _compoundEditInProgress() || super.canUndo(); }
167172

168173
/** Returns the presentation name for this undo, or delegates to super if none is available
169174
* @return the undo's presentation name

0 commit comments

Comments
 (0)