Skip to content

Commit 098be4c

Browse files
author
rcartwright
committed
This revision adds many assert statements to the core methods in AbstractDJDocument, its descendants, and clients. It also streamlines the logic of some methods in AbstractDJDocument and reduces the recursive locking in the core methods of AbstractDJDocument. This process is far from complete. I am trying to introduce the convention that methods with locking preconditions (e.g. assume the this holds a read lock) begin with the '_' character. In many cases, there is an analogous method that includes the presumed locking operations and it has the same name except for omitting the leading '_' character.
The following files were modified: M testFiles/drjava.basic.config M src/edu/rice/cs/drjava/IndentFiles.java M src/edu/rice/cs/drjava/model/debug/jpda/JPDADebugger.java M src/edu/rice/cs/drjava/model/debug/jpda/JPDABreakpoint.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionPrevLineStartsComment.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionPrevLineStartsCommentTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionExistsCharInPrevStmt.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlusMultilinePreserve.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlusMultilinePreserveTest.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevStmtPlus.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevStmtPlusTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineStartsWithSkipComments.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineStartsWithSkipCommentsTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionStartingNewStmt.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionStartingNewStmtTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineEmptyOrEnterPressTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineEmptyOrEnterPress.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionPrevLineStartsJavaDocWithText.java M src/edu/rice/cs/drjava/model/definitions/indent/IndentRuleAction.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionPrevLineStartsWithTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionPrevLineStartsWith.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionBracePlusTest.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionBracePlus.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineIsWingCommentTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineIsWingComment.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionBraceIsParenOrBracket.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionBraceIsParenOrBracketTest.java M src/edu/rice/cs/drjava/model/definitions/indent/IndentRuleWithTrace.java M src/edu/rice/cs/drjava/model/definitions/indent/IndentRuleWithTraceTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionStartAfterOpenBraceTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionStartAfterOpenBrace.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionInsideCommentTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionInsideComment.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartStmtOfBracePlus.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartStmtOfBracePlusTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineEmpty.java M src/edu/rice/cs/drjava/model/definitions/indent/IndentRuleQuestion.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionHasCharPrecedingOpenBrace.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionHasCharPrecedingOpenBraceTest.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartCurrStmtPlus.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlus.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlusTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionExistsCharInStmtTest.java M src/edu/rice/cs/drjava/model/definitions/indent/Indenter.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineStartsWith.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionCurrLineStartsWithTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionNewParenPhrase.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionNewParenPhraseTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionLineContainsTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionBraceIsCurlyTest.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionBraceIsCurly.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionDoNothingTest.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlusMultiline.java M src/edu/rice/cs/drjava/model/definitions/indent/IndentRulesTestCase.java M src/edu/rice/cs/drjava/model/definitions/indent/QuestionFollowedByStar.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlusBackup.java M src/edu/rice/cs/drjava/model/definitions/indent/ActionStartPrevLinePlusBackupTest.java M src/edu/rice/cs/drjava/model/definitions/ColoringGlyphPainter.java M src/edu/rice/cs/drjava/model/definitions/ColoringView.java M src/edu/rice/cs/drjava/model/definitions/DefinitionsDocumentTest.java M src/edu/rice/cs/drjava/model/definitions/DefinitionsDocument.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/SingleQuoteTest.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/Stutter.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/ReducedToken.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/ReducedModelComment.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/AbstractReducedModel.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/BackSlashTest.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/ReducedModelControl.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/TokenList.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/BraceTest.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/ReducedModelDeleteTest.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/MixedQuoteTest.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/ReducedModelBrace.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/BraceReduction.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/ReducedModelTest.java M src/edu/rice/cs/drjava/model/definitions/reducedmodel/IndentInfoTest.java M src/edu/rice/cs/drjava/model/definitions/IndentTest.java M src/edu/rice/cs/drjava/model/definitions/IndentHelperTest.java M src/edu/rice/cs/drjava/model/repl/InteractionsDJDocument.java M src/edu/rice/cs/drjava/model/ConcreteRegionManager.java M src/edu/rice/cs/drjava/model/AbstractDJDocument.java M src/edu/rice/cs/drjava/model/DummyOpenDefDoc.java M src/edu/rice/cs/drjava/model/FindReplaceMachine.java M src/edu/rice/cs/drjava/model/AbstractGlobalModel.java M src/edu/rice/cs/drjava/model/DefaultLightWeightParsingControl.java M src/edu/rice/cs/drjava/model/OpenDefinitionsDocument.java M src/edu/rice/cs/drjava/model/DJDocument.java M src/edu/rice/cs/drjava/config/OptionConstants.java M src/edu/rice/cs/drjava/ui/MainFrame.java M src/edu/rice/cs/drjava/ui/InteractionsPane.java M src/edu/rice/cs/drjava/ui/DefinitionsPane.java M src/edu/rice/cs/drjava/ui/FindReplacePanel.java M src/edu/rice/cs/drjava/ui/InteractionsController.java M src/edu/rice/cs/drjava/ui/JUnitPanel.java M src/edu/rice/cs/util/text/ConsoleDocument.java M src/edu/rice/cs/util/text/SwingDocument.java M src/edu/rice/cs/util/text/ReadersWritersLocking.java M src/edu/rice/cs/util/swing/DocumentOutputStream.java git-svn-id: file:///tmp/test-svn/trunk@4519 fe72c1cf-3628-48e9-8b72-1c46755d3cff
1 parent ba2b5ff commit 098be4c

File tree

98 files changed

+2798
-2571
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+2798
-2571
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public static void indentFiles(Vector<String> fileNames, int indentLevel, boolea
100100
//System.out.println("Using Headless AWT: "+isHeadless());
101101
Indenter indenter = new Indenter(indentLevel);
102102

103-
if (!silent) System.out.println("DrJava - Indenting files:");
103+
if (! silent) System.out.println("DrJava - Indenting files:");
104104
for (int i = 0; i < fileNames.size(); i++) {
105105
String fname = fileNames.get(i);
106106
File file = new File(fname);
@@ -111,10 +111,14 @@ public static void indentFiles(Vector<String> fileNames, int indentLevel, boolea
111111
try {
112112
String fileContents = IOUtil.toString(file);
113113
DefinitionsDocument doc = new DefinitionsDocument(indenter, new GlobalEventNotifier());
114-
doc.insertString(0, fileContents, null); // (no attributes)
115-
int docLen = doc.getLength();
116-
doc.indentLines(0, docLen);
117-
fileContents = doc.getText();
114+
doc.acquireWriteLock();
115+
try {
116+
doc._insertString(0, fileContents, null); // (no attributes)
117+
int docLen = doc.getLength();
118+
doc.indentLines(0, docLen);
119+
fileContents = doc.getText();
120+
}
121+
finally { doc.releaseWriteLock(); }
118122
IOUtil.writeStringToFile(file, fileContents);
119123
if (!silent) System.out.println("done.");
120124
}

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -961,16 +961,13 @@ public static ArrayList<String> evaluate() {
961961
new NonNegativeIntegerOption("recent.files.max.size", Integer.valueOf(5));
962962

963963
/** Whether to automatically close comments. */
964-
public static final BooleanOption AUTO_CLOSE_COMMENTS =
965-
new BooleanOption("auto.close.comments", Boolean.FALSE);
964+
public static final BooleanOption AUTO_CLOSE_COMMENTS = new BooleanOption("auto.close.comments", Boolean.FALSE);
966965

967966
/** Whether to clear the console when manually resetting the interactions pane. */
968-
public static final BooleanOption RESET_CLEAR_CONSOLE =
969-
new BooleanOption("reset.clear.console", Boolean.TRUE);
967+
public static final BooleanOption RESET_CLEAR_CONSOLE = new BooleanOption("reset.clear.console", Boolean.TRUE);
970968

971969
/** Whether to run assert statements in the interactions pane. */
972-
public static final BooleanOption RUN_WITH_ASSERT =
973-
new BooleanOption("run.with.assert", Boolean.TRUE);
970+
public static final BooleanOption RUN_WITH_ASSERT = new BooleanOption("run.with.assert", Boolean.TRUE);
974971

975972
/** Whether to make emacs-style backup files. */
976973
public static final BooleanOption BACKUP_FILES = new BooleanOption("files.backup", Boolean.TRUE);

0 commit comments

Comments
 (0)