Bugzilla – Full Text Bug Listing |
Summary: | Add way to tell if spec has changed since last run of a model, and to look at old spec if it has. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Description
Leslie Lamport
2009-11-18 02:42:11 UTC
I would make it transparently to the user. If the user clicks on the marker that is pointing to a changed file, the unchanged version should be shown. When a user clicks on an action in the error trace or coverage table, what should happen? I think if the module has not been changed, the action should be highlighted in the writable version of the module. If the module has been changed, it should be highlighted in the read-only version. It's not at all clear what the interface should be. If the user clicks on an error trace produced 6 months ago, he would reasonably expect it to show the saved module. On the other hand, suppose the user runs the model, clicks on the location of one error, corrects that error, saves the module, then clicks on the location of the next error. He would not be happy to find himself in the read-only saved version of the module. My initial thought is that, right next to the notification that the spec has been changed, there should be two buttons the user can push: one choosing the current spec and the other the original spec. (They could both be enabled if he has chosen "original spec" for a different model.) Whichever one he chooses, it's the modules of that spec that appear in all editor views. But that's just my initial thought. I expect I'll find problems with it if I think harder. Here's Dan's and my current view on how saved modules should be handled. 1. Define the current version of a module to be the one in an open editor window, if there is one; else it's the version in the file. If the version of a module saved after running a model is not the current version, then the user should be able to open the saved version by using an option on the TLC Model Checker menu. Clicking on that option shows a list of all modules in the spec for which the saved version of he currently selected model is not the same as the current one. Clicking on one of them opens a read-only editor on that version as a separate tab in the model's view. 2. If the user double clicks on an action in the error-trace view, then this takes the user to the indicated location in the saved module iff (a) the saved version is not the current version and (b) the saved module is open in a tab in the model. I implemented what is described in comment 4 with a modification to item 2. That item is now If the user double clicks on an action in the error-trace view, then this takes the user to the indicated location in the saved module iff the saved module is open in a tab in the model. The toolbox does not check if the saved version is not the current version. |
Summary: | Add reporting of fingerprint collision probability | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
The Model Checking Results page should list in the General section the information about probability of fingerprint collision that TLC prints after a run that finishes computing the reachable states. (I think it prints it out in the event of a liveness error.) It should say approximately something like: Probability of fingerprint collision: theoretical: 4.3E-15 pragmatic: 8.7E-15 |
Summary: | Cannot get the default VM install on Mac OS to run TLC | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Simon Zambrovski <simon> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | CC: | simon |
Priority: | P1 | ||
Version: | unspecified | ||
Hardware: | x86 32-bit | ||
OS: | Mac OS | ||
Target Version: | --- |
In TLCProcessJob, the method JavaRuntime.getDefaultVMInstall() returns null on Mac OS. A non-null value is required to run TLC. On Leopard, Carbon, 32Bit delivers the code, run in Eclipse (not RCP) IVMInstall install = JavaRuntime.getDefaultVMInstall(); System.out.println(install); -> org.eclipse.jdt.internal.launching.macosx.MacOSXVMInstall@31d55cc System.out.println(install.getInstallLocation()); -> /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home The same platform / installation delivers null in RCP mode. (In reply to comment #1) > On Leopard, Carbon, 32Bit delivers the code, run in Eclipse (not RCP) > > IVMInstall install = JavaRuntime.getDefaultVMInstall(); > System.out.println(install); > -> org.eclipse.jdt.internal.launching.macosx.MacOSXVMInstall@31d55cc > System.out.println(install.getInstallLocation()); > -> /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home Another reference describing the same bug: http://www.eclipse.org/forums/index.php?t=msg&goto=495006&S=af54b9bdf2bc342a1f3154a501e149b5 I posted the message that you linked to in the last comment. Added the plugin dependency to org.eclipse.jdt.launching.macosx to enable Mac OSx support. Could someone try if it solved the problem? Adding a mandatory reference to the OS-dependent plugin was wrong and didn't allow to run the dependent plugin on other platforms. But I made the reference "optional" (click on properties in the plugin.xml editor, dependency tab). Please try if it works. |
Summary: | The help view does not always receive focus when the user clicks help | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLA+ Toolbox Help | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
The help menu is not getting the focus if it doesn't already have the focus and it either is in or is being opened into a folder that has the focus. This is now fixed by activating the help view in HelpHandler after it is opened by displayDynamicHelp(). In cases where the view already receives focus, this has no effect. In cases when it previously did not receive focus, activating the help view gives it focus. |
Summary: | The rename spec command does not behave properly | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
The rename spec command doesn't do the right thing if a spec already exists that has the same name ignoring case but with different capitalization. In particular, a ResourcesException is thrown saying "A resource exists with a different case". If the spec being renamed is open at the time, then a RuntimeException is thrown saying "Specification newSpecName not found" and the toolbox returns to the welcome view. In addition, if a spec is renamed to a name "newName" when there exists a folder newName.toolbox, this seems to cause the same problem. There may be other renaming actions that can cause the same resource problems. I changed the renaming validation method to check if any specifications exist that have the same name but a different case. I cannot reproduce the problem that I said occured when there exists a folder newName.toolbox that has not been opened as a specification and the user renames an open specification to "newName". I will assume that I made this problem up, so the rename spec bug has been fixed. Created attachment 2 [details]
mylyn/context/zip
|
Summary: | Parsing errors in the MC file contain "Encountered ----" sometimes | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Entering an expression such as "1+" followed by nothing in fields of the model editor will result in a parse error message that says "Encountered ----". The parser finds "----" in the MC.tla file because that is the separator between sections. This should probably be replaced with something more useful for the user. I wouldn't bother worrying about that. The message is nicely ambiguous, since it could be interpreted to mean that the parser encountered something that it either can't or isn't bothering to tell you what. More confusing is the stack trace part of the message that talks about line numbers in the MC file. I'd suggest subtracting the suitable number from the line numbers so numbers from 1 through the number of lines in the expression correspond to what the user typed. This will leave most of the line numbers in the stack trace negative, which will tell the user that these are not lines he should expect to see. However, this has low priority. |
Summary: | Add module-editor line width preference | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Add a new parameter that is a default line width for modules. This should be put on a new Module Editor preferences page. (it's not clear to me if any of the General preferences that apply to the module editor should be moved to this page. That should be done only if they apply only to the module editor and not to anything else, such as the Model Editor.) Its default value should be 77. The creation of a new module file by the Toolbox (for example, when opening a new spec with a new file) should use the parameter as follows. Let the value of this parameter be P. Then - The closing line of the module should consist of P "=" characters. - The opening line of the module should consist of the following: N "-" characters, 1 space character, "MODULE", one space character, the module name, one space character, M "-" characters where N and M are the smallest integers greater than or equal to 4 such that: (a) M equals either N or N-1, and (b) The total number of characters in the line is greater than or equal to P I believe this means that, with Java notation, N = Max(4, (Q / 2) + (Q%2)) M = Max(4, Q / 2) where Q = P - ("MODULE".length + ModuleName.length + 3) Also, rename the items under TLA+ Preferences to remove "Preferences" from their names--e.g., change "TLA+ Parser Preferences" to "TLA+ Parser". The preference renaming is moved to the separate Bug 9. What is to do with those numbers, M, N, P and Q? The formulas are not needed for determination of width of new modules (it is trivial, since the content of the module is stored in a template). I don't see any other purpose of the editor width, beyond the usage in the formater. Writing a formater is a task which is usually more than finding out how long the line is. The GENERAL setting of the TEXT EDITOR (not TLA+ Editor) should not be changed. |
Summary: | Rename Preference Pages | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Simon Zambrovski <simon> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Rename the items under TLA+ Preferences to remove "Preferences" from their names -- e.g., change "TLA+ Parser Preferences" to "TLA+ Parser". Created attachment 3 [details]
mylyn/context/zip
|
Summary: | Eclipse buttons don't work on Linux ubuntu 9.10 | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Simon Zambrovski <simon> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | bugzilla.tlaplus.net, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Linux | ||
Target Version: | --- | ||
Bug Depends on: | 116 | ||
Bug Blocks: |
I tried it in my linux (ubuntu Karmic) machine. The toolbox, quickly used around 1 gb (1172 mb) of my virtual memory before opening a file. Having 1 GB of physical memory in my laptop, only opening a spec file almost like forever. I don't think it is a normal situation. I tried to upgrade my machine using the latest stable kernel 2.6.31-15-generic, but the problem remains. Other applications (such as netbeans, eclipse, mysql) run normally in my machine. I'm not sure what went wrong. Sincerely yours, Ade Azurat (ade@cs.ui.ac.id) This is not a memory issue. The physical memory usage of the toolbox on startup was only 60MB on his machine. He was unable to open a spec because the Finish button did not work properly on the New Spec Wizard on his machine. In particular, clicking on it does nothing. There is at least one other way to actually select Finish: hold Control and press Enter. It turns out this is an eclipse bug. The same thing occurs with some buttons in eclipse on ubuntu Karmic. This problem is listed many times on bug lists. For example, https://bugs.eclipse.org/bugs/show_bug.cgi?id=291257 https://bugs.launchpad.net/gtk/+bug/442078/comments/28 https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/443004 From what I've gathered from these bug lists, the most recent release of ubuntu (and maybe some past releases) contains an updated version of gtk, which I've learned is a widget toolkit for greating GUIs. The second link explains that if eclipse had used gtk properly in the past, then this new version would not cause problems, but evidently, eclipse has been using gtk in strange ways that only happened to work on past version but don't work on this new version. The button clicking bug is just one of the problems that exists in eclipse on the newest version of ubuntu. Some of the messages in the first link explain that eclipse 3.5.2 and 3.6 appear to fix the problem, but these versions are still in development. We could get one of the builds of 3.5.2 and use this as the new target platform, but since its not officially released, who knows what bugs this would introduce. This seems like a bad option to me. According to a message on the first link, the target date to release 3.5.2 is February 26, 2010. The GTK developers included a flag that allows the previous behavior of GTK to be used by an application. This flag is set by setting the the environment variable GTK_NATIVE_WINDOWS=1 . I tried this on the linux machine I've been using in Orsay, and it does seem to fix the problem. The only way I've found to set this is to run the command export GTK_NATIVE_WINDOWS=1 in a shell and then run the toolbox from that shell. It would be annoying for the user to have to do this every time, so it might be better to just include those two commands in a shell script that the user would run. We could do this while waiting for eclipse 3.5.2 to be released. Or maybe there is a nicer way to set this flag that I haven't found. Another option as Leslie suggested is to just put a message in every wizard and dialog explaining what to do if clicking on a button doesn't work. Unfortunately, there may be issues with widgets in the toolbox besides buttons that we haven't discovered. Any thoughts on this? This is a slightly updated description of the bug. Some buttons don't work properly on Eclipse and the Toolbox on some platforms. In particular, any platform that uses GTK+ version 2.18 (the latest version) will experience this bug. The desktop environment GNOME uses GTK+ as its base widget toolkit, and the latest version of GNOME (released in September, 2009) uses GTK+2.18. GNOME is the default desktop environment for Fedora, Debian, Ubuntu, and OpenSolaris, so those systems with the latest version of GNOME probably experience the problem. We don't have a distribution for Solaris, so I guess that's not an issue right now. The wikipedia page for GTK+ lists a few other desktop environments that use GTK+ and can run on Linux machines. They are Xfce, LXDE, and ROX Desktop. They don't seem to be very widely used, but we can note those on the website just in case. The complete extent of the bug is not clear. However, from the bug forums and from my tests in Orsay, I believe that the button problem only occurs with the default button in a dialog or wizard. The default button is usually a different color and can be selected by pressing Enter (when they work properly). On platforms with the bug clicking on these buttons will cause the button to appear pressed, but nothing else will happen. If this happens, the user should try one or more of the following: 1.) Press Enter 2.) Hold Control and press Enter 3.) Let the mouse hover over the button and press Enter 4.) Let the mouse hover over the button and press Space There may be other ways to select the buttons, but these are the one's that people have mentioned in the bug forums. Its also worth noting that if a user experiences any other strange behavior with a widget on one of those platforms, then there's a good chance its the same bug. Some of the posts on the bug forums mentioned other problems with GTK+ 2.18 besides the buttons. I don't believe these problems are relevant to the Toolbox, but there may be some other non-button problems that are. The workaround provided by the GTK+ developers is to set GDK_NATIVE_WINDOWS=true in a shell before launching the toolbox (or eclipse) from that shell. This causes GTK+ to behave as it did before 2.18. The real fix will be provided in Eclipse 3.5.2 which is scheduled for release on February 26, 2010. The trace explorer buttons for Explore and Restore seem to be affected by this bug. Once fixed the system specific Instructions for Linux [0] can be removed from the web page. [0] http://research.microsoft.com/en-us/um/people/lamport/tla/toolbox.html#downloading The new Maven/Tycho based build has upgraded the toolbox dependency to Eclipse 3.6, marking as fixed. |
Summary: | Add the notion of a model being locked | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
We still have the problem that TLC might be running for weeks, and the user in the meantime changed the spec. When TLC stops running, the model gets revalidated and stuff that was in the model configuration gets lost. Here is a possible solution: Add the notion of a model being LOCKED, meaning that it cannot be changed in any way, meaning that it is read only and it doesn't change to conform to the current spec. (This state actually exists in the toolbox now: it is called "model in use".) In particular, it conforms to the copy of the spec that's salted away with the model. Running the spec locks the model. There will also be a menu item that the user can select to lock the spec himself. (This will allow the user to protect himself from accidentally modifying or re-running a spec by mistake--perhaps losing a trace that took weeks for TLC to produce.) We must decide what should happen to the lock state when a TLC run completes. Should the user have to explicitly unlock it? I suggest that it be unlocked when the run completes if and only if that run did not take too long--where "too long" is a user-settable preference. I'll add a field to the TLC preference page that specifies how long the model must run in order to remain locked when TLC terminates. I'll add a lock and an unlock button to the toolbars that currently contain the buttons for running, validating, and stopping. I think there should be a notion of an explicit user lock and an automatic lock. A user lock occurs when the user clicks on the lock button. An automatic lock occurs when TLC starts. A model with a user lock can only be unlocked when the user clicks the unlock button. A model with an automatic lock can be unlocked if TLC terminates in less than the specified time or if TLC terminates in more than the specified time and the user clicks the unlock button after TLC completes. If a user locks a model while there is an automatic lock (he clicks the lock button while the model is running), then the user lock replaces the automatic lock. When the model is locked, all fields in the model editor will be disabled (they will have the grayed out look, and the user will not be able to edit them). The lock button will be enabled when TLC is running and the unlock button will be disabled. When TLC is not running, the unlock button will be enabled only when the model is locked and the lock button will be enabled only when the model is unlocked. This sounds good. Should the user be able to rename the model when it is locked? It doesn't matter whether or not the user is allowed to rename a locked model. (If he is allowed to remain it, that shouldn't unlock it.) |
Summary: | Toolbox checking unselected behavior spec options. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | a spec |
When I change the spec to remove all variables and save it and then open an existing model, the model correctly opens with the "No behavior spec" option selected and the other options disabled. However, when validating the Toolbox, it complains that the Init and Next formulas left over from the previous version (which I can't change because the option is disabled) are undefined. We should make sure that no entry from a disabled field is ever put into the MC file. I can't seem to reproduce this error. Can you send me the spec and model that caused this problem? Since this does not seem to be reproducible, I'm marking it as worksforme. Created attachment 4 [details]
a spec
see description
Open a new spec with this root file. Create a model for it, assigning arbitrary small integer values to M and N and using Init and Next as the initial predicate and next-state action. Add the invariant (x=y) => x = GCD(M, N) Run the model. It will produce an error, which you can ignore. Now enter ===== right before the CONSTANTS declaration and save the module. Go to the model and validate it. Depending on the Toolbox's mood, you'll get 5 or 7 errors. If you get 7 errors, two of them will be complaining about Init and Spec. But you may get only 5, in which case it is correctly complaining about the bad Invariant. However, it's impossible to remove the invariant because the invariant section can't be opened. This is not a terrible problem; one just has to add a variable to the spec. But it's a nuisance--especially if the randomly occurring complaint about Init and Spec occurs. The statement in my previous comment that the 5 errors in the Invariant are not a bug was wrong. You can't check invariants or other properties if there's no spec, so they should be ignored in that case. Other parts of the model that should be disabled and ignored when there's no behavioral spec are: - Recover from Checkpoint - Number of workers - State and Action constraint - TLC Options I don't believe that number of workers makes any difference. The toolbox was already disabling the invariants and properties sections but was not ignoring them when it launched TLC. It now ignores them. It also ignores checkpoint recovery, state and action contraints, and anything in the TLC Options section. I found that disabling the State Constraints, Action Constraints, and TLC Options sections creates some bizarre behavior on the Advanced Options page, so I decided not to do this. |
Summary: | Trace exploration | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
After an error trace is generated from a run of TLC, the user should be able to enter one or more expressions for which he wants to see the value at each state of the trace. Currently, I think the TLC Error View should contain a section that looks the same as the invariants or the properties sections. This would require some re-implementation of the lower part of the view's sash form, but I think this would be a nice interface. In addition to the Add, Edit, and Remove buttons, the section will contain a run button. I'm not yet sure where the best place for this button is. Its necessary to determine if an expression contains primed variables. We could do this by providing the user with a checkbox for each expression that indicates if it has primed variables. We could also run SANY to determine if an expression has primed variables. This would require running SANY once to determine which expressions have primed variables, once to parse the initial predicate and next-state relations that are generated for exploring the trace, and once when TLC runs. I think it is preferable to provide the user with a checkbox and display the error produced by TLC if the user makes the wrong selection. Clicking the run button will execute the trace explorer, unless one of the following conditions is true: 1.) The model is unlocked and the spec is not parsed. 2.) The model has a validation error (If the validation error is in the spec, init and next, invariants, properties, or constraints sections, this should not prevent the user from running the trace explorer, although this might be a little more difficult to implement). If one of these conditions is true, then an error window will pop up explaining the error. If neither is true, the following steps will occur: 1.) The toolbox will run SANY to validate the expressions. If there are errors, these will be displayed as red error bubbles (the same as in the model editor). 2.) If SANY finds no errors, TLC will be run to evaluate the expression at each state of the trace (If the expression contains primed variables, then it cannot be evaluated for the last state of the trace). 3.) If TLC produces an error evaluating the expressions at any state, then I think this error should be appended to the existing message in the error box at the top of the error view. Another option is to have a separate box for reporting errors from evaluating expressions for trace exploration. A third option is to display the errors in error bubbles as with validation errors. 4.) If TLC does not produce an error, then the existing error trace will be replaced with a new error trace. Each state will be identical to the corresponding state in the previous trace except that there will be one additional row for each expression that was evaluated. The left column of a row corresponding to an expression will have the expression and the right column will have its value. If an expression contains primed variables, then the value column of its row in the final state will have something like "--" to indicate that it cannot be evaluated. A while ago Leslie and I discussed the meaning of primed variables when exploring the error trace. I'm not sure if we came to a conclusion on this point, but I think that if an expression contains the primed value of a variable x, then the value of that expression at state number z should use the value of x in state number z+1. For example, consider the following trace. STATE 1: <Initial predicate> /\ x = 0 /\ y = 0 STATE 2: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 1 /\ y = 0 STATE 3: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 2 /\ y = 1 STATE 4: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 3 /\ y = 3 If the user wants to evaluate the expression x'+y, then I think he should see the following trace. STATE 1: <Initial predicate> /\ x = 0 /\ y = 0 \* x'+y = 1 STATE 2: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 1 /\ y = 0 \* x'+y = 2 STATE 3: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 2 /\ y = 1 \* x'+y = 4 STATE 4: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 3 /\ y = 3 \* x'+y = "--" The other option, which would be easier to implement, but which makes less sense to me would be to display the following trace. STATE 1: <Initial predicate> /\ x = 0 /\ y = 0 \* x'+y = "--" STATE 2: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 1 /\ y = 0 \* x'+y = 1 STATE 3: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 2 /\ y = 1 \* x'+y = 2 STATE 4: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 3 /\ y = 3 \* x'+y = 4 In the preceding trace, the value of x' in the second state is equal to the value of x in the second state instead of the value of x in the third state. 1.) Create three new files in the model folder, TE.tla, TE.cfg, TE.out (TE stands for trace explorer, might need to choose something that the user is less likely to choose as a module name). 2.) For each expression the user enters for trace exploration, assign an identifier that is unlikely to appear in the spec. Declare these identifiers as variables in TE.tla. Alternatively, the user could be responsible for assigning identifiers to expressions. 3.) Fill TE.cfg and TE.tla with the values of constants, additional definitions, definition overrides, and additional model values. 4.) Write the initial predicate and next-state relation to TE.cfg and TE.tla. This is best illustrated with an example. The trace is the following: STATE 1: <Initial predicate> /\ x = 0 /\ y = 0 STATE 2: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 1 /\ y = 0 STATE 3: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 2 /\ y = 1 STATE 4: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 3 /\ y = 3 The user wants to evaluate two expressions: x + y x' > y The file TE.tla will define two new variables: VARIABLES sum, big The variables are named "sum" and "big" for the simplicity of this example. In reality they will be something like "trace_2348902347238", unless the user is responsible to assigning labels to the expressions. The file will also define two new identifiers: sum_def == x + y big_def == x' >y We define the initial predicate and next-state relation as follows: TInit == /\ x = 0 /\ y = 0 /\ sum = sum_def /\ big = "--" TNext == \/ /\ x = 0 /\ y = 0 /\ x' = 1 /\ y' = 0 /\ sum' = sum_def' /\ big' = big_def \/ /\ x = 1 /\ y = 0 /\ x' = 2 /\ y' = 1 /\ sum' = sum_def' /\ big' = big_def \/ /\ x = 2 /\ y = 1 /\ x' = 3 /\ y' = 3 /\ sum' = sum_def' /\ big' = big_def The expression defined by big_def has primed variables so the variable big takes the value "--" in the initial state predicate. The expression defined by sum_def does not contain primed variables. This will produce an error trace by defining the invariant: ~(x=3/\y=3) The TLC Error View will have to alter this error trace if it is to display it in the way I described in the previous comment. In particular, the value of big must be shifted up one state and the last state should have that big = "--". Thus, the value of big in the second state will be displayed with the first state in the error view. The toolbox will call TLC on the root file TE.tla with config file TE.cfg and write its output to TE.out. One question that I forgot to put in the first comment. When the model is unlocked, should running the trace explorer cause module files to be recopied to the model directory? Currently, I think the TLC Error View should contain a section that looks the same as the invariants or the properties sections. This would require some re-implementation of the lower part of the view's sash form, but I think this would be a nice interface. In addition to the Add, Edit, and Remove buttons, the section will contain a run button. I'm not yet sure where the best place for this button is. The button should be the same place as the Add/Edit/Remove buttons. And it should be an "explore" button. The button to restore the original trace (see below) should be in the same place. Its necessary to determine if an expression contains primed variables. We could do this by providing the user with a checkbox for each expression that indicates if it has primed variables. We could also run SANY to determine if an expression has primed variables. This would require running SANY once to determine which expressions have primed variables, once to parse the initial predicate and next-state relations that are generated for exploring the trace, and once when TLC runs. The second run of SANY isn't necessary. If the expressions parse correctly in the first parse, then the initial predicate and next-state actions that the Toolbox creates will also parse correctly. (This isn't completely trivial, but it's easy to ensure. For example, the first module that SANY parses should declare the new variables to make sure that they are legal variable names.) I think it is preferable to provide the user with a checkbox and display the error produced by TLC if the user makes the wrong selection. Since it doesn't require an extra parse, the Toolbox should determine this by itself. Clicking the run button will execute the trace explorer, unless one of the following conditions is true: 1.) The model is unlocked and the spec is not parsed. 2.) The model has a validation error (If the validation error is in the spec, init and next, invariants, properties, or constraints sections, this should not prevent the user from running the trace explorer, although this might be a little more difficult to implement). It's not worth worrying about this. The explorer should be run only if there is no validation error. If one of these conditions is true, then an error window will pop up explaining the error. If neither is true, the following steps will occur: 1.) The toolbox will run SANY to validate the expressions. If there are errors, these will be displayed as red error bubbles (the same as in the model editor). 2.) If SANY finds no errors, TLC will be run to evaluate the expression at each state of the trace (If the expression contains primed variables, then it cannot be evaluated for the last state of the trace). 3.) If TLC produces an error evaluating the expressions at any state, then I think this error should be appended to the existing message in the error box at the top of the error view. Another option is to have a separate box for reporting errors from evaluating expressions for trace exploration. A third option is to display the errors in error bubbles as with validation errors. The original error should not be destroyed or mucked with. Remember That it might have taken TLC a week to produce that message. I suggest that in case trace exploration yields an error, that error should replace the original error in the window--with some clear indication that the error occurred in trace exploration. If the exploration also produces an error trace, then that trace should be displayed in the trace view. If the trace explorer succeeds on the next try, the original error message is restored. When the user clicks on the button to restore the original trace (see below), that should also restore the original error message. 4.) If TLC does not produce an error, then the existing error trace will be replaced with a new error trace. This replacement is not permanent. The original error trace must be saved, and there must be a button that permits the use to restore it. Each state will be identical to the corresponding state in the previous trace except that there will be one additional row for each expression that was evaluated. The left column of a row corresponding to an expression will have the expression and the right column will have its value. If an expression contains primed variables, then the value column of its row in the final state will have something like "--" to indicate that it cannot be evaluated. A while ago Leslie and I discussed the meaning of primed variables when exploring the error trace. I'm not sure if we came to a conclusion on this point, but I think that if an expression contains the primed value of a variable x, then the value of that expression at state number z should use the value of x in state number z+1. For example... Yes, that's correct 1.) Create three new files in the model folder, TE.tla, TE.cfg, TE.out (TE stands for trace explorer, might need to choose something that the user is less likely to choose as a module name). TE is fine. As with MC, the user shouldn't be allowed to create a module named TE. 2.) For each expression the user enters for trace exploration, assign an identifier that is unlikely to appear in the spec. Declare these identifiers as variables in TE.tla. Alternatively, the user could be responsible for assigning identifiers to expressions. It's better to have the user choose the identifier. If the user defines Sum2 == x'+y Then the error trace would contain something like STATE 1: <Initial predicate> /\ x = 0 /\ y = 0 /\ Sum2 = 1 STATE 2: <Action line 8, col 3 to line 9, col 15 of module Test> /\ x = 1 /\ y = 0 /\ Sum2 = ... One reason for this is that it would be good to allow the user to change which variables' values are displayed and in what order. If this feature is implemented, Sum2 would be treated as just another variable like x and y. When the trace from the trace explorer is shown for a given model, it will continue to be shown in the error view for that model unless model checking is run, the restore button is pressed, or the error hyperlink on the results page is pressed. Closing and re-opening the toolbox, switching to another model and back, closing and re-opening using the menu item in the TLC menu will show in the error whatever errors were previously there for that model (errors from the trace explorer or errors from model checking). I decided to make the hyperlink on the results page restore the original error/trace in case the trace explorer somehow messes up the error view so that the restore button does not appear. |
Summary: | The column numbers do not appear in module editor | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
At one point I think the column number of the cursor appeared at the bottom of the module editor. I may have removed this when turning the module editor into a multipage editor to include a pretty printed version of the module. I created a class TLAMultiPageEditorActionBarContributor that acts as the contributor class for the TLAEditorAndPDFViewer class that is the editor for TLA modules. The contributor adds the cursor position to the status line at the bottom of the toolbox when a text editor is active. I also re-added the Content Assist and Content Tip menu items to the edit menu that I had removed when I made the editor for tla modules into a multi page editor. I'm not sure what the Content Tip item does, but it was there before. |
Summary: | Rename or deleting root file outside toolbox produces incorrect editor page | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLA+ Editor | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | minor | CC: | bugzilla.tlaplus.net, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
If the user renames or deletes a root file outside of the toolbox and then opens the spec, the toolbox displays a page that says Resource is out of sync with the file system: '/test/test10.tla'. Press F5 or select File -> Refresh to refresh the file. Pressing F5 does nothing and File -> Refresh does not exist in the toolbox, so I guess this page is generated by eclipse code. The toolbox also shows the Parsing Error view which says "Could not find module." A solution is to attach a resource change listener to the work space. If the root file is renamed the listener would change the spec to point to the new root file name. I think that it would also have to change the name of the root module to equal the new file name. If the root file is deleted, the listener would change the spec to reflect this and the open spec handler would have to check for this before opening an editor on that file. I don't know that this would always put the toolbox in sync with the file system, because its not clear exactly when resource change listeners get notified of resource changes. An easier solution would be to simply check before opening an editor on the root file if that file still exists with the name the toolbox thinks it has and display an sensible error message to the user if it doesn't. Resource change listeners are notified of resource changes that occur outside of the toolbox only after the method refreshLocal is called on a directory containing the changed resources. AFAIR ResourceChangeListener only track resources while the workbench is up and running. If spec or .toolbox/* files are moved/deleted while the Toolbox is down has to be handled too. Otherwise exception like the following show up in the log and/or current editor: org.eclipse.ui.PartInitException: The file does not exist. at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3075) at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3088) at org.lamport.tla.toolbox.editor.basic.TLAEditor.init(TLAEditor.java:175) at org.eclipse.ui.part.MultiPageEditorPart.addPage(MultiPageEditorPart.java:237) at org.eclipse.ui.forms.editor.FormEditor.addPage(FormEditor.java:325) at org.lamport.tla.toolbox.editor.basic.TLAEditorAndPDFViewer.addPages(TLAEditorAndPDFViewer.java:70) at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138) at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:348) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:271) at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1429) at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:942) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Caused by: org.eclipse.core.runtime.CoreException: The file does not exist. at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.create(ResourceFileBuffer.java:237) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.connect(TextFileBufferManager.java:112) at org.eclipse.ui.editors.text.TextFileDocumentProvider.createFileInfo(TextFileDocumentProvider.java:559) at org.eclipse.ui.editors.text.TextFileDocumentProvider.connect(TextFileDocumentProvider.java:478) at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4056) at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:217) at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1444) at org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:169) at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3043) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2606) at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3061) ... 45 more !ENTRY org.eclipse.ui 4 0 2011-05-09 18:46:38.059 !MESSAGE Unable to create editor ID org.lamport.tla.toolbox.editor.basic.TLAEditorAndPDFViewer: assertion failed: !STACK 0 org.eclipse.core.runtime.AssertionFailedException: assertion failed: at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96) at org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:1065) at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:607) at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:352) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:271) at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1429) at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:942) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) !ENTRY org.eclipse.ui 2 2 2011-05-09 18:46:38.163 !MESSAGE Ignored attempt to add saveable that was already registered !STACK 0 org.eclipse.core.runtime.AssertionFailedException: unknown saveable: org.eclipse.ui.internal.DefaultSaveable@3a33a6b8 from part: org.eclipse.ui.internal.ErrorEditorPart@3a33a6b8 at org.eclipse.ui.internal.SaveablesList.logWarning(SaveablesList.java:187) at org.eclipse.ui.internal.SaveablesList.addModel(SaveablesList.java:117) at org.eclipse.ui.internal.SaveablesList.addModels(SaveablesList.java:289) at org.eclipse.ui.internal.SaveablesList.postOpen(SaveablesList.java:684) at org.eclipse.ui.internal.PartList.partOpened(PartList.java:234) at org.eclipse.ui.internal.PartList.access$0(PartList.java:210) at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList.java:40) at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(WorkbenchPartReference.java:375) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:610) at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:271) at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1429) at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:942) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) One more stacktrace: !ENTRY org.eclipse.core.resources 4 2 2011-05-09 19:19:40.165 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". !STACK 0 java.lang.NullPointerException at org.lamport.tla.toolbox.ui.contribution.StatusReflectingSpecLifecycleParticipant.initialize(StatusReflectingSpecLifecycleParticipant.java:23) at org.lamport.tla.toolbox.util.SpecLifecycleManager.initialize(SpecLifecycleManager.java:49) at org.lamport.tla.toolbox.spec.manager.WorkspaceSpecManager.<init>(WorkspaceSpecManager.java:58) at org.lamport.tla.toolbox.Activator.getSpecManager(Activator.java:297) at org.lamport.tla.toolbox.util.ResourceHelper.getResourceByName(ResourceHelper.java:147) at org.lamport.tla.toolbox.util.ResourceHelper.getResourceByModuleName(ResourceHelper.java:137) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:258) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:83) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:56) at org.lamport.tla.toolbox.spec.parser.SpecificationParserLauncher.parseSpecification(SpecificationParserLauncher.java:38) at org.lamport.tla.toolbox.spec.nature.ParserHelper$2.run(ParserHelper.java:75) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957) at org.lamport.tla.toolbox.spec.nature.ParserHelper.rebuildSpec(ParserHelper.java:81) at org.lamport.tla.toolbox.spec.nature.TLAParsingBuilder.build(TLAParsingBuilder.java:67) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) |
Summary: | cygwin doesn't properly unzip the Windows executable | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
I received the following problem report from a user here. The problem occurred when he unzipped the file using Cygwin's unzip command. It worked fine when he used WinZip. He also said that when he unzipped with WinZip, then produced a zip file with Cygwin and unzipped that file with Cygwin, it worked fine. This all happened on an XP system. We should see if this is reproducible. If it is, we should spend a few milliseconds trying to figure out if there's a way to produce a zip file that Cygwin will handle properly. If we can't figure out such a way, we should warn users not to unzip with Cygwin. ----- I tried to install the toolbox but I'm getting an error. My operating system is Windows XP. Here's what I did: - downloaded ZIP file from http://www.msr-inria.inria.fr/ Projects/tools-for-formal-specs/toolbox.win32.win32.x86.zip - unzipped it to c:\, creating directory c:\tlatoolbox - installed Java (Java Version 6 Update 17). - rebooted computer - executed c:\tlatoolbox\toolbox.exe - got a pop up window that says "The Toolbox executable launcher was unable to locate its companion shared library" |
Summary: | tlatex translation not working? | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLATEX Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When I try to produce a pdf version, the appropriate tab appears but it is blank. While this could be a problem with my installation, it has worked in the past and I haven't changed anything in my LaTeX installation. (Which doesn't mean that Windows didn't decide to change it for me.) However, no log entry is produced, which is a bug even if the Toolbox is calling tla2tex correctly. Moreover, even if there were a problem with my LaTeX installation, TLATeX would write a .tex file and the Toolbox command isn't doing that. And furthermore, there is an old version of the pdf file in the .toolbox directory that the Toolbox isn't displaying. Also, I don't remember if TLATeX produces an error message that the Toolbox is supposed to recognize and translate into an error warning for the user. If that's not being done now, it should be implemented. The translation is working for me now. As near as I can tell, nothing changed in the Toolbox or in my machines' configuration. Of course, this being modern software, it might now be working because Neptune entered Sagitarius. |
Summary: | Modifying the Toolbox to handle pcal files. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA Tools | Assignee: | Leslie Lamport <lamport> |
Status: | RESOLVED INVALID | ||
Severity: | enhancement | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 33 |
There will be two kinds of module files: .tla and .pcal files. A root or non-root file of a spec can be of either kind. A .pcal file has a derived .tla file that is produced by running the pcal translator, which is done by calling pcal.trans.runMe(). For a pcal module, "parsing" consists of running the pcal translator and then, if there are no errors, parsing the resulting tla file. (Thus, no additional "translate on save" option is needed.) When the user opens a pcal module, the corresponding tla file should be opened in another tab of the editor (but the pcal file's tab should have the focus). Eventually there will be a version of tla2tex for pcal files. There will then need to be two separate commands for producing a pdf version of the pcal file and of the tla file. (The latter command should not be commonly used.) For now, the "Produce PDF Version" command will call tla2tex on the tla file. Should the user want to edit the tla file? Normally, it's a bad idea to edit derived files. However, I can imagine the user wanting to add debugging code to the algorithm. Adding it to the TLA+ translation might be a nice way to do this, since he will probably that code will then be removed when he fixes the bug in the pcal file and translates it. I suggest that the default be to pop up a warning the first time the user changes the tla file after it's translated. We can have a preference that allows him to disable that warning. We could also have a preference that makes the tla file read only. Most command-line options will be specified by the options statement in the pcal file. Moreover, the most common options, which specify fairness and termination, will eventually be eliminated by changes to the language. However, the user may want to specify some global default options that will be passed to the translator as command-line options. A preference will be provided to specify that. Its default value will be -nocfg. Since the ability to specify options for an individual spec in the Spec Explorer has been implemented, we perhaps we should keep it--letting the preference specify the initial setting of that field. Since those options will rarely be set by the user, it doesn't make much difference what we do. A read-only copy of the pcal file should be saved in the model's subdirectory along with the tla file. The module is considered to have changed if either the pcal file or the tla file has been changed since it was last translated or parsed. I think this is a complete list of what has to be changed to handle pcal files. The plan for using pcal files has been abandoned, so this is moot. |
Summary: | Toolbox caches obsolete values on startup | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | minor | CC: | bugzilla.tlaplus.net, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | stack trace |
I regularly synchronize my home and office machines by copying files back and forth between them. This means that I frequently overwrite .toolbox directories. If I open the Toolbox and it restores the previous state, it fails to check if the models that it knew about when it was last run are still there. This causes bizarre behavior. Often the Toolbox fails to start the first time I try to open it. By the way, is P4 higher or lower priority than P3? Created attachment 36 [details]
stack trace
|
Summary: | Model editor incorrectly reports that TLC is running | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: |
Root module for spec
toolbox directory containing the only model |
Opening the spec and the (only) model (see attachments) gets the model in a state in which most of it thinks that TLC is running, except that the Model Checking Results page correctly reports its status as "Not running". This state may have been produced by running the trace explorer, but running the trace explorer on another spec doesn't do that. Created attachment 5 [details]
Root module for spec
Created attachment 6 [details]
toolbox directory containing the only model
|
Summary: | Browsing for a new spec on Mac does not allow user to type in name | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 32-bit | ||
OS: | Mac OS | ||
Target Version: | --- |
In Windows, you can create a new file by browsing to an existing directory, typing in the name of the file, and clicking on Open. This opens the file if it exists, and creates it if it doesn't. The Toolbox's file browser on the Mac doesn't offer the option of typing in a file name. In a standard Mac interface, you have two menu items. One (open) to open an existing file and the other (save as) to save the contents of the window to a new file (possibly overwriting an existing file). Accordingly, there are two file browsers: the "open" file dialog and the "save" file dialog. In the case of the toolbox, it is missing a "new" menu item to create a new empty window, and the "save as" item doesn't open the right dialog. Changing the file dialog to a "save" dialog allows the user to type in the file name on Mac. The downside is that next to the text bar where the user can type in the file name, the dialog says "Save As", and the button to finish says "Save". We can set the title of the dialog to be whatever we want. The save dialog has been implemented for Mac OS X. The Save As menu also now opens a save dialog instead of an open dialog on all operating systems. |
Summary: | Help does not work on Mac | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Toolbox Help | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 32-bit | ||
OS: | Mac OS | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Jean-Charles reports that nothing appears on the Help menu at the top of the screen when the Toolbox is selected. (That's where MAC is supposed to show the help choices.) I do not believe it is possible to have one click help as a menu. It would appear that it is necessary to make Dynamic Help a menu item of the Help menu. This is fine because we are going to add an About menu item there as well. The Help menu now has a Dynamic Help item. Created attachment 11 [details]
mylyn/context/zip
|
Summary: | Minor fixes to the Trace Explorer Window | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
- Add a local help button (the ? inside a circle) that leads to help for the window. - When the user selects a state in the Error Trace, he sees the value of the expression as something like __trace_var_126403425857315000 = 12 The user should not see a variable name like that. Best would be to replace the variable name with the expression, the way it's shown in the Error Trace. If this isn't easy, the Toolbox should use shorter variable names for the expressions. - When nothing is selected in the Error-Trace window, the bottom text field says "No error information". It should say something more helpful, like: Select line in Error Trace to show its value here. Help button has been added. Variable names of trace explorer expressions in the value viewer are replaced with the single line form of the expressions (as shown in the trace viewer.) If the user enters a multi-line expression, all line breaks are removed. If the line breaks are not removed, then the value of the state is difficult to read. The order of the variables now reflects what is shown in the trace viewer. For variables that do not represent trace explorer expressions, I have attempted to keep the format the same as TLC's output. Created attachment 9 [details]
mylyn/context/zip
|
Summary: | Parsing an unsaved file | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
If you click on the "parse" button when the file has been modified, the Toolbox asks if you want to save the file but neither saves it nor parses it when you answer "yes". Clicking on "Parse Spec" when a spec module has been modified since last save brings up a dialog asking if you want to save the modified resources. If you click yes, it parses the spec but does not save the modified resources. If you click "Parse Module" on a module that has been modified, the toolbox does not prompt you to save. It just parses the module without saving. In the dialog that asks if you want to save the modified resources, clicking "No" has the same effect as clicking "Yes". I changed the dialog to have three buttons, Yes, No, Cancel. Yes saves any modified .tla files and parses, No parses without saving, and Cancel does not save or parse. This dialog appears if there are modified resources when the user selects "Parse Spec" or "Parse Module". I changed the dialog to OK/cancel. If the user selects OK, the unsaved modules are saved and the spec or module is parsed. Cancel does not save or parse. Created attachment 10 [details]
mylyn/context/zip
|
Summary: | Minor problem with value display in TLC Error Trace view | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
When no line in the Error Trace is selected, the text box below it should say Select line in Error Trace to show its value here. It does not display this when the TLC Errors Window is first raised. Nor does it do that when the Explore or Restore button is pushed--unless a line in the Error Trace was already selected when that Button was pushed. Created attachment 8 [details]
mylyn/context/zip
|
Summary: | Elements with multiple lines do not display properly in trace viewer | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
A name/expression or value that takes up multiple lines does not display properly in the trace viewer. In particular, only the first line shows. I don't understand. The trace viewer (the two-column viewer with Name and Value columns) shows only a single line. To view a multi-line value, the user should either select the line, in which case the entire value should appear in the viewer, or expand the line so he can view the individual parts of the value separately. This seems to be working as it should. What am I missing? Sorry, I was incorrect in saying that multi-line values display incorrectly. The bug is in displaying multi-line trace explorer expressions in the Name column. Only the first line appears. Multi-line expressions are now displayed as a single line in the Name column. Created attachment 7 [details]
mylyn/context/zip
|
Summary: | Extra menu for the toolbox on Mac | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | bugzilla.tlaplus.net, simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Mac OS | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
The toolbox on Mac OS has an extra menu item entitled "TLA+ Toolbox." It has the menu items "About TLA+ Toolbox", "Preferences...", "Services", "Hide TLA+ Toolbox", Hide Others", "Show All", and "Quit TLA+ Toolbox." "Services" seems to be permanently grayed out. The Preferences menu item also appears in the File menu, which I think is fine. All menu items perform as expects, except for the "About TLA+ Toolbox" menu item which seems to do nothing. We are going to add an About item to the Help menu. It would be nice to be able to remove the one from the "TLA+ Toolbox" menu, but I'm not sure if this is possible. Fixed in HEAD Created attachment 104 [details]
mylyn/context/zip
|
Summary: | Use of model values | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
a. There is no reason why the user cannot use the same model value in two different constant instantiations or in a constant instantiation and a definition override. Or uses a model value declared on the advanced page as a model value in a constant instantiation. This requires checking that a model value is declared elsewhere before adding a CONSTANT declaration for it. b. The correct order in which things should be written in the MC file are: - Declaration of advanced model values. - Declaration of the sets of model values that instantiate constants. - New User Definitions. - Everything Else, which is all of the form newId_1234567 == some expression. However, the current structure of the toolbox makes it a nuisance to do this, and the current validator will disallow the models that this order is designed to allow. |
Summary: | PlusCal translator errors do not disappear | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Suppose the user starts to write a PlusCal algorithm, translates it and gets a PlusCal error, and then decides to delete the PlusCal code and just write the spec in TLA+. There's no way for him to get rid of the PlusCal error message in the Parse Errors window. In fact, even if I run the translator on another module, the PlusCal error remains in the Parse Error window--whether or not the other translation produces an error. (The only way to get rid of it is to go back to the original module, correct the PlusCall error, and re-run the translator.) The best thing to do is probably to create a separate PlusCal Error Window. Running the translator should first clear this window and remove all PlusCal error markers in the module on which the translator is run. (I believe that if running the PlusCal translator creates a PlusCal error, then the file is not re-parsed, so only the PlusCal error window would need to be popped up.) |
Summary: | The Definitions Override menu allows the user to override the same definition multiple times. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
The Definitions Override menu allows the user to override the same definition multiple times. |
Summary: | Parsing spec command gets disabled | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | major | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
For a big spec--in particular, for the farsite spec, after Parse the parse spec command gets disabled. But parse module file still works. Simon thinks it may be that the build infrastructure of Eclipse is deactivating builders under some conditions--for example, if a builder dies with an exception, it is deactivated. Perhaps it's also deactivated on a time-out. The list of builders is attached to the project, so one can query the project or the project nature to find this out. So, Simon assumes that for some reason, the builder is deactivated. The parser is being launched in a separate thread, but Simon thinks that perhaps he's not doing it in the right way. |
Summary: | Closing the toolbox simply kills any running TLC | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Closing the toolbox simply kills any running TLC. Instead, it should warn the user that this will kill TLC and give him the option of canceling. To do this, need to modify to CloseSpecHandler.execute() so it checks if editors have been closed successfully before exiting. The model editor's method that gets called by the closeAllEditors method should return false. Another approach is to register another handler in place of this one when TLC is running, and having that handler call the current one only if the user says it's OK to stop TLC. |
Summary: | PlusCal translation needs to be reimplemented to handle .pcal files | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED INVALID | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Bug Depends on: | 18 | ||
Bug Blocks: |
PlusCal translation needs to be examined. Here are some things that need to be fixed: - There should be a more user-friendly way to specify translation options. This involves: (a) Providing check-boxes or radio buttons for the common options. (b) Finding a more convenient way to add them than the current one (right-clicking in the Toolbox Explorer) and selecting properties. - Translation options are now attached to the spec; they should be attached to an individual module. (It's possible for a single spec to have PlusCal algorithms in two different modules.) I renamed this, but apparently bugzilla doesn't allow me to change the description. The things mentioned in the description are minor compared to the major change required: adapting the Toolbox to the new way to use PlusCal: by having .pcal file containing the algorithm separate from the .tla file containing its translation. This requires that the user be able to open a spec with a .pcal file as its "root". The existence of the two files raises many new issues to be dealt with, such as: - Should the user be able to edit the .tla file? This is a bad idea in general, but it's conceivable that the user may want to do this. It should be made difficult but not impossible. That is, the editor on the .tla file should by default be read-only. - The user should be able to pretty-print either of the two files or both of them. (TlaTeX will need to be modified to work on .pcal files.) - Do we allow the user to create a spec or open a module editor on a .tla file for which there also exists a .pcal file? Perhaps that should be the way for him to edit the .tla file. The plan to use .pcal files has been abandoned as a bad idea. |
Summary: | Reset window layout produces blank window in welcome perspective | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
If I select window / reset window layout in the Welcome Perspective, it produces a blank window instead of the Welcome View. We should just disable the reset window command. |
Summary: | Module editor keybindings | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Here are some thoughts on enhancements to the Module Editor. - Add a preference to choose an Emacs-like keybinding. This requires adding new commands that appear in the General/Editors/Keys, and options that choose from among sets of bindings. - Add editing commands (and invent bindings) for comments. Perhaps copy the commands I use for boxing comments. Note that Simon has bound toggle comments to Control-/, but that command doesn't appear either when I type Ctl-Shift-L or in tthe preferences keybinding options. |
Summary: | Option to add lists of weakly and strongly fair actions | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WONTFIX | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Enhance the Init/Next method of writing the spec to add lists of weakly and strongly fair actions. LL Comment: Now that the user can specify fairness with PlusCal, this seems unnecessary. |
Summary: | Change default for making a set of model values typed or untyped | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P2 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
When the user has chosen assigned a set of model values to a constant and specified symmetry, the default on the next page of the wizard should be to make the values untyped. This may be hard to do because the second wizard page is created before the first page of the wizard is raised. If it's hard, perhaps we should change the default to be to make the values untyped. This is done in TypingWizardPage.createControl. The reason of the default setting being "typed" is because we want people to use typed sets instead of untyped sets. |
Summary: | Import Existing spec option behaves incorrectly when .toolbox directory does not exist | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED WONTFIX | ||
Severity: | trivial | CC: | bugzilla.tlaplus.net, simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
When creating a new spec, the Import Existing spec option is always checked and disabled. It should be unchecked and disabled if the .toolbox directory does not already exist. However, if the .toolbox directory does exist, its present behavior of checking and enabling the box is the correct one. If it's hard to have both behaviors, forget about this. It has been forgotten about. |
Summary: | When a spec is open, the module browser should show the specification's directory | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
When the user clicks on File/Open Module/Choose TLA+ Module, the file browser that pops up should show the specification's directory. I find it more natural if it is the last directory you were in. If you want to add five modules from another directory you have to navigate five times to it, instead of once... I think that the file browser should open to the specification's directory because SANY requires all the module files for a specification to be in the same directory. Simon's comment makes some sense, as long as "the last directory you were in" means the last directory from which you opened a file in a module editor. This means that, when I first open a spec, "the last directory I was in" is the spec directory. Currently, the browser doesn't open on the last directory I was in, but on the directory of the last spec that I closed. That is clearly wrong. Opening a module from a directory other than the spec's is something that seems to me to be so uncommon that I don't know whether it's better to open the browser on the last directory I was in or on the current spec's directory. I can think of scenarios in which each is the better thing to do. However, since it's so uncommon, I don't think it makes much difference. As a guess, I'd say that it's better to open it on the spec's directory. However, if either is easier to implement than the other, then let's go with that one. This problem applies to Save As as well as Open Module. I made both dialogs open to the current spec's directory. I believe this will partially fix bug 52. In particular, it should cause the add module dialog on linux to open to the spec's directory. I need to verify this. Created attachment 13 [details]
mylyn/context/zip
|
Summary: | TLC's liveness checking in simulation mode is buggy | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLA Tools | Assignee: | Leslie Lamport <lamport> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | bugzilla.tlaplus.net |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
TLC's liveness checking in simulation mode is seriously buggy. Unless Yuan volunteers to find the fix quickly (which seems unlikely), we'll have to tell users not to check liveness properties in simulation mode. If Yuan does find the fix, we will probably have to fix a bug introduced by Simon that causes TLC to produce an error trace ending with State 5: <Action line 12, col 9 to line 12, col 20 of module Test2> x = 4 State 6: Stuttering Back to state 1. Fixed |
Summary: | Model editor does not remove some error messages on user input | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
In at least one place, the Toolbox marks an error when the user starts entering a value, but doesn't remove the error marker when the user's typing removes the error. Here are the cases I've found: - Write a model specifying Init and Next, leaving Temporal Formula empty. Then select Temporal Formula. This produces an error because the Temporal Formula field is empty. However, typing into that field doesn't make the error marker go away. - In TLC Options on the Advanced Options page, choose simulation node. Then: (a) Enter a non-number. Then delete that and enter a number. Or (b) Enter a non-numeric seed or aril, then delete it or change it to a number. or else choose Model-checking mode and depth-first mode, then do the same thing with the depth field. (Incidentally, there's no reason to check those fields at all when the appropriate option isn't chosen.) - In the constant assignment section of the main model page, specify the value of a constant to be a set of model values one of which is SPECIFICATION. This produces an error marker which remains after that constant assignment is changed. This isn't a big deal, because the errors go away when the model is validated. A similar case occurs if one first enters a Temporal Formula and then chooses "Initial predicate and next-state relation". |
Summary: | Toolbox does not alert user when editing a module out of synch with file system | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLA+ Editor | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | minor | CC: | bugzilla.tlaplus.net, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
If the user edits a module that is out of synch with the file system, the toolbox does not warn the user of this. When the user saves the module, a message pops up telling the user that the module is out of synch. |
Summary: | TLA files appear grayed out when browsing for new spec and adding a module | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Mac OS | ||
Target Version: | --- |
Files ending in .tla appear grayed out when browsing for a new spec or adding a module. It is still possible to select the grayed out items. They were not gray when the dialogs were "Open" dialogs but are gray now that the dialogs are "Save" dialogs. This only occurs on mac OS. I spent some time trying to figure out why this occurs, but was unsuccessful. |
Summary: | Drag-and-drop in module editor? | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Windows | ||
Target Version: | --- |
A Mac 64-bit user requested drag-and-drop. On a Friday morning, on Windows, with cloudy weather and an outside temperature around 0, here's what I observed: - In the Toolbox module editor, if I select a piece of text and drag it, I get visual feedback that indicates I'm dragging it. But when I release the mouse button to drop it, nothing happens. - In Eclipse, drag-and-drop works when I edit a java file or an xml file, but not when I edit an html file. Simon: do you know what's supposed to happen? I don't imagine the Eclipse code contains anything so retro as documentation, but perhaps someone has posted something about drag-and-drop somewhere. This is not worth worrying about now, but we should probably look into it when we start working on the editor. |
Summary: | The toolbox program file is not being set to be executable. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 32-bit | ||
OS: | Mac OS | ||
Target Version: | --- |
Jean-Charles reports that on two out of three of the machines he tried running the Mac 64-bit version (by double-clicking on the icon), nothing happened. He eventually found that the problem was that a file was not set to be executable--a problem that reports solving with chmod +x (macosx.cocoa.x86_64-jc.macosx.cocoa.x86_64/) toolbox.app/Contents/MacOS/toolbox I presume that the parenthesized text is supposed to indicate a super-directory of the directory in which the command was executed. I believe he found this problem with both the original version that Dan created and a later one that I made. I also have a vague recollection of this problem occurring on a different release. If this can't be fixed, we need to add a warning about it on the web page. There is an eclipse bug open on this: https://bugs.eclipse.org/bugs/show_bug.cgi?id=282260 The bug seems to be with the zip command run by the eclipse product export wizard when exporting to an archive file. The first comment claims that unchecking "Generate metadata repository" solves the problem. This is a discussion on the same topic: http://www.eclipse.org/forums/index.php?t=msg&goto=373468& I created an archive file using the eclipse product export wizard for mac 32-bit without generating a metadata repository. I tested it on the mac mini at the lab and it ran without requiring any changes in file permissions. When I produced the archive file for mac with a metadata repository, it did not run on the same mac. I believe this repository is for installing new features into a user's existing toolbox application and for running automatic updates for the toolbox. Do we need this right now? I created a zip file for linux using the export wizard without generating the metadata repository. The toolbox ran without requiring setting it to be executable. |
Summary: | Validating the model deletes the contents of MC.out | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Running validation on a model deletes the contents of MC.out. I think that the contents of that file should only be erased if TLC is going to be launched, not for validation. I'm not sure if this is a bug or not. Validation of the model changes the identifiers used for defining invariants, properties, etc, so the ids that may appear in MC.out no longer correspond to anything in MC.tla. This may be a reason to erase MC.out on validation. Anyone else have any input on this one? You are right. Running validateion in general means regeneration of the MC files. Which means that the MC.out file is obsolete. There is a slight inconsistency issue here. Running validation clears MC.out but does not clear the output in the data provider for the model. When the user closes and reopens the toolbox after validating the model, any output disappears. This could be confusing/annoying. |
Summary: | Automatically add last updated comment to end of module | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
We have the \* Generated at Thu Jan 28 12:46:04 EST 2010 comment at the end of the file. Why not also have an automatic \* Last updated ... ? |
Summary: | Load all spec modules at once | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
After loading a spec's top module, why not have an option to load all (related) other modules, to avoid having to go through the menu one by one? This was Jean-Charles' idea. A better idea would be a menu that allows you to select multiple modules to open at the same time. |
Summary: | Goto definition feature not opening new module editor when it should. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
If I hold down Control and click on a symbol that's defined or declared in an extended module, the right thing happens if that module is open in a model editor. If it isn't, nothing happens because the Toolbox throws: org.eclipse.ui.PartInitException: Unable to open editor, unknown editor ID: org.lamport.tla.toolbox.TLAEditorAndPDFViewer The ID used for opening the editor was wrong. Created attachment 17 [details]
mylyn/context/zip
|
Summary: | Deleting a model does not remove output source or data provider for model | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Deleting a model does not remove the sources and data providers for that model from the tlc output source registry. If a user recreates a model with the same name, the output data from the old model appears. Deleting a model actually did remove the output source from the registry but did not remove the provider associated with that output source. It now removes the provider as well. |
Summary: | Running trace explorer does not disable running of the model checker | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Running the trace explorer should disable running of the model checker on the same model because both operations work on the same directory. |
Summary: | New spec and Add module dialogs do not open to correct directory on linux | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
On a linux ubuntu machine, the new spec browse dialog and add module dialogs open to the directory containing the toolbox executable everytime. The new spec browse dialog should open to the most recently opened directory, and the add module dialog should open to the directory of the root module. I think the add module dialog issue should have been fixed by the fix for bug 39. I think I have also fixed the new spec browse dialog for all systems. The toolbox determines in which directory it should open by finding the first directory in the following list: 1.) The directory to which the user most recently browsed from the current new spec wizard page. This is reset to null every time the user reopens that page, so this only persists through one "Add New Spec..." dialog session. 2.) The directory of the root module of the most recently opened spec. 3.) The home directory of the user. Created attachment 14 [details]
mylyn/context/zip
|
Summary: | Go-to definition/declaration does not work for non-spec modules | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Jumping to the definition/declaration for a symbol does not work properly for a module that is not extended or included in the root module. I believe the toolbox looks for symbols in the symbol table for the root module. If the user is editing a module that is not currently extended or instanced by the root module, then the toolbox will not detect the hyperlink for symbols that are not in the symbol table of the root module. If the symbol happens to be in the symbol table for the root module, then the toolbox will incorrectly jump to the definition or declaration of that symbol in the spec. Created attachment 12 [details]
mylyn/context/zip
According to Leslie, this is fixed as much as it's going to be. |
Summary: | Default for Save As browser should be Browse Folders | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
For some reason, the file browser for the Save As command has a button to choose whether or not to display the selected folder. (The Open New Module file browser doesn't have that option.) I would use the Open New Module's file browser for the Save As command as well. However, if there's some good reason for using a different browser, then the browser should by default open with the current folder shown. Currently, it opens the first time with the current folder hidden. Combined with bug 39, this is a disaster. On my machine, even when browse folders is not selected, the current folder is shown. Can you attach a screenshot of what appears on your machine when you don't have browse folders selected. The downside to using the same dialog as the Add New Module dialog is that the button to finish says "Open" instead of "Save". It's possible that this could be confusing to some users, but we decided to use the Save dialog for opening new modules and specs on Macs, so I guess its not a big deal. Alternatively, eclipse uses a completely different browser for Save As. What do you think about this dialog? |
Summary: | Feature needed for handling many specs | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
The Problem: I already have too many specs to be able to find easily the one I want to open. I don't want to start deleting them because the I would lose the models I've defined. The Solution: The following two features. 1. The option of deleting a spec without deleting its .toolbox directory. Let's call that "Deleting" and the current behavior "Expunging". The simplest interface to use would be simply be to have Delete and Expunge options on the Spec Explorer menu. However, no one would figure out from the name what they mean. A more intuitive interface would be for Delete to raise a popup allowing the user to check or uncheck an "Allow spec to be reopened later" option. (I suggest that the default be that the option is checked.) Dan, Simon: which interface do you think is better? Note: This suggestions a third possible option: deleting the module files as well as the .toolbox directory. This is a bad idea because, to be useful, it should delete all the spec's modules, which is bad because (a) it's easy to forget that a spec imports a module that's used elsewhere and should be saved and (b) that option will almost always be used to delete an uncompleted spec, which is likely to be unparsable--so the Toolbox couldn't delete anything but the root module. 2. Add to the Open Spec menu the option Reopen Deleted Spec. It would produce an alphabetically sorted list of all deleted (but not expunged) specs for the user to choose from. Note that there are three reasons why that operation might fail: (a) the root module [or the .toolbox directory] no longer exists, (b) the user has created a new spec with the old name, or (c) the user has created a new spec with that root module. Of course, (a) exists when opening an existing spec. I suggest that (b) and (c) be made impossible by removing an old spec from the list if a new one is created with the same name or root file. I also suggest that when the user opens a new spec with the name or root file of an old one, he be warned and given the option of canceling. It is possible to implement feature 1 without feature 2, since the old spec can be reopened now with the Add New Spec option. Feature 2 is still useful because it might be easier to find an old spec this way than by hunting through the file system. However, we can start with just feature 1. I suggest an alternative solution consisting of two changes: 1.) Have a list of the n most recently opened specs. This could be placed at the bottom of the file menu, as in eclipse and many other programs, or could be a submenu as the Open Spec menu item currently is. 2.) Have a menu item for opening specs that brings up a dialog that looks like eclipse's dialog for opening a resource. This would be a searchable list of all specs. I now vote for Leslie's solution. I think for feature 1, the better interface is for Delete to pop up a message asking if the user wants to remove the .toolbox directory. However, I think that Delete is confusing. I think the menu item should day Remove Spec, and the popup should say "Delete models?". This makes it more clear what the operation is doing. |
Summary: | Feature needed for controlling disk space usage | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
TLC's checkpoint files can take up lots of space. The Toolbox should tell the user how much disk space his specs are using. We will need to discuss what the best interface is for doing this. Here are things that he should be able to see from the Toolbox: - For each spec, the size of the .toolbox directory. This should be a property of the spec, and it shouldn't be too hard for the user to go through all his specs in the Spec Explorer to see which ones are using lots of space. The size should also be displayed for the currently open spec, in some way that is discrete if the size is small and becomes more obvious if it's big. - For each spec, the space used be each model should be a property of that model. The space used by a model should be displayed on one of the model pages--again, discretely if it's small and loudly if it's big. There should also be a button to delete the model's checkpoint. (Is there anything else kept for the model that might be big enough to need deleting?) It would be useful if the user could see the space taken up by each model of a spec without opening each of them. (He is likely to want to find the guilty model when he sees that the spec is taking up a lot of space.) This could be done as a model property in the Spec Explorer, which provides a menu option for one that pops up an error box. |
Summary: | Minor bug in Spec Explorer: permits operations on models of unopened spec | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When a spec is open, the Spec Explorer allows the user to display the models only of the open spec. I presume that's a feature and not a bug. (It would make sense to show them for unopened specs too, with commands like Open or Clone the model disabled, but that's not worth the bother.) However, when I close the spec, I can still see that spec's models and their menu items are still active. I don't know what Open does; the console shows that the Toolbox thinks it is opening the spec and then the model, but there's no sign that it has. Clone and Delete actually perform the action (on the apparently closed spec), but then make the models invisible in the Spec Explorer. Obviously, the fix is just not to display the models of any spec in the Spec Explorer when there's no spec open. |
Summary: | Renaming a spec does not change model configuration file names | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 121 | ||
Attachments: | mylyn/context/zip |
Renaming a spec should change the configuration file names for models of the spec. Currently it does not, so renaming a spec and then attempting to open a model that existed before the renaming throws a null pointer exception and does not open the model. Fixed in HEAD Created attachment 71 [details]
mylyn/context/zip
|
Summary: | Trace Explorer getting wedged (plus minor bug) | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Load the following spec: ---------- MODULE Test2 ----------- EXTENDS Naturals, TLC VARIABLE x CONSTANT C Spec == (x=0) /\ [][x'=x+1]_x Inv == x < 5 ================================= Set C to 44, check Inv as an invariant, and run the spec. On the resulting error trace, add C as the expression to print, and hit Explore. Everything is fine, and it prints 44. Go to the Constants section, change the value of C to 22 and hit Finish. BUT DO NOT SAVE THE MODEL. Go back to the Results page, open the Error Trace window, and hit Explore. It runs fine, except it's still printing 44 rather than 22. This indicates a minor bug: it should save the model before running TLC again. Now the major bug. Hit Explore again. Nothing happens. The Trace Explorer is wedged. Closing and opening it again doesn't help. The only way to unwedge it is to run the spec again, recreating the error trace from scratch. When Explore is selected, the Toolbox seems to be writing empty TE.tla and TE.tlc files. (Perhaps fixing the minor bug will prevent the major one. The trace explorer is not running because MC.out is empty. This occurs because the delegate for running the trace explorer attempts to read the trace from MC.out, but MC.out is cleared when the model is validated, but not run. I think that validation should not clear MC.out (this is bug 46). It doesn't seem wise to have the trace explorer rely on MC.out for the trace. It should write the trace to another file when the user clicks explore. Running the model checker on a model now creates a new file called MC_TE.out. The trace explorer delegate reads the trace from this file. It is not edited on validation of the model, only when TLC is run for model checking (not for trace exploration). When the trace explorer is run on an unsaved model, the model is now saved without validating. We don't want running the trace explorer to clear MC.out, which is one thing that validation does. MC_TE.out is created by attaching a sink to the process output sink for TLC runs. The class is TraceExplorerTraceSourceOutputSink. |
Summary: | Trace Explorer's TE.tla file has entries in wrong order | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
The Trace Explorer reports an error if an expression to be printed contains a model value or a symbol defined in the Advanced model page's Additional Definitions section. The problem seems to be that the expressions to be printed appear too early in the TE.tla file. They should be the last things before the definition of the initial predicate and next-state relation. Created attachment 15 [details]
mylyn/context/zip
|
Summary: | Hiding of variables in Trace Explorer | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
The user should be able to specify which variables are hidden (not displayed) in the Trace Explorer. (This should apply only to the view obtained by hitting Explore, not to the original trace obtained by hitting Restore.) We need to discuss what the interface should be for this before implementing the feature. Note: We were originally discussing adding the feature of changing the order in which variables are shown. That's unnecessary. The user can hide all the variables and then enter them in any order as expressions to be printed. I would add a filter (JFace Viwers support filters), which can be activated using a view-action. |
Summary: | Build custom about dialog | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | bugzilla.tlaplus.net, simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
We should build our own About dialog. Some of the aspects of the eclipse provided about dialog should not be on there, such as Installation Details. In general, the About dialog is customizable. I read somewhere about it. I suppose it is set up using the plugin_customization.ini. |
Summary: | Change order of trace explorer variables in trace viewer | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
The trace explorer variables should appear before other variables in the order in which the user entered the expressions. Dan apparently fixed this months ago. |
Summary: | Constant expression evaluation shows up in User Output on linux | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Linux | ||
Target Version: | --- |
If the user enters expr into the evaluating constant expressions field, then the value val of expr correctly shows up in the value field, but <<!@$!@$!@$, val>> shows up in User Output. This occurs on Linux ubuntu. This also occurs on mac. |
Summary: | Clicking on module location jumps to PDF viewer sometimes | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
If I have the PDF viewer tab selected in the Module Editor and I double click on a location in the coverage field, The Toolbox selects the right region in the .tla file, but it jumps to the PDF viewer rather than the .tla file viewer. Created attachment 16 [details]
mylyn/context/zip
|
Summary: | Problem with printing of invariant when it is violated. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When the toolbox reports that TLC found an invariant violated, if the invariant is multi-line, it should print the message as Invariant <newline> the text of the invariant <newline> violated. If the invariant is a single line (contains no newline characters), it should be printed as it now is: Invariant text-of-invariant violated unless the text of the invariant is too long, in which case it should be printed as Invariant text-of-invariant<newline> violated. How long is "too long" should be determined by experiment to ensure that the word "violated" is likely to be visible in the window. Note: trailing spaces and newline characters should be removed from the invariant before trying to print it. |
Summary: | Set defaults for PlusCal algorithms | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
The following default settings should be made when creating new model. (The user can override them if he wants.) 1. If a spec contains the constant defaultInitValue, then it should be set to a model value. 2. If a spec contains a defined operator Spec whose level is temporal, then it should be made the temporal spec and that option chosen. Otherwise, if it contains a defined operator Init whose level is state and a defined operator Next whose level is action, then they should be made the Init/Next spec. These defaults (especially the first) will be most useful to specs that come from PlusCal algorithms. We could limit their application to files that have PlusCal algorithms. However, I suggest that we don't because the algorithm could be in an EXTENDed module. |
Summary: | Toolbox confused about directories. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | ASSIGNED --- | ||
Severity: | normal | CC: | bugzilla.tlaplus.net, simon |
Priority: | P2 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
I opened a spec and then did a SaveAs to save the root module under a different name in the same directory. I then tried to open the root directory module. It was not listed among the choices presented in the OpenModule menu. When I clicked on AddModule, the browser came up showing the contents of the .toolbox directory. When I selected the parent directory (that is, the spec's directory) and selected the root module from it, I go an error window saying The provided module Euclid.tla is not located in the same directory as the root file. Please select the module in \Euclid Of course, the module I selected, file Euclid.tla in directory ...\Euclid, was the root file. When I closed the spec and tried to reopen it, I got various errors saying the root file didn't exist and something indicating that it was looking in the .toolbox directory. I just deleted the spec and tried opening a new spec. When I clicked on Browse, nothing happened. (Nothing appeared on the Eclipse console.) I had to close the Toolbox and restart it to be able to open a new spec. |
Summary: | Save dirty editor prior to execution - PlusCal preference and Save on Run TLC option | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
A user was confused when he edited his PlusCal file and hit translate without saving, and found that the spec he was running the model checker on hadn't changed. This suggests that there should be a Save on Translate preference option that is selected by default. We should probably also add a Translate on Save preference. And this also raises the question of what should happen if the user tries to run the model checker (or validate a model) with an unsaved spec. I suggest that the default behavior should be to raise a window asking the user if he wants to save it. Note that this should be the case when there is any unsaved module that was part of the spec the last time the spec was parsed. LL comment: A popup/dialog should ask the user if he/she wants to save the dirty editor prior to running the model checker and/or PlusCal translator. -> Generally a dirty editor should be saved before running any command on it (e.g. produce pdf, ....) |
Summary: | Make it easier to clone a model | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Now, to clone a model you have to go to the spec explorer--which means that no user will discover it by himself. And it's also inconvenient. There should be an easy way to create a clone of the model. Perhaps a Clone Model command on TLC Model Checker menu. |
Summary: | Inconvenience in using TLA2TeX | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
For some reason, Acrobat reader shows the pretty-printed version at an inconveniently large magnification. I can reduce the size, but the next time I run the pretty-printer the pdf is shown at the same large magnification. It would be nice if Acrobat could be called so it uses the magnification it had the last time--or at least the current magnification if it is already opened on the file. Alternatively (and perhaps in addition) it would be good to add a preference that specifies the magnification used when Acrobat opens the pdf file. (This would have to be specified in a sufficiently generic way--e.g., as command-line arguments--so it could be used if the user has a different program for displaying pdf files.) |
Summary: | TLC not reporting anything useful on a stack overflow | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA Tools | Assignee: | Leslie Lamport <lamport> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When computing the invariant on the initial state throws a stack overflow exception (because of an infinite recursion), TLC just reports %1% While working on the initial state: %2% I'm pretty sure it used to report the stack overflow, so this bug was probably added when the error reporting was rewritten. However, the same useless error report is printed when TLC is run from a shell. I fixed this and a couple of similar cases of useless error messages. They were all caused by a code that caught an except e and then called MP.printError with e.getMessage() as an argument. However, for StackOverFlow, NullPointer, and who knows what other exceptions, e.getMessage() equals null. (How appropriate for a NullPointer exception.) This produced something like \%1\% as the message. (That should be percent 1 percent, except that the stupid editor deletes percents, so I just typed backslash-percents in the hope that it will do the right thing.) I went through and changed a bunch of e.getMessage() instances to produce e.getString() if e.getMessage() is null. I may have missed some that can cause useless error messages. If we encounter one, we can probably find it by running TLC in debug mode with breakpoints on (handled and unhandled) StackOverFlow and NullPointer exceptions. |
Summary: | Toolbox does not report violated invariant | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | simon |
Priority: | P2 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | Modules and model |
Created attachment 18 [details]
Modules and model
Running the Toolbox on the model for CastroLiskovBug produces an MC file that
reports an invariant failure, but the Toolbox reports that it has finished
without reporting an error (the statistics show one state left on the queue).
Can´t reproduce it. This may have been solved by fixing the TLC -tool mode bug that caused the output that TLC printed early in its execution not to be seen by the Toolbox. |
Summary: | Allow examining a locked TLC model. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When a model is locked, the user should still be able to open sections to examine them. While a model is running, I'd like to see the model--for example, how many workers it's using, what the constraint is, etc. It's a nuisance to start TLC and wonder what it's actually checking. I just realized that I can do this by cloning the model. But it would be better to make the model fully examinable, just not modifiable. If that's hard, another possibility is to allow the user to unlock the running model and then relock it after opening the necessary sections. This is dangerous, but the user would have to be pretty stupid to shoot himself in the foot. The easiest thing to do is to expand every section before disabling it when the model is locked. This could be annoying for the user. The better option and probably only slightly more difficult to implement is to disable the widgets on each page that are actually modifiable rather than entire sections. This means, for example, disabling the text box and buttons in the constants section rather than the entire section so that the user can still change the expansion state of the section but not change anything else. |
Summary: | Browse button on new spec menu not working | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When no spec is open and I select Open Spec/Add New Spec, the Browse button on the popup menu does nothing. However, if I do the same thing when a spec is open, the Browse button works fine. I can't reproduce this. Is there anything worth noting that gets printed to the console when this happens? This is either sporadic or else it occurs on Vista and not on XP. I'm afraid I don't remember if I've observed it on both systems. Nothing is printed on the console. |
Summary: | Model Editor unusable when checkpoints folder is large | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
When the checkpoints folder for a model contains a large number of files, the model editor becomes almost unusable. This occurs because the of a call to refreshLocal() in the method ModelHelper.getCheckpoints(). It refreshes the checkpoints folder, which in some case can mean refreshing the 1000s of files inside. This is slow. Based on the comments, this call to refreshLocal is sometimes necessary because the toolbox doesn't always recognize the checkpoint folder, but currently it occurs on every validation of the main model page, which is probably unnecessary. This call needs to be made more selectively. The second argument of ModelHelper.getCheckpoints(ILaunchConfiguration,boolean) is a flag indicating if the refreshLocal() should be called for the model folder. This flag is only set to true after a TLC job completes. All other calls to the getCheckpoints() method set the flag to false. This means that refreshing will not occur on every validation of the main model page. It will only occur when necessary, after TLC completes and may have created new checkpoints. Created attachment 20 [details]
mylyn/context/zip
|
Summary: | Non-automatic parsing locks UI | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED DUPLICATE | ||
Severity: | enhancement | CC: | bugzilla.tlaplus.net, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Launching parsing by selecting the Parse Module/Spec menu item locks the UI while auto-parse on save runs in a separate thread. I think that parsing should always be run asynchronously. |
Summary: | Add new TLC parameter Maximum Fingerprint Memory Size | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | bugzilla.tlaplus.net, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Bug Depends on: | 243 | ||
Bug Blocks: |
Yuan has added a new run-time parameter to TLC: the number of megabytes of memory to be allocated to storing the fingerprints of found states. This is specified with a new switch -fpmem ,as in -fpmem 100 The default value is 1/4 the maximum memory size that the JVW will assign to the program. (This amount apparently grows with the Maximum JVM Heap Size parameter.) This new parameter should appear both in the "How to Run" section of the Model Overview page and in the TLC model checker preferences page. The user chooses the default by leaving the text box blank. Only if the user specifies a values should the -fpmem argument be given to TLC. The parameter should be labeled Maximum FingerPrint Memory size in MB. The Toolbox should allow the new parameter to be set only to a value less than the value of Maximum JVM Heap Size. (And conversely, the JVM heap size should not be settable to less than or equal to the new parameter.) |
Summary: | trace explorer doesn't work on trace of length 1 | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
You can create such an error trace by checking deadlock in a spec that deadlocks in the initial state. Why would I want to explore such an error trace? Because it's a convenient way to evaluate expressions on a particular state. (Perhaps that indicates a missing feature.) This now appears to work. I presume Dan fixed it without marking the bug report as resolved. |
Summary: | Bad behavior of model-editor page with long Invariants and Properties. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
The display of Invariants and Properties on the Model Overview Page does weird and unsatisfying things when the one-line displayed entries get too wide. In particular, the width of their column grows to accommodate the widest line, and cannot be shrunk even when the wide lines are eliminated--except by closing and reopening the model. As I recall, there are serious problems trying to fix this with the Eclipse primitives. So, I suggest the following change to ameliorate the problem: On the displayed line, replace each sequence of spaces with a single space. I suggest preventing the widgets from expanding and adding a scroll bar. |
Summary: | Toolbox crashed by out-of-memory exception | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | lamport, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | the files |
I was running a TLC model that, according to the log entry pasted below, ran TLC out of memory. (Sorry for doing it this way, but I couldn't find the switch in the 747 cockpit that allows me to attach something to the bug report--though I'm sure I've stumbled upon it before.) It would be nice if this could be prevented from crashing the Toolbox, but would simply cause it to report a TLC error. Of course, if TLC running out of memory causes the Toolbox to run out of memory as well, this is likely to be impossible. But I don't see why this should happen. (Of course, I have a lot of trouble seeing why all the ways computer programs fail should happen.) eclipse.buildId=unknown java.version=1.6.0_11 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework arguments: -product org.lamport.tla.toolbox.product.standalone.product Command-line arguments: -product org.lamport.tla.toolbox.product.standalone.product -data C:\users\lamport\tla\newtools\tla2-inria/../runtime-standalone.product -dev file:C:/users/lamport/tla/newtools/tla2-inria/.metadata/.plugins/org.eclipse.pde.core/standalone.product/dev.properties -os win32 -ws win32 -arch x86 !ENTRY org.eclipse.osgi 2 0 2010-04-22 09:21:38.625 !MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists: !SUBENTRY 1 org.eclipse.osgi 2 0 2010-04-22 09:21:38.625 !MESSAGE Bundle org.eclipse.jdt.launching.macosx_3.2.0.v20090527 [337] was not resolved. !SUBENTRY 2 org.eclipse.jdt.launching.macosx 2 0 2010-04-22 09:21:38.625 !MESSAGE Platform filter did not match: (osgi.os=macosx) !ENTRY org.eclipse.core.resources 2 10035 2010-04-22 09:21:39.750 !MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. !ENTRY org.eclipse.ui 2 0 2010-04-22 09:21:40.562 !MESSAGE Warnings while parsing the commands from the 'org.eclipse.ui.commands' and 'org.eclipse.ui.actionDefinitions' extension points. !SUBENTRY 1 org.eclipse.ui 2 0 2010-04-22 09:21:40.562 !MESSAGE Commands should really have a category: plug-in='org.lamport.tla.toolbox.tool.prover.ui', id='org.lamport.tla.toolbox.tool.prover.ui.checkStep.delegate', categoryId='org.eclipse.debug.ui.category.run' !ENTRY org.eclipse.ui 4 4 2010-04-22 09:23:52.814 !MESSAGE Plugin org.lamport.tla.toolbox, extension org.eclipse.ui.perspectiveExtensions, id toolbox.view.ToolboxWelcomeView: Attribute 'relative' not defined. This attribute is required when relationship="left". !ENTRY org.eclipse.ui 4 4 2010-04-22 09:23:52.814 !MESSAGE Unable to process element: view in perspective extension: null !ENTRY org.eclipse.ui 4 4 2010-04-22 09:24:31.268 !MESSAGE Plugin org.lamport.tla.toolbox, extension org.eclipse.ui.perspectiveExtensions, id toolbox.view.ToolboxWelcomeView: Attribute 'relative' not defined. This attribute is required when relationship="left". !ENTRY org.eclipse.ui 4 4 2010-04-22 09:24:31.268 !MESSAGE Unable to process element: view in perspective extension: null !ENTRY org.eclipse.ui 4 4 2010-04-22 12:12:57.928 !MESSAGE Plugin org.lamport.tla.toolbox, extension org.eclipse.ui.perspectiveExtensions, id toolbox.view.ToolboxWelcomeView: Attribute 'relative' not defined. This attribute is required when relationship="left". !ENTRY org.eclipse.ui 4 4 2010-04-22 12:12:58.100 !MESSAGE Unable to process element: view in perspective extension: null !ENTRY org.eclipse.ui 4 4 2010-04-22 12:13:51.304 !MESSAGE Plugin org.lamport.tla.toolbox, extension org.eclipse.ui.perspectiveExtensions, id toolbox.view.ToolboxWelcomeView: Attribute 'relative' not defined. This attribute is required when relationship="left". !ENTRY org.eclipse.ui 4 4 2010-04-22 12:13:51.319 !MESSAGE Unable to process element: view in perspective extension: null !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2010-04-23 23:14:47.975 !MESSAGE Error writing the TLC process output file for ByzPaxosConsensus___TinyModel.launch !STACK 1 org.eclipse.core.runtime.CoreException: Could not write file: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC.out. at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) at org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:386) at org.eclipse.core.internal.localstore.FileSystemResourceManager.write(FileSystemResourceManager.java:956) at org.eclipse.core.internal.resources.File.internalSetContents(File.java:320) at org.eclipse.core.internal.resources.File.appendContents(File.java:53) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink$1.run(FileProcessOutputSink.java:47) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink.appendText(FileProcessOutputSink.java:43) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.FileNotFoundException: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC.out (The process cannot access the file because it is being used by another process) at java.io.FileOutputStream.openAppend(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:177) at org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:377) ... 15 more !SUBENTRY 1 org.eclipse.core.filesystem 4 272 2010-04-23 23:14:49.928 !MESSAGE Could not write file: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC.out. !STACK 0 java.io.FileNotFoundException: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC.out (The process cannot access the file because it is being used by another process) at java.io.FileOutputStream.openAppend(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:177) at org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:377) at org.eclipse.core.internal.localstore.FileSystemResourceManager.write(FileSystemResourceManager.java:956) at org.eclipse.core.internal.resources.File.internalSetContents(File.java:320) at org.eclipse.core.internal.resources.File.appendContents(File.java:53) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink$1.run(FileProcessOutputSink.java:47) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink.appendText(FileProcessOutputSink.java:43) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2010-04-23 23:22:10.093 !MESSAGE Error writing the TLC process output file for ByzPaxosConsensus___TinyModel.launch !STACK 1 org.eclipse.core.runtime.CoreException: Could not write file: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC_TE.out. at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) at org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:386) at org.eclipse.core.internal.localstore.FileSystemResourceManager.write(FileSystemResourceManager.java:956) at org.eclipse.core.internal.resources.File.internalSetContents(File.java:320) at org.eclipse.core.internal.resources.File.appendContents(File.java:53) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink$1.run(FileProcessOutputSink.java:47) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink.appendText(FileProcessOutputSink.java:43) at org.lamport.tla.toolbox.tool.tlc.output.internal.TraceExplorerTraceSourceOutputSink.appendText(TraceExplorerTraceSourceOutputSink.java:53) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.FileNotFoundException: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC_TE.out (The process cannot access the file because it is being used by another process) at java.io.FileOutputStream.openAppend(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:177) at org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:377) ... 16 more !SUBENTRY 1 org.eclipse.core.filesystem 4 272 2010-04-23 23:22:10.093 !MESSAGE Could not write file: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC_TE.out. !STACK 0 java.io.FileNotFoundException: C:\users\lamport\papers\paxos\simple\byztla\ByzPaxosConsensus.toolbox\TinyModel\MC_TE.out (The process cannot access the file because it is being used by another process) at java.io.FileOutputStream.openAppend(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:177) at org.eclipse.core.internal.filesystem.local.LocalFile.openOutputStream(LocalFile.java:377) at org.eclipse.core.internal.localstore.FileSystemResourceManager.write(FileSystemResourceManager.java:956) at org.eclipse.core.internal.resources.File.internalSetContents(File.java:320) at org.eclipse.core.internal.resources.File.appendContents(File.java:53) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink$1.run(FileProcessOutputSink.java:47) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800) at org.lamport.tla.toolbox.tool.tlc.output.internal.FileProcessOutputSink.appendText(FileProcessOutputSink.java:43) at org.lamport.tla.toolbox.tool.tlc.output.internal.TraceExplorerTraceSourceOutputSink.appendText(TraceExplorerTraceSourceOutputSink.java:53) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.eclipse.ui 4 0 2010-04-24 11:32:33.287 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515) at java.lang.StringBuffer.append(StringBuffer.java:306) at org.eclipse.ui.editors.text.StorageDocumentProvider.setDocumentContent(StorageDocumentProvider.java:144) at org.eclipse.ui.editors.text.FileDocumentProvider.setDocumentContent(FileDocumentProvider.java:424) at org.eclipse.ui.editors.text.FileDocumentProvider.handleElementContentChanged(FileDocumentProvider.java:830) at org.eclipse.ui.editors.text.FileDocumentProvider$2.execute(FileDocumentProvider.java:274) at org.eclipse.ui.editors.text.FileDocumentProvider$SafeChange.run(FileDocumentProvider.java:163) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) !ENTRY org.eclipse.ui 4 0 2010-04-24 11:32:38.444 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515) at java.lang.StringBuffer.append(StringBuffer.java:306) at org.eclipse.ui.editors.text.StorageDocumentProvider.setDocumentContent(StorageDocumentProvider.java:144) at org.eclipse.ui.editors.text.FileDocumentProvider.setDocumentContent(FileDocumentProvider.java:424) at org.eclipse.ui.editors.text.FileDocumentProvider.handleElementContentChanged(FileDocumentProvider.java:830) at org.eclipse.ui.editors.text.FileDocumentProvider$2.execute(FileDocumentProvider.java:274) at org.eclipse.ui.editors.text.FileDocumentProvider$SafeChange.run(FileDocumentProvider.java:163) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) !ENTRY org.eclipse.ui 4 0 2010-04-24 11:32:43.319 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515) at java.lang.StringBuffer.append(StringBuffer.java:306) at org.eclipse.ui.editors.text.StorageDocumentProvider.setDocumentContent(StorageDocumentProvider.java:144) at org.eclipse.ui.editors.text.FileDocumentProvider.setDocumentContent(FileDocumentProvider.java:424) at org.eclipse.ui.editors.text.FileDocumentProvider.handleElementContentChanged(FileDocumentProvider.java:830) at org.eclipse.ui.editors.text.FileDocumentProvider$2.execute(FileDocumentProvider.java:274) at org.eclipse.ui.editors.text.FileDocumentProvider$SafeChange.run(FileDocumentProvider.java:163) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) !ENTRY org.eclipse.ui 4 0 2010-04-24 11:36:25.073 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515) at java.lang.StringBuffer.append(StringBuffer.java:306) at org.eclipse.ui.editors.text.StorageDocumentProvider.setDocumentContent(StorageDocumentProvider.java:144) at org.eclipse.ui.editors.text.FileDocumentProvider.setDocumentContent(FileDocumentProvider.java:424) at org.eclipse.ui.editors.text.FileDocumentProvider.handleElementContentChanged(FileDocumentProvider.java:830) at org.eclipse.ui.editors.text.FileDocumentProvider$2.execute(FileDocumentProvider.java:274) at org.eclipse.ui.editors.text.FileDocumentProvider$SafeChange.run(FileDocumentProvider.java:163) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) !ENTRY org.eclipse.ui 4 0 2010-04-24 11:36:30.011 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:36:34.026 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:36:38.105 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:36:42.120 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:40:27.937 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:40:32.047 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:40:36.078 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:40:40.109 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:40:44.172 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:43:47.566 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:43:51.613 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:43:55.613 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:44:30.285 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:46:51.273 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space !ENTRY org.eclipse.ui 4 0 2010-04-24 11:46:55.351 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.OutOfMemoryError: Java heap space) at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Caused by: java.lang.OutOfMemoryError: Java heap space The first few exceptions are FileNotFoundExceptions for the two output files MC_TE.out and MC.out. The message claims that another process is using these files. I tried running TLC on the same model from two different instances of the toolbox, but this did not produce any Java exceptions. I don't know what other process would be accessing those files. Those file not found exceptions don't seem to be relevant, since the toolbox did start the model and TLC ran for about two days before the out-of-memory exception killed it. I'm probably missing something, but what makes you think that TLC ran out of memory? I see that the Toolbox ran out of memory. Created attachment 19 [details]
the files
I think I finally figured out how to attach this.
TLC was not running, so I assumed that it had crashed. Would the Toolbox running out of memory stop TLC? Anyway, the TLC run started at 14:26 on 22 April. The last progress report was at 11:46:20 on 24 April, which was also the time of the last checkpoint. I have no idea why the Toolbox should have been writing ByzPaxosConsensus___TinyModel.launch on 23 April. Anyway, I finally saw where to add attachments, so I attached the files. (I could swear that section was not there when I created the report.) There are generally two independent happenings. I think these are dependent now due to a bug in toolbox. These are things that I know of: - A stack overflow in TLC produces a stack overflow of Toolbox - An out-of-memory in TLC should not crash the toolbox. At least that was one of the design issues. I don't know how it behaves now, but this is easy to simulate. - Toolbox is writing an incomming stream to a file. I assume it will fail, after the file size exceeds 2GB. This could be the error of FileNotFound. Windows is not very smart reporting errors. If the file can not be accessed it reports that the reason is that it is hold by another process. - The out-of-memory of Toolbox seems to be produced by the Toolbox itself. This can be the similar problem as the previous. Trying to display a content of the file that is 2GB big can be problematic. We spoke about a kind of sliding-window mechanism for boths: file and display with Leslie, but I actually never implemented it. There is no file larger than 5MB in the TinyModel directory, where I presume it should be. In fact, the directory containing all the related specs and their models is only about 35MB. I'd be curious to know why a stack overflow in TLC produces a stack overflow in a separate process. However, that's very unlikely to be the cause of the problem. I've never seen a TLC stack overflow that was not produced by a problem with the spec (and properly caught by TLC). I just restarted the model from the checkpoint that was created just before the Toolbox crashed; it has been happily running for about 5 minutes. However, there does seem to be a memory problem with the Toolbox. I just noticed that, right before I closed it, the Toolbox was using over 700MB of memory. I restarted the Toolbox this morning and have not been doing much of anything with it. So, there must be a memory leak in the code. I found it interesting, that a 5 MB file is being produced in 2 days of running TLC. As far as I know TLC writes log. In two days it should have produced tonns of logs.. So again, my comments to your bug descriptions are: -> I was running a TLC model that, according to the log entry pasted below, ran TLC out of memory. This is wrong. The log says that there was a out-of-memory in a toolbox, not in TLA. -> Of course, if TLC running out of memory causes the Toolbox to run out of memory as well, this is likely to be impossible. This is not the case. Simon and I talked about the toolbox's parsing and storing of TLC's output as one source of memory leak. The following steps are taken to parse TLC's output: 1.) Create an empty document (an eclipse construct that provides support for editing and partitioning text, among other things). 2.) When new output from TLC arrives, append it to this document. 3.) Using the eclipse document partitioning framework, this is partitioned into regions where each region is either a start message tag, an end message tag, or a character that is not in a start or end message tag. 4.) The parser is notified each time the partitioning of the document changes. It uses the positions of the new partitions to create the appropriate data types to store for any interested listeners. I think that at least one problem is that the document containing all of TLC's output is stored as long as TLC is running. After TLC has been running for 2 weeks, the document created in step 1 will still contain @!@!@STARTMSG 2220:0 @!@!@ Starting SANY... @!@!@ENDMSG 2220 @!@!@ and the associated partitions and other data types used by eclipse to maintain a document, even though the information contained in this part of the message has been stored in another data type in step 4. This redundant storage is unnecessary, and takes up a lot of memory. Once the partitioning for a portion of the document has been used to generate the appropriate data type in step 4, these partitions, along with the portion of the document to which they correspond, are no longer needed. Simon and I also talked about the caching of the data type created in step 4. All instances of this data type created by any run of TLC since the Toolbox was last started are held in memory. This doesn't seem to be a large percentage of the toolbox heap size, so it may not be worth worrying about right now. To test this, I ran TLC for about 12 hours, and then took a heap dump. The total heap size was about 250MB. Objects that I'm pretty sure relate to documents and partitioning of TLC's output seem to take up at least 100MB, while objects created in step 4 seem to take up less than 1 MB. The formatting of my last comment is not what I wanted. Try selecting "View Unformatted Text" in the menu to the right of the comment title to see what I actually intended. Compounding the problem is the fact that instances of BroadcastStreamListener (which broadcast TLC's output stream to interested sinks) are never removed as listeners to TLC's output stream. This means that all sinks, all parsers, and thus all documents containing output from any run of TLC since the toolbox was last started are kept in memory. Further data: just running the model overnight, the Toolbox's memory use grew from 200MB to close to 700MB. A quick estimate indicates that during that time, the Toolbox received 1000 messages, each about 100 bytes long, for a total of about 100KB. If that's the cause of the memory growth, that means the Toolbox is using 5KB of storage for each byte of input it receives. I suppose that's possible with modern software. In any case, this needs to be fixed. There's another source of memory leak. FileDocumentProviders are used throughout the toolbox code. They are connected to file editor input to provide convenient access to the file contents. Connecting them to a file editor input also causes them to register as a resource change listener in order to synchronize with changes to the file. When no longer needed, the disconnect() method should be called so that the file document providers remove themselves as resource change listeners. However, this is never done in the toolbox, so references remain to these providers so that they are never removed from the toolbox's heap. After running TLC for two days, FileDocumentProviders were responsible for approximately 40% of the heap space. Another 40% seems to be occupied by objects related to what I explained in comment 11. I've fixed the two memory leaks that I noticed, so this is at least partially fixed. |
Summary: | Renumber proof command does not work for non theorem nodes | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Dan Ricketts <daniel.bmore.ricketts> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
The renumber proof command does not work if the proof contains steps that cannot have proofs (use/hide, instance, def). SANY does not seem to provide a way to get the location of the step number for these nodes, so this might motivate a change to SANY. |
Summary: | Goto Declaration not working with subexpression names | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Leslie Lamport <lamport> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
The Goto Declaration command does nothing with a subexpression name like Foo!2!(x). The best one can do is to go to the definition of Foo if the user is pointing at the "Foo". This will be difficult to fix and will require modifying how TLAHyperlinkDector.detectHyperlinks parses the region of the module being pointed at to obtain the operator name to look up. Note that in Foo!Bar!<<!(x), the symbol to find is Foo!Bar, the "!<<!(x)" being a subexpression of that symbol's definition. Since very few people will notice that this case isn't handled, fixing it has low priority. All known bugs in Goto Declaration, hyperlinking, and Show Uses deemed worth fixing have been fixed. The only known bug is that the Toolbox may not find the symbol if you point at a space in the symbol name, as in "Foo ! Bar". One perhaps surprising feature is that it will go to the definition or declaration of a symbol if that symbol is not serving as the symbol--in particular, if it appears in a comment or at the "<" or ">" in something like "<3>". (But it works correctly for "<3>1".) |
Summary: | Toolbox will not raise TLAPM console if TLC console has been raised. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Open a spec and run a TLC model on it, producing output on the TLC Console. Then run the prover. Clicking on the TLAPM Console raises the TLC Console. There seems to be no way to get rid of it except to close the Toolbox. Note: There should be a TLAPS Component as a bug attribute, but I don't know how to add one. There is a way to open the TLAPS console when the TLC console is already open. One of the buttons at the top of the console allows you to switch between consoles. It has some sort of drop down menu with the console options. The TLAPS menu item to open the console should probably open the TLAPS console always, but I considered it a low priority because I didn't expect users to ever use the TLAPS console. Support to separate consoles would require support in Eclipse. Unless this is going to be implemented there, this bug is unlikely to be addressed. TODO open bug a eclipse.org. Trivial workaround by selecting the console instance on the console selector icon. |
Summary: | Goto Declaration (F3), Show Declaration (F5), and Show Uses (F6) don't work on subexpression names | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Leslie Lamport <lamport> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Goto Declaration (F3) and Show Declaration (F5) don't work if the cursor is on a symbol in a PICK or CASE statement of a proof. They need to be tested to see if there are other places as well where they don't work. This appears to have been a misdiagnosis. The problem seems to be caused when selecting a name that occurs in a subexpression name, as in Foo(a)!1!(c). I fixed Show Uses so that, when searching for uses of a defined symbol Foo, it marks all names of subexpressions of Foo. For example, it will mark the Foo in Foo!1!(a+b). Goto Declaration and Show Uses still don't work if the cursor is at a symbol that is part of the name of a subexpression of the definitiion--for example, if the cursor is at the Foo in Foo!1!(a+b). It doesn't seem worth fixing now. Instead, it should be fixed as part of a re-implementation of EditorUtil.getTokenAt so it works purely on what's in the buffer without using the parse tree. Note: Goto Declaration, etc. don't work on a symbol formed with a parameterized instantiation--e.g., I(exp)!Foo. All known bugs in Goto Declaration, hyperlinking, and Show Uses deemed worth fixing have been fixed. The only known bug is that the Toolbox may not find the symbol if you point at a space in the symbol name, as in "Foo ! Bar". One perhaps surprising feature is that it will go to the definition or declaration of a symbol if that symbol is not serving as the symbol--in particular, if it appears in a comment or at the "<" or ">" in something like "<3>". (But it works correctly for "<3>1".) |
Summary: | Show Uses (F6) not working. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
I don't know what happened, but it's perhaps not a coincidence that this appeared after I partiallly fixed bug 88. Bug fixed. The Show Uses command still has the following minor bug. When Foo is defined in module M, which is instantiated by I == INSTANCE M, then when showing uses of I!Foo, if the use appears in a subexpression name like I!Foo!2, then just the "I" rather than the "I!Foo" is marked. This is pretty harmless and is probably not worth fixing. |
Summary: | Performance problem reading any non-trivial amount of TLC output | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Mac OS | ||
Target Version: | --- | ||
Attachments: |
Test_Copy.toolbox.zip
spec |
It takes the Toolbox much too long to parse and display TLC output when it gets long. The only real examples I know of in which this is a problem are long uniprocess (sequential) PlusCal algorithms. An example that illustrates the problem is in the module FindOp.tla appended to the TokenSpec class. There are two kinds of output involved: - Error traces. It can take effectively forever for TLC to process a long error trace. Putting an "assert FALSE" statement at the end of the algorithm in FindOp.tla produces an error traces with about 1400 states. I have no idea how long it would take the Toolbox to process it, but I would guess it would be at least on the order of hours. - Progress information. I believe that it takes TLC about 20 seconds to process each progress report of FindOp.tla. (TLC completes in about a second, so the problem is only in the final report.) I believe that each progress report is about 1000 lines, where each line of output is a separate message. Experimentation suggests that the majority of time taken processing the error trace is in displaying it. However, a significant fraction (perhaps 1/3) is spent parsing the TLC output. There seems to be no good reason for that--especially since the entire trace is just a single TLC message. The parsing of TLC output needs to be completely rewritten so it is fast. It's likely that displaying the trace cannot be made fast enough, in which case the user can be warned that the trace is long and given the option of displaying just a part of it. When parsing the performance information is fast, we can figure out if displaying it is slow enough to require that something be done about it. I just discovered a much more serious example of what appears to be the same problem. If you run in simulation mode a simple program with a Print statement that produces output, the Toolbox seems to be swamped by the output and displays no user output on the Results page. Fortunately, aborting the run stops everything, so the user doesn't have to wait for however many hours it takes the Toolbox to parse the output. Unfortunately, that gives the user no indication that any output was produced. I/O should be slow enough that the Toolbox should be able to read a stream of input and display it on the screen without falling behind. It should also take the Toolbox just nanoseconds per line to discover that it's not a message and should therefore go to the user output window. So, fixing the Toolbox's handling of TLC output should fix this problem. I just discovered that when you run TLC in model-checking mode and the Toolbox gets behind in printing user output, it doesn't print the remaining output when TLC stops normally. (It probably also doesn't if TLC stops because of an error.) Created attachment 37 [details]
Test_Copy.toolbox.zip
To run it with the Toolbox, unzip the Test_Copy.toolbox directory, put
it in the same directory as Test.tla, and open a spec named Test_Copy
with root file Test.tla. The models N=12, N=18, etc. are the models
that display the behavior with different values of the parameter N,
which is the number of states in the error trace. (Ignore the other
models.)
L.
Created attachment 38 [details]
spec
|
Summary: | Sany error not being reported by the toolbox. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
The following module produces a SANY error that is not reported by the Toolbox. ---- MODULE Test -------- Foo == 1 THEOREM TRUE <1> QED BY DEF Foo.x' ================ Fixed by change to ModuleParserLauncher.findLineAndColumn. |
Summary: | Launch Prover command does not check if module has been saved. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
As it says, the Launch Prover command (Ctl+G Ctl+P) does not check if the module has been saved. It should. Fixed by copying some code from the other commands. |
Summary: | Characters produced by alt + number key cannot be entered from keyboard | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Vidar <vidar_slatten> |
Component: | TLA+ Editor | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 32-bit | ||
OS: | Mac OS | ||
Target Version: | --- |
I cannot type |, [ or ] into the editor when on Mac. It works fine on Windows. Seems the problem has to do with any character that is produced by holding down the alt key then pressing a number key. Pressing shift + alt + number key works, though. I have a Norwegian keyboard, in case that has something to do with it. I have tried changing the input source to US keyboard, but the editor still does not register characters typed by holding alt + number key. I am able to copy paste these characters from existing specifications or other programs, so I can work around it. Versions: OS: Snow Leopard Java: 1.6 64-bit TLA+ toolbox: 1.2.1 The alt+number keys are currently bound to commands that do nothing. The commands may eventually do something, but probably not for a while. To remove the bindings, go to File/Preferences/Keys and type Prefix into where it says "type filter text". This will show you all those bindings, which you can then remove with the Unbind Command button. In the next release, those commands will be rebound to shift+alt+ctl+number. (I prefer to do this rather than completely removing the commands because it will make it a little easier if we decide to make them do something.) I hope that no system uses these key combinations. |
Summary: | Toolbox can't deal with long prover console output. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
On a long prover job, the Toolbox slows to a crawl and produces errors. (It's hard to read the "problem occurred" window, since the Toolbox can't paint its windows, but it seems to be trying to report a Java heap error.) It appears to be due to inefficient handling of the console output--perhaps the same problem that occurs when TLC produces a lot of console output. Here's what the Eclipse log shows: Exception in thread "Output Stream Monitor" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390) at java.lang.StringBuffer.append(StringBuffer.java:224) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:154) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) Eclipse uses a class called OutputStreamMonitor to wrap a process's output streams. By default the OutputStreamMonitor saves the stream in a StringBuffer. Since we currently don't use any of this saved stream, the StringBuffer is useless. To fix this, I committed some code that turns off buffering. This needs to be tested. It looks like Dan's fix has solved the problem, though I don't know how to test it thoroughly enough to make sure. I'll close this report and reopen it if I encounter the problem again. |
Summary: | Toolbox displaying only a tiny piece of a TLC error message (and missing feature) | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
When using the Evaluate Constant Expression feature to evaluate the expression
<<TestObj \in Object,
ReachableFrom(TestObj, TestHeap)
>>
TLC produced the error message:
Error: Evaluating assumption line 73, col 8 to line 73, col 66 of module
MC failed.
Attempted to apply function:
(id1 :> [f1 |-> id2, f2 |-> <<v1, id3>>] @@ id2
:> <<>> @@ id3 :> <<>>)
to argument {}, which is not in the domain of the function.
but the Toolbox just displayed this in the top field of the TLC Errors
window
The `Evaluate Constant Expression’ section’s evaluation
to argument {}, which is not in the domain of the function.
Since Bugzilla does not provide any way to attach input to the bug
report that I've been able to find (though I seem to recall that there
is some way to do it that is obvious to anyone who has a PhD in
Bugzilla), I checked the example into the
tla/trunk/tla2-inria/general/bug-11-03-10 directory. The root file is
Promises.tla and it is Model_1 (the only model).
When I tried to open a copy of the spec in
the Toolbox, the Toolbox did not find the model, which is Model_1, even
though the Model_1 directory was inside the .toolbox directory. (I have
been unable to reproduce this problem with a fresh spec.) If that
happens, to recreate the bug, it's necessary to create a new model using
all the model info inside the Model_1/MC.{tla,cfg} files. Here's how
to do it.
What is the Model
----------------
EventualType : make model value
Type: ordinary value:
{EventualType}
Id: set of model values
{id1, id2, id3}
Exception: set of model values
{exc1, exc2}
Value: set of model values
{v1, v2}
Field: ordinary value:
{"type", "f1", "f2"}
Definition Overrides:
--------------------
Nat == 0..5
Seq(S) == UNION { [1..n -> S] : n \in 0..2 }
Additional Definitions:
----------------------
TestHeap ==
(id1 :> [ f1 |-> id2,
f2 |-> <<v1, id3>>])
@@
(id2 :> << >>)
@@
(id3 :> << >>)
TestObj ==
[type |-> EventualType,
f1 |-> id1]
Evaluate Constant Expression:
-----------------------------
<<TestObj \in Object,
ReachableFrom(TestObj, TestHeap)
>>
Running the model should then produce the error.
I stupidly just realized that the problem is probably caused by the error being in the MC module. The Toolbox should be deleting just the location information from the message, but it's deleting too much. The Toolbox should actually translate the location into a location in the Model. This is a missing feature, which was not mentioned in the Bugzilla database. It now is. |
Summary: | Print output not shown in Evaluate Constant Expression | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
If evaluating the constant expression in Evaluate Constant Expression evaluates a Print or PrintT statement, the output printed by TLC does not appear in the User Output area. I wasn't finished with the description when it was submitted (I think by Eclipse, but perhaps I accidentally hit the Submit button). First of all, this is a problem because it makes it impossible to use Evaluate Constant Expression to debug constant operators with Print statements. Here's an example that explains what's triggering the bug. In the spec, put Foo(x) == IF PrintT("PrintFoo") THEN "Foo" ELSE 0 Bar(x) == IF PrintT("PrintBar") THEN "Bar" ELSE 0 ASSUME PrintT(Bar(1)) (We give Foo and Bar arguments, otherwise TLC will evaluate them before it does any execution of the spec.) Note that evaluating the assumption prints "PrintBar" and "Bar". Now, put Foo(1) as the expression in Evaluate Constant Expression. This essentially puts ASSUME <<"xxxx", Foo(1)>> into the MC.tla file, where xxxx is actually a less readable string. Evaluating this expression prints "PrintFoo" and <<"xxxx", "Foo">>. The User Output field should show "PrintBar", "Bar", and "PrintFoo", since the Toolbox grabs the <<"xxxx", "Foo">> and puts "Foo" in the Value area of the Evaluate Constant Expression section. However, it doesn't print the "PrintFoo" where it should. If you run TLC on the MC file outside the Toolbox, you'll see that the problem is that the "PrintFoo" is printed before the "Starting... (2011-...)" line, while all the other stuff is printed afterwards. Apparently, the Toolbox doesn't look for user output until after that "Starting..." line. So, the bug is not in the Toolbox itself, but rather in the placement of the code in TLC that prints the "Starting..." line. I moved the appropriate TLC code and it seems to have fixed the problem. |
Summary: | Toolbox not reporting invariant violation | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: |
Source file
The MC.out file guess what you'll never guess ... |
First of all let me report a Bugzilla bug. There is no place to attach a file to this bug report. However, I observed that on Bug 95, there is now a place for attachments. So apparently, Bugzilla creates the section for attachments only after the Bug is submitted. Assuming that doesn't just happen on the ides of March under a 1/4 full moon when it's raining, I will submit this and then try to attach the necessary files. Now for this bug. TLC found an invariant violation, but the Toolbox didn't report it or any other information about the run because of an array out of bounds exception. Below is what the Eclipse console shows. I will attach the spec and the various MC* files, which show what TLC produced. footFileName = C:\lamport\microsoft\spec-examples\joe_duffy\Promises2.tla Writing files to: Model_1\ ---- Skipping resource: Model_1/MC.tla Skipping resource: Model_1/Promises2.tla ---- entering removeModelProblemMarkers() on Promises2___Model_1 with markerType set to org.lamport.tla.toolbox.tlc.modelErrorSANY Final check for the modelcheck mode. The result of the check is true --------------------------- TLC ARGUMENTS: --------------------------- -checkpoint 3 -config MC.cfg -coverage 3 -workers 1 -tool -metadir C:\lamport\microsoft\spec-examples\joe_duffy\Promises2.toolbox\Model_1 MC --------------------------- END TLC ARGUMENTS --------------------------- entering removeModelProblemMarkers() on Promises2___Model_1 with markerType set to org.lamport.tla.toolbox.tlc.modelErrorTLC TLCOutputSourceRegistry for model checking maintains 1 sources. The source Promises2___Model_1.launch has 4 prio and 1 listeners !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-03-21 19:04:03.564 !MESSAGE Error broadcasting the message !STACK 0 java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0 at java.util.Vector.get(Vector.java:694) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.createError(TLCModelLaunchDataProvider.java:586) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:273) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) ---- Skipping resource: Model_1/MC.tla ---- Job 'TLC run for Model_1' terminated with status: { Done } ---- ---- Created attachment 21 [details]
Source file
Created attachment 22 [details]
The MC.out file
Created attachment 23 [details]
guess what
Created attachment 24 [details]
you'll never guess
Created attachment 25 [details]
...
How nice, the attached files are all comments. Very helpful. But they're now there. After carefully documenting all this, I tried running under the debugger and the problem didn't occur. I then restarted the Toolbox and tried again, and again it didn't occur. I'll resolve this as "Won't Fix", since there are probably more important things to worry about than why that exception occurred. |
Summary: | Toolbox incorrectly reports which invariant is violated if some members of the list of invariants are unchecked | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Chris Newcombe <chris.newcombe> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | Screenshot of unselected, yet checked invariant |
Toolbox incorrectly reports which invariant is violated if some members of the list of invariants are unchecked Running Version 1.2.1 of 29 September 2010 (32-bit), on Windows 7 (64-bit). First bug: I have a list of 3 invariants to be checked (in the Model Overview page). When all of them are enabled (checked), everything seems to work fine. I temporarily unchecked the second (middle) invariant in the list (first time I’ve used this feature). I ran the model-checker, knowing that the 3rd invariant in the list would be violated by my current spec/model. The toolbox incorrectly reported that the second (unchecked) invariant was the one that was violated. Examining the TLC error trace, I am sure that it was really the 3rd invariant that was violated. i.e. Model checking appears to have been done correctly, but the toolbox incorrectly reported which invariant was violated. Presumably due to a bug in the handling of unchecked invariants. Second related bug: After the above problem, I completely removed the middle (unchecked) invariant, by clicking the 'Remove' button. I re-ran the model checker. The toolbox again incorrectly reported that the (now removed) second invariant was the one that was violated. I then removed all of the invariants (leaving an empty list). I added back one invariant -- the one I knew would fail. Again the toolbox reported that the wrong invariant was violated -- it reported that the original 1st invariant was violated, when that invariant didn't even appear in the list anymore. I was able to reproduce this bug on my Windows 7 64-bit machine with a 4-core Intel Xeon CPU. It does not occur on my Vista 32-bit 2-core machine. Also, when I tried to reproduce the bug again on my 64-bit machine, it didn't occur. The bug is in the Toolbox, not in TLC. It smells like a concurrency bug--especially since I have observed that the 64-bit machine seems to be good at revealing concurrency bugs, probably because it uses a weaker memory model than the 32-bit one. The code that finds and reads the TLC output is too complicated and requires too much knowledge of the Eclipse infrastructure for me to understand. Another incarnation is that TLC checks *no* invariant even though a (single one) is checked in the model editor. I have yet to reproduce this though. Created attachment 198 [details]
Screenshot of unselected, yet checked invariant
I got bitten by this again yesterday. The Toolbox checked the TypeOK
invariant even though it wasn't selected (see screenshot). I wonder if
it even checked the selected ones.
http://tlaplus.codeplex.com/SourceControl/changeset/b00cb4336eeed3fd82cfd0d8170bc57c305a40e2 causes the Toolbox to properly lock the workspace before it writes files to launch the model checker. This makes sure that it can't interfer with other background operations that write to files. I hope that this change addresses this bug too. Below is an updated stacktrace with current line numbers: Negative seek offset at java.io.RandomAccessFile.seek(Native Method) at tlc2.util.BufferedRandomAccessFile.seek(BufferedRandomAccessFile.java:212) at tlc2.tool.liveness.DiskGraph.getNode(DiskGraph.java:169) at tlc2.tool.liveness.DiskGraph.getPath(DiskGraph.java:310) at tlc2.tool.liveness.LiveWorker.printTrace(LiveWorker.java:603) at tlc2.tool.liveness.LiveWorker.checkComponent(LiveWorker.java:373) at tlc2.tool.liveness.LiveWorker.checkSccs(LiveWorker.java:163) at tlc2.tool.liveness.LiveWorker.run(LiveWorker.java:613) Fixed with 1.5.0 The fix in 1.5.0 turns out to be incomplete. Thus, a workaround has been put in place [1] that caches the invariant list upon model checking start-up as fall-back. [1] https://tlaplus.codeplex.com/SourceControl/changeset/72a66a7ecd246018aaf5c1bfbe89dbe2280cb46d |
Summary: | Toolbox in confused state after system restart during model-checking | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Chris Newcombe <chris.newcombe> |
Component: | TLC Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- |
Running Version 1.2.1 of 29 September 2010 (32-bit) on Windows 7 Enterprise 64-bit, on a 4-proc 4GB ThinkPad laptop. Sequence of events: 1. TLC was checking a model. (I can't remember if it was doing it in the background.) 2. I had to do a system restart to install an update of some unrelated software (Adobe Reader). 3. After the restart I ran the toolbox and found that: - TLC is not running (not surprising, as I haven't restarted it.) - The Model Overview tab says "(model checking is in progress)" - The "How to run" options are all greyed out. The "Checkpoint Id" and "Checkpoint Size" are populated with reasonable values, but they are greyed-out. - The "Model Checking Results" tab says "Current Status: Not running" and "Errors detected: No Errors". The "State space progress" box lists the last few state reports (from before the system restart) - The 'Stop model checker' button (small red square) was enabled, but had no apparent effect when clicked. Note: I did previously stop this TLC run, and restart from a checkpoint, without any problems. But I didn't do a system-restart that time. I worked around this by cloning the model. So it's not a severe problem, just confusing at first. The cloned model initially had 1 error, that there was no checkpoint state. I realized that this was because the 'restart from checkpoint' box was already checked for the clone (it was also checked on the original model). I unchecked the box, and could then run TLC as normal. This is a known behavior, documented in the Help pages, for which the Toolbox provides the repair menu item for a model in the spec explorer. |
Summary: | Absolute path names in .toolbox directory files prevents opening existing specs that have been moved. | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Dan Ricketts <daniel.bmore.ricketts> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | simon |
Priority: | P2 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Windows | ||
Target Version: | --- |
A Spec's .toolbox directory has data files containing absolute path names of files. This causes havoc if one copies an existing spec--for example, from another machine--and tries to open it without copying it to a directory with exactly the same path name. A possible bug fix is to rewrite the offending files when opening the new spec. See the comments preceding Spec.createNewSpec(...). |
Summary: | Incorrect links in displayed PlusCal translator error message | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | Core Component | Assignee: | Leslie Lamport <lamport> |
Status: | ASSIGNED --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Windows | ||
Target Version: | --- | ||
Attachments: | this is a tla file |
In the soon-to-be-attached example, the PlusCal translator reports missing labels in two locations. When the Toolbox displays that message, it seems to attach links to the two locations that both refer to the first location. Created attachment 26 [details]
this is a tla file
I just noticed that this was filed under the wrong component. It looks like yet another bug in the Toolbox's parsing of output of the programs it calls. |
Summary: | I/O and backend calls not sufficiently decoupled from UI (main) thread | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA+ Editor | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | daniel.bmore.ricketts, simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- |
File > Open Spec > a fairly large spec causes the UI to hang. This is due to parsing the model in the UI thread. Same happens, if File > Parse Spec is clicked. The appropriate command handles have to take care of decoupling the parsing from the UI thread by using a short-lived Thread or an org.eclipse.core.runtime.jobs.Job. I remeber a discussion between Leslie and me regarding this issue. I also remember that we decided to touch this place on demand only, because Lesli ensured me that the biggest spec he ever saw was 64KB and Sany parses it in very few seconds, so it is acceptable for the user to wait. There are several issues to solve if running the SANY in a separate thread/job. 1. There is the synchronization issue with the Parse Status 2. During Parsing, the SpecObj and is not available, which means that the most parts of smart editor functions doesn't work. Since we developed A MINIMAL parser integration solution, it worked for us and it is ok to improve it in the current iteration. I would address another important issue if you touch this place. Currently SANY runs a complete reparse, which is a litte dump. Large specs consists of many individual TLA+ modules and a modification usually doesn't affect all the modules. So instead of parsing the spec starting from root module every time, it would be better to only affected modules. I remember Leslie and me discussed this issue and we even tried to implement it, but then we left it as it is and decided to implement the easiest parsing solution and improve it later. So, in short: YES, I vote for decoupling parsing from UI thread. *** Bug 78 has been marked as a duplicate of this bug. *** More candidates: org.lamport.tla.toolbox.tool.tlc.ui.editor.page.BasicFormPage.RunAction.run() org.lamport.tla.toolbox.tool.tlc.ui.editor.ModelEditor.doSave(IProgressMonitor) org.lamport.tla.toolbox.tool.tlc.traceexplorer.TraceExplorerComposite.doExplore() org.lamport.tla.toolbox.tool.tlc.ui.modelexplorer.CloneModelContributionItem.getContributionItems() *** Bug 137 has been marked as a duplicate of this bug. *** *** Bug 110 has been marked as a duplicate of this bug. *** org.lamport.tla.toolbox.tool.tla2tex.handler.ProducePDFHandler.execute(ExecutionEvent) |
Summary: | Bundle-RequiredExecutionEnvironment is set to J2SE-1.4 although Java5 API is used | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA Tools | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
org.lamport.tla.toolbox.* bundles use Java5 API but their BREE is set to Java 1.4. BREE has been set to Java 1.5 Created attachment 27 [details]
mylyn/context/zip
|
Summary: | org.lamport.tla.toolbox.tool.prover uses Java 1.6 API | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA Tools | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
java.lang.String.isEmpty() is not avaiable in Java 5 Fix released by replacing isEmpty() with length() == 0 Created attachment 28 [details]
mylyn/context/zip
|
Summary: | Test dependencies not satisfied causing compiler errors in o.l.t.toolbox and o.l.t.toolbox.tool.tlc.ui | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA Tools | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Both bundles may _optionally_ depend on package "junit.framework" to satisfy the build time dependency but allow Junits absence at runtime. Fix released Created attachment 29 [details]
mylyn/context/zip
|
Summary: | Distributed TLC based on RMI broken | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Refactorings broke the RMI based distributed version of TLC. Hi Simon, what's the reason you have deprecated all RMI related code? I have hacked it to get back working and our manual tests appear to work. Real tests are pending though. Somehow Yuan and me decided that we are not able to make TLC work in distributed mode. From this point on I tried to push all the refactorings through both code bases: the single machine TLC, which I could test and through the distributed part wchi I could not test. In order to distuinguish the one from another, I marked TLC parts as depricated... I assume it was a mistake. Fixed in HEAD (more performance tests pending) |
Summary: | Add framework to run automated UI tests | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | 120 | ||
Bug Blocks: |
Automated UI tests are a great time saver especially when developing for multiple OS. SWTBot [0] allows to easily write UI tests that can be executed automatically. [0] http://eclipse.org/swtbot/ Framework released to HEAD |
Summary: | Automatically detect pdflatex on the system | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
If pdflatex is not on the system path, an incomprehensible dialog pops up complaining that pdflatex cannot be found ("No such file or directory"). To make it easier for the user, either: a) Find pdflatex automatically (CDT has facilities to located system binaries) b) Generate PDF directly in Java c) Improve error dialog with a direct link to the Preferences > TLA+ Prefs > PDF Viewer |
Summary: | "Produce PDF Version" handler executes PDF generation on the UI thread | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Canceling a long or stuck operation is impossible since the buttons don't work. org.lamport.tla.toolbox.tool.tla2tex.PDFHandlerThreadingTest has been added as a test case, though not activated yet. |
Summary: | NullPointerException when using spaces in application path (path to TLC java process) | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Mac OS | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 157 |
When using a space in the app path on Mac OS X, Toolbox throws a NPE while executing a model check. Changing the path name to not contain a whitespace appears to prevent this error (even thought the path gets renamed back to spaces again) |
Summary: | Open spec wizard accepts specs with illegal names | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Add a marker to the new spec wizard forbidding illegal names (like -) Fixed in HEAD, verified on Mac, Windows XP, Linux Created attachment 40 [details]
mylyn/context/zip
|
Summary: | Toolbox does not shut down gracefully with model checks still running | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Closing the Toolbox during a model check causes exceptions (e.g. NPE) in different parts of the code base. The assumption is, that the asynchronous jobs do not get canceled correctly or themselves check if the Toolbox has quit. ENTRY org.eclipse.ui 4 4 2011-05-11 14:31:12.919 !MESSAGE Failed to execute item toolbox.command.spec.new !STACK 0 org.eclipse.core.commands.ExecutionException: No activeWorkbenchWindow found while executing toolbox.command.spec.new at org.eclipse.ui.handlers.HandlerUtil.noVariableFound(HandlerUtil.java:40) at org.eclipse.ui.handlers.HandlerUtil.getVariableChecked(HandlerUtil.java:89) at org.eclipse.ui.handlers.HandlerUtil.getActiveWorkbenchWindowChecked(HandlerUtil.java:210) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler.execute(NewSpecHandler.java:33) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) at org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot$2.run(AbstractSWTBot.java:159) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$5.doRun(UIThreadRunnable.java:221) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$1.run(UIThreadRunnable.java:89) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.runEventLoop(EventLoopProgressMonitor.java:123) at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.isCanceled(EventLoopProgressMonitor.java:97) at org.eclipse.core.internal.jobs.ThreadJob.isCanceled(ThreadJob.java:146) at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:235) at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:199) at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:92) at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:286) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1914) at org.eclipse.core.internal.resources.Project.touch(Project.java:1270) at org.lamport.tla.toolbox.spec.Spec.setLastModified(Spec.java:193) at org.lamport.tla.toolbox.spec.manager.WorkspaceSpecManager.setSpecLoaded(WorkspaceSpecManager.java:242) at org.lamport.tla.toolbox.ui.handler.OpenSpecHandler.execute(OpenSpecHandler.java:64) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.lamport.tla.toolbox.util.UIHelper.runCommand(UIHelper.java:420) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler.execute(NewSpecHandler.java:55) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) at org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot$2.run(AbstractSWTBot.java:159) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$5.doRun(UIThreadRunnable.java:221) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$1.run(UIThreadRunnable.java:89) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.swtbot.eclipse.core.UITestApplication.start(UITestApplication.java:54) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) !ENTRY org.eclipse.ui 4 0 2011-05-12 08:45:48.479 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed) at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler.execute(NewSpecHandler.java:45) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) at org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot$2.run(AbstractSWTBot.java:159) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$5.doRun(UIThreadRunnable.java:221) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$1.run(UIThreadRunnable.java:89) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.swtbot.eclipse.core.UITestApplication.start(UITestApplication.java:54) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Caused by: org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Widget.error(Widget.java:466) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:403) at org.eclipse.swt.widgets.Label.setImage(Label.java:524) at org.eclipse.jface.dialogs.TitleAreaDialog.setTitleImage(TitleAreaDialog.java:650) at org.eclipse.jface.wizard.WizardDialog.hardClose(WizardDialog.java:870) at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:819) at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) at org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot$2.run(AbstractSWTBot.java:159) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$5.doRun(UIThreadRunnable.java:221) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$1.run(UIThreadRunnable.java:89) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) ... 47 more !ENTRY org.eclipse.ui 4 0 2011-05-12 08:45:48.482 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.swtbot.eclipse.core.UITestApplication.start(UITestApplication.java:54) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Caused by: java.lang.NullPointerException at org.lamport.tla.toolbox.util.UIHelper.runCommand(UIHelper.java:414) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler.execute(NewSpecHandler.java:55) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) at org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot$2.run(AbstractSWTBot.java:159) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$5.doRun(UIThreadRunnable.java:221) at org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable$1.run(UIThreadRunnable.java:89) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) ... 24 more !ENTRY org.eclipse.core.jobs 4 2 2011-05-18 12:41:33.895 !MESSAGE An internal error occurred during: "Parsing spec...". !STACK 0 java.lang.NullPointerException at org.lamport.tla.toolbox.ui.contribution.StatusReflectingSpecLifecycleParticipant.initialize(StatusReflectingSpecLifecycleParticipant.java:23) at org.lamport.tla.toolbox.util.SpecLifecycleManager.initialize(SpecLifecycleManager.java:49) at org.lamport.tla.toolbox.spec.manager.WorkspaceSpecManager.<init>(WorkspaceSpecManager.java:58) at org.lamport.tla.toolbox.Activator.getSpecManager(Activator.java:297) at org.lamport.tla.toolbox.util.ResourceHelper.getResourceByName(ResourceHelper.java:147) at org.lamport.tla.toolbox.util.ResourceHelper.getResourceByModuleName(ResourceHelper.java:137) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:258) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:83) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:56) at org.lamport.tla.toolbox.spec.parser.SpecificationParserLauncher.parseSpecification(SpecificationParserLauncher.java:38) at org.lamport.tla.toolbox.spec.nature.ParserHelper$2.run(ParserHelper.java:75) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957) at org.lamport.tla.toolbox.spec.nature.ParserHelper.rebuildSpec(ParserHelper.java:81) at org.lamport.tla.toolbox.ui.handler.OpenSpecHandler$1.run(OpenSpecHandler.java:73) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) java.lang.NullPointerException at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1196) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1984) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957) at org.lamport.tla.toolbox.spec.nature.ParserHelper.rebuildSpec(ParserHelper.java:81) at org.lamport.tla.toolbox.ui.handler.OpenSpecHandler$1.run(OpenSpecHandler.java:73) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) !ENTRY org.eclipse.core.jobs 4 2 2011-05-18 12:56:17.191 !MESSAGE An internal error occurred during: "Parsing spec...". !STACK 0 java.lang.NullPointerException at org.lamport.tla.toolbox.util.RCPNameToFileIStream.initInternalLibraryPath(RCPNameToFileIStream.java:58) at org.lamport.tla.toolbox.util.RCPNameToFileIStream.<init>(RCPNameToFileIStream.java:48) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:128) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:83) at org.lamport.tla.toolbox.spec.parser.ModuleParserLauncher.parseModule(ModuleParserLauncher.java:56) at org.lamport.tla.toolbox.spec.parser.SpecificationParserLauncher.parseSpecification(SpecificationParserLauncher.java:38) at org.lamport.tla.toolbox.spec.nature.ParserHelper$2.run(ParserHelper.java:75) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957) at org.lamport.tla.toolbox.spec.nature.ParserHelper.rebuildSpec(ParserHelper.java:81) at org.lamport.tla.toolbox.ui.handler.OpenSpecHandler$1.run(OpenSpecHandler.java:73) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) |
Summary: | Grey out edit button in model editor unless selection in declared constants table | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
User reports indicate that the model editor Edit button for the constants should be greyed out unless a valid selection in the table is present. Otherwise one might think the button does no function correctly since clicking it has no effect. !ENTRY org.eclipse.ui 4 0 2011-05-11 16:22:22.313 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument: at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73) at org.lamport.tla.toolbox.tool.tlc.ui.editor.part.ValidateableConstantSectionPart.doEditFormula(ValidateableConstantSectionPart.java:37) at org.lamport.tla.toolbox.tool.tlc.ui.editor.part.ValidateableConstantSectionPart.doEdit(ValidateableConstantSectionPart.java:80) at org.lamport.tla.toolbox.tool.tlc.ui.editor.part.ValidateableTableSectionPart$1.widgetSelected(ValidateableTableSectionPart.java:67) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Clicking the button with a selection |
Summary: | Open .tla from the system by double clicking in TLA Toolbox | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | 116 | ||
Bug Blocks: |
This feature has been added with Eclipse 3.6 (Helios release) [0]. [0] https://bugs.eclipse.org/4922 See Eclipse bug https://bugs.eclipse.org/4922 Documentation can be found on the Eclipse wiki: - http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/product_open_file.htm - http://wiki.eclipse.org/Eclipse/OpenFileFeature |
Summary: | Upgrade to recent Eclipse RCP version | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 115, 10 |
The Toolbox ships on top of Eclipse 3.5 (2009). This bugs require a more recent version of Eclipse. Since this change potentially introduces new bugs, it shouldn't be done lightheadedly though. Fixed a while ago with the introduction of an automated build |
Summary: | Adobe PDF opens up in a separate windows instead of embedded editor | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLATEX Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Windows | ||
Target Version: | --- |
It has been reported that on Windows 7 a generated PDF does not open up inside the Toolbox editor but in a separate Adobe windows. |
Summary: | "Translate PlusCal Algorithm" handle may only be enabled if spec indeed contains a PlusCal definition | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
LL comment: Even go further and do not show the translation button unless the current spec contains a PlusCal spec. |
Summary: | German keyboard layout does not match ASCII values | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA+ Editor | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | Mac OS | ||
Target Version: | --- |
A user reported that: "The first time I tried to create a example project but I could not type “[ ]” It seems that TLA+ is not recognizing special chars like “[ ] { }”, when input method in Mac OS X is set to German. If you set it to English it works." |
Summary: | Automated product build | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 108 |
TLA+ Toolbox currently is build manually from inside the development environment. A headless build should replace this task. Fix released to SVN run "mvn install" in the tla2-inria/ folder to build products |
Summary: | Renaming spec broken, causing inconsistent projects even after Toolbox restart | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | 58 | ||
Bug Blocks: |
Renaming a spec causes the renamed spec to vanish from the spec explorer. After restarting the toolbox both the renamed as well as the new spec show up. If the underlying fix proves difficult, greying out "Rename" from the context menu should be considered. Is a spec rename even supposed to change the name of the root .tla file as well as the module name inside? Fixed in HEAD |
Summary: | Generated PDF does not show in embedded browser hard locking the Toolbox | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | x86 64-bit | ||
OS: | Linux | ||
Target Version: | --- |
On Ubuntu Natty 11.04 producing a PDF causes the progress bar to come up which hard locks at approximately 50%. No multipage editor with the embedded browser is ever shown. The only option to recover from this situation is to forcefully kill the Toolbox (which might cause data loss). It appears as if reinstalling "xulrunner-1.9.2" fixed the hard lock issue. It must have somehow reseted the file handling in Mozilla Firefox (purging ~/.mozilla/eclipse did not help). Now the editor page opens up, but instead of showing the PDF, it prompts to save the file to disk. |
Summary: | Statusline should indicate "unparsed" state on dirty editor | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: |
Protocol Bernhard Schildendorfer
Report Bernd Wittman |
"[...] it was not possible to enter behavior spec in the model for an existing specification. Although the Spec Status was displayed as “parsed”, the input fields were disabled. It turned out that the specification contained errors, but the spec status was displayed wrong because it was a new specification. After parsing the spec manually, an error occurred because of [...]" (Bernhard Schildendorfer) "Changes in the TLA-Module-Window are not indicated in the “Spec Status” Field at the bottom of the window. From my point of view, each editing action should be indicated in the “Spec Status” as “unknown” or similar (independently of the file-save-status). Also, by executing the TLC Model Checker, no “Do you want to save the modified resources” announcement is displayed in reference to changes in the TLA-Module-Window." (Bernd Wittmann) Created attachment 30 [details]
Protocol Bernhard Schildendorfer
see page 4 to 5
Created attachment 31 [details]
Report Bernd Wittman
see page 2
|
Summary: | PDF editor pages stays empty with error message indicating that the file could not be loaded | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | x86 64-bit | ||
OS: | Windows 7 | ||
Target Version: | --- | ||
Attachments: | Report Silvia Straihammer |
"If I generate PDF to view the tla-File, the program asks me if I want to open or save the pdf-File. But the pdf is already stored in the same directory as the tla-File. If I click on the “open”-Button it lasts a relative long time until it opens the external Reader and the pdf-viewer says: “The navigation to the website was aborted”. Why is it necessary to download the pdf-File?" (Silvia Straithammer) The report does not really indicate if this happened on Vista or Windows 7. Will leave it as Windows 7 for now. Created attachment 32 [details]
Report Silvia Straihammer
|
Summary: | Toolbox fails to detect default VM installation on first run | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | leuschel, simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | Mac OS | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 157 |
It has been reported, that the Toolbox fails to start if not installed into Applications/. Verification pending... While running performance tests, I have made following observations (Mac OS X 10.0.6 x86_64): a) Toolbox does not have to be installed in Applications/ b) First toolbox run model checking throws an NPE c) A toolbox restart fixes the NPE irregardless of where it is installed Job 'TLC run for Model_1' terminated with status: { Error } !ENTRY org.eclipse.core.jobs 4 2 2011-06-10 18:59:05.167 !MESSAGE An internal error occurred during: "TLC run for Model_1". !STACK 0 java.lang.NullPointerException at org.lamport.tla.toolbox.tool.tlc.job.TLCProcessJob.run(TLCProcessJob.java:108) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) The root cause appears to be that the toolbox fails to find the default VM installation (org.eclipse.jdt.launching.JavaRuntime.getDefaultVMInstall()) on its first run. Updating bug title to reflect this. If bundle "org.eclipse.jdt.launching.macosx" is missing, eclipse fails to detect/find the VM on Mac. *** Bug 133 has been marked as a duplicate of this bug. *** |
Summary: | NPE in Add Spec handler when parent directory does not exist | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
For the user it appears as if the Finish button has no functionality. !SUBENTRY 1 org.lamport.tla.toolbox 4 0 2011-05-23 12:11:38.434 !MESSAGE Error creating TLA+ file !STACK 0 java.io.IOException: No such file or directory at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:883) at org.lamport.tla.toolbox.job.NewTLAModuleCreationOperation.run(NewTLAModuleCreationOperation.java:47) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1957) at org.lamport.tla.toolbox.ui.wizard.NewSpecWizard.performFinish(NewSpecWizard.java:51) at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811) at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler.execute(NewSpecHandler.java:45) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169) at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241) at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:820) at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:806) at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:796) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Fix released to HEAD Created attachment 68 [details]
mylyn/context/zip
|
Summary: | Graph windows do not have a title bar making it impossible to close | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
The graph title bar is missing on Linux (click on the column title to open it), which makes it impossible to close the graphs. No shortcuts appear to help either. Fixed in HEAD Removed SWT.ON_TOP style bit which screws up on Linux/GTK and which does not have a visible effect on Win or Mac. Created attachment 58 [details]
mylyn/context/zip
|
Summary: | util.SimpleFilenameToStream.locate(String) fails if path contains whitespaces | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 129 | ||
Attachments: | mylyn/context/zip |
\\C:\\Documents%20and%20Settings\\markus\\tlatoolbox\\tlatools\\class\\tla2sany\\StandardModules\\ vs "\\C:\\Documents and Settings\\markus\\tlatoolbox\\tlatools\\class\\tla2sany\\StandardModules\\" Fix released to HEAD, verified on Mac OS X, Windows XP (x86) and Linux. Created attachment 33 [details]
mylyn/context/zip
|
Summary: | TLCWorker may read specification and configuration from TLCServer via RMI | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA Tools | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | ||
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | 128 | ||
Bug Blocks: | |||
Attachments: | mylyn/context/zip |
Instead of requiring the user to copy the specification and configuration files to all workers, workers may read the files with RMI. Closing as fixed, RMI has been added to TLCServerRMI. Created attachment 55 [details]
mylyn/context/zip
|
Summary: | tlc2.util.ByteUtilsTest fails to create test file | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
-- Error Log from JUnit -- Class: tlc2.util.ByteUtilsTest Method: test4 Actual: null Expected: null Stack Trace: java.io.FileNotFoundException: test (Is a directory) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:179) at java.io.FileOutputStream.<init>(FileOutputStream.java:70) at tlc2.util.ByteUtilsTest.mainTestWriteLongReadLong(ByteUtilsTest.java:156) at tlc2.util.ByteUtilsTest.test4(ByteUtilsTest.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Fix released to HEAD, verified on Linux Created attachment 34 [details]
mylyn/context/zip
|
Summary: | tlc2.util.BigInt.equals causes java.lang.StackOverflowError | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
-- Error Log from JUnit -- Class: tlc2.util.ByteUtilsTest Method: test5 Actual: null Expected: null Stack Trace: java.lang.StackOverflowError at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) at tlc2.util.BigInt.equals(BigInt.java:34) Fix released to HEAD, verified on Linux Created attachment 35 [details]
mylyn/context/zip
|
Summary: | Open Saved Module menu item not grayed out | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | minor | CC: | simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
Open Saved Module item on the The TLC Model Checker menu should be grayed out if no model is selected. Currently, it's not grayed out but clicking on it does nothing. This will confuse naive users who have no idea what that command does. (They'll probably still be confused if they use that command when it is enabled, but at least they have a chance of figuring it out--and may perhaps go to the help pages to find out.) |
Summary: | Internal Error when running TLC on Mac | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Michael Leuschel <leuschel> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED DUPLICATE | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | Mac OS | ||
Target Version: | --- |
I am trying to run TLC from the TLA toolbox 1.3.1 on Mac OS X 10.6.7. Whenever I try to run TLC I get the error message: An internal error occurred during: "TLC run for Model_1". java.lang.NullPointerException This happens both using the 32-bit and the 64-bit version. The Hardware is a MacBook Pro Core2Duo 3.06 GHz. It happens with all my specifications and models (which ran successfully on 1.1.0 from Feb 5, 2010). I have also tried creating new specifications from scratch; without success. (As a side-not: the "About TLA Toolbox" menu command seems to perform no action.) (In reply to comment #0) > I am trying to run TLC from the TLA toolbox 1.3.1 on Mac OS X 10.6.7. > Whenever I try to run TLC I get the error message: > > An internal error occurred during: "TLC run for Model_1". > java.lang.NullPointerException > > This happens both using the 32-bit and the 64-bit version. > The Hardware is a MacBook Pro Core2Duo 3.06 GHz. > It happens with all my specifications and models (which ran successfully on > 1.1.0 from Feb 5, 2010). > I have also tried creating new specifications from scratch; without success. Hi Michael, this appears to be an incarnation of bug #111 and potentially bug #125 too. Can you try and check if the workarounds mentioned on those bugs solve your issue? Basically make sure that the toolbox is installed into Applcations/ and that the path to the toolbox does not contain whitespaces. > (As a side-not: the "About TLA Toolbox" menu command seems to perform no > action.) This already gets tracked in bug #27. Thanks Markus |
Summary: | Distributed TLC does not compile on Java 1.5 | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Description Resource Path Location Type The constructor IOException(String, EOFException) is undefined MemFPSet2.java /tlatools/src/tlc2/tool/fp line 235 Java Problem Description Resource Path Location Type The constructor IOException(String, IOException) is undefined DiskFPSet.java /tlatools/src/tlc2/tool/fp line 147 Java Problem Description Resource Path Location Type The method getLiveRef() is undefined for the type UnicastRef TLCServer.java /tlatools/src/tlc2/tool/distributed line 157 Java Problem Fix released to HEAD Created attachment 39 [details]
mylyn/context/zip
|
Summary: | NPE startup crash requiring Toolbox restart (happens randomly) | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: |
Console output
mylyn/context/zip mylyn/context/zip |
!ENTRY org.eclipse.ui 4 0 2011-05-31 01:10:00.273 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NullPointerException at org.lamport.tla.toolbox.util.SpecLifecycleManager$1.invoke(SpecLifecycleManager.java:30) at org.lamport.tla.toolbox.util.SpecLifecycleManager.sendEventWithVeto(SpecLifecycleManager.java:80) at org.lamport.tla.toolbox.util.SpecLifecycleManager.sendEvent(SpecLifecycleManager.java:64) at org.lamport.tla.toolbox.spec.manager.WorkspaceSpecManager.addSpec(WorkspaceSpecManager.java:156) at org.lamport.tla.toolbox.spec.manager.WorkspaceSpecManager.<init>(WorkspaceSpecManager.java:97) at org.lamport.tla.toolbox.Activator.getSpecManager(Activator.java:297) at org.lamport.tla.toolbox.ui.contribution.SizeControlContribution.updateSize(SizeControlContribution.java:90) at org.lamport.tla.toolbox.ui.contribution.SizeControlContribution.createControl(SizeControlContribution.java:78) at org.eclipse.jface.action.ControlContribution.fill(ControlContribution.java:97) at org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:353) at org.eclipse.jface.action.ToolBarManager.createControl(ToolBarManager.java:111) at org.eclipse.ui.internal.menus.TrimContributionManager$ToolBarTrimProxy.dock(TrimContributionManager.java:88) at org.eclipse.ui.internal.menus.TrimContributionManager.update(TrimContributionManager.java:232) at org.eclipse.ui.internal.WorkbenchWindow.updateLayoutDataForContents(WorkbenchWindow.java:3784) at org.eclipse.ui.internal.WorkbenchWindow.setLayoutDataForContents(WorkbenchWindow.java:3795) at org.eclipse.ui.internal.WorkbenchWindow.createDefaultContents(WorkbenchWindow.java:1113) at org.eclipse.ui.internal.WorkbenchWindowConfigurer.createDefaultContents(WorkbenchWindowConfigurer.java:625) at org.eclipse.ui.application.WorkbenchWindowAdvisor.createWindowContents(WorkbenchWindowAdvisor.java:268) at org.eclipse.ui.internal.WorkbenchWindow.createContents(WorkbenchWindow.java:999) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.ui.internal.Workbench$20.runWithException(Workbench.java:1032) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1384) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2316) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) Created attachment 41 [details]
Console output
I suspect the call to org.eclipse.core.runtime.IConfigurationElement.createExecutableExtension(String) in org.lamport.tla.toolbox.util.SpecLifecycleManager.SpecLifecycleManager() to return null on Eclipse <= 3.5. Eclipse bugzilla searches turn up empty though. Created attachment 42 [details]
mylyn/context/zip
To activate assertions in Eclipse follow http://tech.puredanger.com/2007/01/17/eclipse-assertions/ To avoid having to go to the Web to find out how to enable/disable assertions, here's the explanation from http://tech.puredanger.com/2007/01/17/eclipse-assertions/ When using the JDK 1.4+ assert keyword, it’s nice in Eclipse to enable them for all your launch configurations at once. The easiest way to do this is to specify a default VM argument for your installed JDK. You can do this by going to Windows -> Preferences -> Java -> Installed JREs. Then select your JDK and click the Edit… button. In the “Default VM Arguments” box, add -ea. Changed ProverUIActivator.start(BundleContext) to access the preference store from inside the UI thread to prevent SWT invalid thread access exceptions. Changes in comment #6 seem to have done the trick, closing as fixed. Created attachment 54 [details]
mylyn/context/zip
|
Summary: | NPE in UIHelper.runCommand() if workbench window is inactive | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
!ENTRY org.eclipse.ui 4 4 2011-05-31 15:03:36.247 !MESSAGE An internal error has occurred. !STACK 0 java.lang.NullPointerException at org.lamport.tla.toolbox.util.UIHelper.runCommand(UIHelper.java:417) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler$2$1.runInUIThread(NewSpecHandler.java:168) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.swt.widgets.Display.release(Display.java:3215) at org.eclipse.swt.graphics.Device.dispose(Device.java:246) at org.lamport.tla.toolbox.Application.start(Application.java:50) at org.eclipse.swtbot.eclipse.core.UITestApplication.start(UITestApplication.java:54) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) |
Summary: | CloneModelContributionItem.getContributionItems() refreshes workspace in UI thread | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
org.lamport.tla.toolbox.tool.tlc.ui.modelexplorer.CloneModelContributionItem.getContributionItems() triggers a local workspace refresh each time the UI asks for contribution items. This is an expensive operation and should be refactored into a non-UI job. Causing the following test failure: junit.framework.AssertionFailedError: Backend code (e.g. parsing must not be executed in UI thread) times executed: 14 at junit.framework.Assert.fail(Assert.java:47) at junit.framework.Assert.assertTrue(Assert.java:20) at junit.framework.Assert.assertFalse(Assert.java:34) at org.lamport.tla.toolbox.tool.tlc.ui.test.threading.HandlerThreadingTest.assertNoBackendCodeInUIThread(HandlerThreadingTest.java:99) at org.lamport.tla.toolbox.tool.tlc.ui.test.threading.HandlerThreadingTest.parseSpecInNonUIThread(HandlerThreadingTest.java:88) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner.run(SWTBotJunit4ClassRunner.java:54) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.swtbot.eclipse.core.RemotePluginTestRunner.main(RemotePluginTestRunner.java:64) at org.eclipse.swtbot.eclipse.core.UITestApplication.runTests(UITestApplication.java:117) at org.eclipse.ui.internal.testing.WorkbenchTestable$1.run(WorkbenchTestable.java:71) at java.lang.Thread.run(Thread.java:680) |
Summary: | Missing view descriptor causes PartInitException at startup | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
!ENTRY org.eclipse.ui 4 4 2011-05-31 18:30:35.320 !MESSAGE Exception in org.eclipse.ui.internal.FolderLayout.addView(String): org.eclipse.ui.PartInitException: View descriptor not found: org.eclipse.ui.navigator.ProjectExplorer !ENTRY org.eclipse.ui 4 4 2011-05-31 18:30:35.325 !MESSAGE Exception in org.eclipse.ui.internal.FolderLayout.addView(String): org.eclipse.ui.PartInitException: View descriptor not found: org.eclipse.ui.navigator.ProjectExplorer !STACK 1 org.eclipse.ui.PartInitException: View descriptor not found: org.eclipse.ui.navigator.ProjectExplorer at org.eclipse.ui.internal.FolderLayout.addView(FolderLayout.java:75) at org.eclipse.ui.internal.ide.application.ResourcePerspective.defineLayout(ResourcePerspective.java:84) at org.eclipse.ui.internal.ide.application.ResourcePerspective.createInitialLayout(ResourcePerspective.java:49) at org.eclipse.ui.internal.Perspective.loadPredefinedPersp(Perspective.java:816) at org.eclipse.ui.internal.Perspective.createPresentation(Perspective.java:270) at org.eclipse.ui.internal.Perspective.<init>(Perspective.java:156) at org.eclipse.ui.internal.tweaklets.Workbench3xImplementation.createPerspective(Workbench3xImplementation.java:55) at org.eclipse.ui.internal.WorkbenchPage.createPerspective(WorkbenchPage.java:1672) at org.eclipse.ui.internal.WorkbenchPage.init(WorkbenchPage.java:2453) at org.eclipse.ui.internal.WorkbenchPage.<init>(WorkbenchPage.java:563) at org.eclipse.ui.internal.tweaklets.Workbench3xImplementation.createWorkbenchPage(Workbench3xImplementation.java:39) at org.eclipse.ui.internal.WorkbenchWindow.busyOpenPage(WorkbenchWindow.java:768) at org.eclipse.ui.internal.Workbench$23.runWithException(Workbench.java:1221) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4282) at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:94) at org.eclipse.ui.internal.Workbench.init(Workbench.java:1562) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2567) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31) at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:114) at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) !SUBENTRY 1 org.eclipse.ui 4 0 2011-05-31 18:30:35.327 !MESSAGE View descriptor not found: org.eclipse.ui.navigator.ProjectExplorer Fix released to HEAD Created attachment 72 [details]
mylyn/context/zip
|
Summary: | "Evaluate Constant Expression" output shows set with duplicate elements | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Chris Newcombe <chris.newcombe> |
Component: | TLA Tools | Assignee: | Leslie Lamport <lamport> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | x86 64-bit | ||
OS: | Windows 7 | ||
Target Version: | --- |
Toolbox: 32-bit build of Version 1.3.1 of 5 April 2011 (also happens with Version 1.2.1 of 29 September 2010) Running on: Windows 7 Enterprise Edition, 64-bit. In ‘Evaluate Constant Expression’: TCRecur({<<a, b>>, <<b, c>>}) Produces this output; a value that claims to be a set (as intended), but which has duplicate elements: {<<a, b>>, <<b, c>>, <<a, c>>, <<a, b>>, <<b, c>>, <<a, c>>} The model has one constant, with the model value: Univ <- {a, b, c, d, e, f} The spec is an attempt to constructively define a transitive closure operator on binary relations modeled as 2-tuples: ------------------------- MODULE TransitiveClosure ------------------------- CONSTANT Univ MissingJoinTuples(r1,r2) == {<<x, z>> \in (Univ \X Univ) : /\ <<x, z>> \notin r1 /\ <<x, z>> \notin r2 /\ \E y \in Univ : <<x, y>> \in r1 /\ <<y, z>> \in r2} TCRecur(r) == LET RECURSIVE selfJoin(_) selfJoin(r1) == LET mjt == MissingJoinTuples(r1, r1) IN IF mjt = {} THEN r1 (* have reached least fixpoint, so this must be transitive closure *) ELSE LET bigger == r1 \union mjt IN bigger \union selfJoin(bigger) IN selfJoin(r) ============================================================================= This is a TLC bug in PrintT (and presumably in Print as well). For example, PrintT({"a", "a"}) prints {"a", "a"}. The method that puts a value into canonical form should be called before printing the value, but that requires hunting through the TLC code to find the appropriate method. This seems to be trivial to fix, so I fixed it. However, I haven't heard from Yuan that the fix is OK, so I'll leave this open until I do. |
Summary: | Fingerprint server incorrectly retrieved with call by value instead of call by ref | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
The fingerprint server is intended to be a shared (RMI) resource and thus must be accessed with call by reference semantics. Fix released to HEAD Created attachment 43 [details]
mylyn/context/zip
|
Summary: | UniqueString has to be created by TLCServer in distributed mode | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
If TLC is run in distributed mode (RMI) on a spec that uses the concat operator (\o), UniqueString instances have to be created centrally by the server. Otherwise the same String value might result in different internal unique identifiers. Fix released to HEAD, UniqueString creation is now delegated to the central TLCServer (bottleneck). Created attachment 44 [details]
mylyn/context/zip
|
Summary: | TLCServer fails due to missing fingerprint file on worker connect | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- |
java.io.FileNotFoundException: /tmp/spec/states/11-06-08-08-32-07/MC.fp (No such file or directory) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212) at tlc2.util.RandomAccessFile.<init>(RandomAccessFile.java:24) at tlc2.util.BufferedRandomAccessFile.<init>(BufferedRandomAccessFile.java:111) at tlc2.util.BufferedRandomAccessFile.<init>(BufferedRandomAccessFile.java:124) at tlc2.tool.fp.DiskFPSet.addThread(DiskFPSet.java:195) at tlc2.tool.distributed.TLCServer.registerWorker(TLCServer.java:145) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132) at $Proxy0.registerWorker(Unknown Source) at tlc2.tool.distributed.TLCWorker.main(TLCWorker.java:144) Caused by g5k deployment script |
Summary: | TLCWorkers may wait for TLCServer to come online | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
If a TLCWorker fails to connect to the TLCServer instance at startup it exists the process. This has proven impractical for a distributed system. Hence, TLCWorkers may wait for the server to come online by repeatedly trying to connect (with increasing wait times). Fix released to HEAD Created attachment 45 [details]
mylyn/context/zip
|
Summary: | Collect and report performance statistics for RMI distributed TLC | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
In order to improve distributed TLC, reproducable statistics have to be collected during runtime. Fix released to HEAD Created attachment 46 [details]
mylyn/context/zip
|
Summary: | Toolbox not reporting a TLC error | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P4 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 220 | ||
Attachments: | a zip file |
The console log shows that running a model caused a TLC error (as it should have), but the Toolbox reported no error or any other result for the run. The Toolbox ran TLC correctly on a clone of the model. Below is a copy of the Eclipse console output produced by the incorrect run. The model will be attached below. -------- footFileName = C:\lamport\books\hyper-tla\specs\Channel\FGBoundedBuffer.tla Writing files to: Model_1\ ---- Skipping resource: Model_1/FGBoundedBuffer.tla Skipping resource: Model_1/MC.tla Skipping resource: Model_1/PCalBoundedChannel.tla ---- Found algorithm definition in PCalBoundedChannel.tla Found algorithm definition in FGBoundedBuffer.tla entering removeModelProblemMarkers() on FGBoundedBuffer___Model_1 with markerType set to org.lamport.tla.toolbox.tlc.modelErrorSANY Final check for the modelcheck mode. The result of the check is true --------------------------- TLC ARGUMENTS: --------------------------- -checkpoint 3 -config MC.cfg -coverage 3 -workers 1 -tool -metadir C:\lamport\books\hyper-tla\specs\Channel\FGBoundedBuffer.toolbox\Model_1 MC --------------------------- END TLC ARGUMENTS --------------------------- entering removeModelProblemMarkers() on FGBoundedBuffer___Model_1 with markerType set to org.lamport.tla.toolbox.tlc.modelErrorTLC TLCOutputSourceRegistry for model checking maintains 4 sources. The source FGBoundedBuffer___Model_1.launch has 4 prio and 1 listeners The source BPConProof___Model_1.launch has 4 prio and 1 listeners The source FGBoundedBuffer___Model_1_Copy.launch has 4 prio and 1 listeners The source PCalBoundedBuffer___Model_2.launch has 4 prio and 1 listeners ---- ---- Found algorithm definition in PCalBoundedChannel.tla Found algorithm definition in FGBoundedBuffer.tla !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.170 !MESSAGE Error broadcasting the message !STACK 0 java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1 at java.util.Vector.get(Vector.java:694) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.createError(TLCModelLaunchDataProvider.java:586) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:273) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.171 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.202 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.218 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.233 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.514 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.545 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) !ENTRY org.lamport.tla.toolbox.tool.tlc 4 0 2011-06-09 09:41:15.561 !MESSAGE Error broadcasting the message !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument:The state encountered without the error describing the reason for it. This is a bug. at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.onOutput(TLCModelLaunchDataProvider.java:245) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:92) at org.lamport.tla.toolbox.tool.tlc.output.source.CachingTLCOutputSource.onOutput(CachingTLCOutputSource.java:59) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:225) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:604) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:731) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:712) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:697) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:762) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1157) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.ParsingTLCOutputSink.appendText(ParsingTLCOutputSink.java:25) at org.lamport.tla.toolbox.tool.tlc.output.internal.BroadcastStreamListener.streamAppended(BroadcastStreamListener.java:44) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.run(OutputStreamMonitor.java:257) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.debug.internal.core.OutputStreamMonitor$ContentNotifier.notifyAppend(OutputStreamMonitor.java:267) at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:116) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:156) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:134) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:207) at java.lang.Thread.run(Thread.java:619) ---- ---- Found algorithm definition in PCalBoundedChannel.tla Found algorithm definition in FGBoundedBuffer.tla Job 'TLC run for Model_1' terminated with status: { Done } Created attachment 47 [details]
a zip file
The model in question is Model_1. The clone Model_1_Copy worked.
|
Summary: | Deleting a model from one spec seems to delete models with the same name from all specs | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | simon |
Priority: | P2 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Add a model named Foo to one spec. Close that spec. Add a model named Foo to a second spec. Close that spec. Re-open the first spec and delete the model named Foo. It will be deleted from the second spec too. It's pretty amazing that I never noticed this before. It looks like the problem is in DeleteModelHandler.java, which I presume is the handler for the Delete Model command. The execute command has a loop that gets a list of launch configurations and deletes any that have the right name. However, instead of comparing the complete model name, which begins with the spec name + "____", the comparison is against ModelHelper.getModelName(...), which strips that stuff away. I presume Simon thought that the list of launch configurations were only ones from the current spec and they are from all specs, but I haven't tried debugging to check this. Fix released to HEAD - Simplified implementation by cutting out the middle man^delegate - Multi-selection support added - Decoupled delete operation from UI thread -- Canceled -- Progress - Delete gets delegated to Workspace -- Undo trivial to implement Unit/Func. tests pending... (manually tested on Linux and Mac) Created attachment 48 [details]
mylyn/context/zip
Resolving as fixed, no unit tests have been written. |
Summary: | NumberFormatException for input "2262 @!@!@java.lang.IllegalArgumentException: URI is not" during startup | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
!ENTRY org.eclipse.text 4 2 2011-06-10 14:18:45.147 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.text". !STACK 0 java.lang.NumberFormatException: For input string: "2262 @!@!@java.lang.IllegalArgumentException: URI is not" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:458) at java.lang.Integer.parseInt(Integer.java:499) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCAnalyzer.getMessageCode(TagBasedTLCAnalyzer.java:295) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCAnalyzer.processTag(TagBasedTLCAnalyzer.java:132) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCAnalyzer.addTagEnd(TagBasedTLCAnalyzer.java:82) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser$TLCOutputPartitionChangeListener.documentPartitioningChanged(TagBasedTLCOutputIncrementalParser.java:216) at org.eclipse.jface.text.AbstractDocument.fireDocumentPartitioningChanged(AbstractDocument.java:611) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:755) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) at org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser.addIncrement(TagBasedTLCOutputIncrementalParser.java:315) at org.lamport.tla.toolbox.tool.tlc.output.LogFileReader.read(LogFileReader.java:52) at org.lamport.tla.toolbox.tool.tlc.output.source.TLCOutputSourceRegistry.connect(TLCOutputSourceRegistry.java:163) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.connectToSourceRegistry(TLCModelLaunchDataProvider.java:744) at org.lamport.tla.toolbox.tool.tlc.output.data.TLCModelLaunchDataProvider.<init>(TLCModelLaunchDataProvider.java:130) at org.lamport.tla.toolbox.tool.tlc.output.source.TLCOutputSourceRegistry.getProvider(TLCOutputSourceRegistry.java:218) at org.lamport.tla.toolbox.tool.tlc.ui.editor.page.ResultPage.loadData(ResultPage.java:231) at org.lamport.tla.toolbox.tool.tlc.ui.editor.page.BasicFormPage.createFormContent(BasicFormPage.java:276) at org.eclipse.ui.forms.editor.FormPage$1.run(FormPage.java:152) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.forms.editor.FormPage.createPartControl(FormPage.java:150) at org.lamport.tla.toolbox.tool.tlc.ui.editor.ModelEditor.addPages(ModelEditor.java:478) at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138) at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:348) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:953) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:1567) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) TLCOutputSourceRegistry for model checking maintains 1 sources. The source Test___Model_1.launch has 1 prio and 1 listeners Fix released to HEAD Created attachment 49 [details]
mylyn/context/zip
|
Summary: | util.SimpleFilenameToStream.getInstallationBasePath() occasionally fails to lookup the StandardModules/ path because java.lang.ClassLoader.getResource(String) returns in jar resource | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
java.lang.ClassLoader.getResource(String) does not behave deterministically WRT the resource it returns. This causes util.SimpleFilenameToStream.getInstallationBasePath() to randomly fail because it finds the StandardModules inside the "jar:file:" scheme (URL) and not "file:". There are several ways to address this issue: a) make resource loading deterministic b) support loading from file: as well as jar:file: c) derive an RCPSimpleFilenameToStream resolver that gets used by the Toolbox Added b) in jar loading to util.SimpleFilenameToStream Created attachment 50 [details]
mylyn/context/zip
|
Summary: | Specs with no behavior specification don't work until you add and remove a behavior spec | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED WORKSFORME | ||
Severity: | major | CC: | simon |
Priority: | P2 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
In the Toolbox, create a new spec whose root module is ------ Test ------- ASSUME TRUE =========== Create a model and run TLC on it. The Toolbox claims that TLC produces the mysterious error %1%. Add the statement VARIABLE x but don't change the model. (It will still specify "no behavior specification".) Running TLC produces the error The configuration file did not specify the initial state predicate. In both these cases, the TLC Console shows that TLC found no error, and running TLC on the MC spec outside the Toolbox produces no error. Now add the definition Spec == x=0 /\ [][x'=x]_x to the module. Change the model to use Spec as the behavior specification. Then (without running TLC) select "No behavior Specification" and run the model. It runs fine. Delete Spec from the behavior specification field and select "No Behavior Specification". Again, the model runs fine. Delete the VARIABLE statement and the definition of Spec. Again the model runs fine. Correction: The error The configuration file did not specify the initial state predicate. actually was produced by TLC, even when running the MC file from outside the Toolbox. The problem seems to have gone away when I restarted the Toolbox. I can no longer produce it. |
Summary: | Toolbox not asking for approval to run TLC when spec has been modified | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLC Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: |
mylyn/context/zip
mylyn/context/zip |
If you tried to run a model after modifying the spec without saving the modifications, the Toolbox used to ask if you wanted to save those modifications. It no longer does, but it should. (You don't want to make a change, forget to save it, and then start a model running before going home for the weekend.) Fix released to HEAD Created attachment 70 [details]
mylyn/context/zip
Model editors should be saved implicitly. Only a dirty spec editor should raise a save dialog. Fix released to HEAD (Raise save dialog for dirty spec editor) Created attachment 76 [details]
mylyn/context/zip
|
Summary: | org.lamport.tla.toolbox.tool.tlc.output.source.TagBasedTLCOutputIncrementalParser does not scale for large output | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | lamport, simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Parsing ~70k lines of TLC output takes hours. Fixed and released to HEAD - Set VIRTUAL bit for coverage table to only create table items on demand - Group user content in console parser in a single token instead of a token per char (breaks incomplete line support though) - Buffer parser input up to complete lines (a complete has a line ending) Created attachment 53 [details]
mylyn/context/zip
|
Summary: | Improve keyboard experience | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
F11: Launch currently active model check F11 added Created attachment 56 [details]
mylyn/context/zip
|
Summary: | Turn tla2tool.jar into OSGi bundle | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | TLA Tools | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | ||
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
The Toolbox nests tla2tools.jar inside bundle org.lamport.tla.toolbox. This workaround requires an extra build cycle (manually triggering tlatoolbox's ant build) during development every time a change is done to tlatoolbox/. To avoid this overhead, tlatools should be turned into a first class OSGi citizen by converting it into a bundle. This adds no overhead to non-OSGi usage. Fix released to HEAD Created attachment 51 [details]
mylyn/context/zip
|
Summary: | Platform specific bundles [net/filesystem] missing in distribution | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | |||
Bug Blocks: | 157 | ||
Attachments: | mylyn/context/zip |
All distribution bundles on http://research.microsoft.com/en-us/um/people/lamport/tla/toolbox.html miss platform specific bundles for .net and .filesystem. This means that the toolbox will use the less efficient platform independent versions. .filesystem. has been added to the build. Marking as fixed. Tested on Mac, Win and Linux. Created attachment 86 [details]
mylyn/context/zip
|
Summary: | Obscure PlusCal translator's command-line options don't work from inside Toolbox | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Leslie Lamport <lamport> |
Component: | TLA Tools | Assignee: | Leslie Lamport <lamport> |
Status: | ASSIGNED --- | ||
Severity: | trivial | ||
Priority: | P5 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
The PlusCal translator options -spec, -myspec, -spec2, -myspec2, and -writeAST write the file AST.tla; the first four read that AST.tla file to perform the translation. This file is always written to and read from the directory from which the translator is run. The Toolbox runs the translator from some obscure directory somewhere, specifying the module name with a path. This works all right, except for the -writeAST, since the user presumably wants to see the AST.tla file. Not a big deal. Moreover, since these option were broken in Version 1.5 and work only with the -version 1.4 option, this bug is even less worth fixing. However, it's recorded here for future reference. If these options are ever made to work again, it would be a good idea to modify the translator to write the AST.tla file in the same directory as the module containing the algorithm. |
Summary: | Trace Explorer exploration fails with stack overflow | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | NEW --- | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Running a trace exploration on the FindOp error trace reveals a stack overflow in SANY. Reproduce: a) Model check FindOp with an invariant who causes an error trace (pc # "Done") b) Add <<delim, leftTok>> to error trace exploration and hit explore see tla2sany.drivers.Bug156TEStackOverflowTest.testFrontEndParse() for a test case showing this behavior. Created attachment 52 [details]
mylyn/context/zip
LL: "The two different errors depending on how much heap space SANY is given suggests that it might be caused by the Toolbox putting some sort of weirdness into the TE.tla file." TE.tla is written in org.lamport.tla.toolbox.tool.tlc.launch.TraceExplorerDelegate.buildForLaunch(ILaunchConfiguration, String, IProgressMonitor) starting in line #388. |
Summary: | Release Toolbox 1.3.2 or 1.4 | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.4 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Bug Depends on: | 111, 125, 154, 192, 193 | ||
Bug Blocks: |
This bug is intended as an umbrella bug for the next Toolbox release (it's either 1.3.2 or 1.4). Fix for bug #10 makes the comment on the website [0] obsolete. [0] http://research.microsoft.com/en-us/um/people/lamport/tla/toolbox.html#downloading Adding release stoppers Done already |
Summary: | Run distributed TLC from Toolbox | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
It should be possible to run the distributed TLC server instance from within the Toolbox. This makes it easier for user because they don't have to start the server process manually. Obviously it won't support larger experiments where the server and the toolbox have to be separated (e.g. network topology and/or hardware...). Fix released to HEAD |
Summary: | NPE in NewSpecWizard job | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
!ENTRY org.eclipse.core.jobs 4 2 2011-07-06 10:02:11.580 !MESSAGE An internal error occurred during: "NewSpecWizard job". !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument: at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73) at org.eclipse.core.runtime.Path.initialize(Path.java:577) at org.eclipse.core.runtime.Path.<init>(Path.java:163) at org.lamport.tla.toolbox.ui.handler.NewSpecHandler$1.run(NewSpecHandler.java:90) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Fix released to HEAD (check for valid rootfilename before running job) Created attachment 57 [details]
mylyn/context/zip
|
Summary: | java.lang.ArithmeticException: / by zero in Graph window when column value is 0 | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- |
!ENTRY org.eclipse.ui 4 0 2011-07-06 12:15:38.200 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ArithmeticException: / by zero) at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3515) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3164) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.lamport.tla.toolbox.Application.start(Application.java:42) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Caused by: java.lang.ArithmeticException: / by zero at org.lamport.tla.toolbox.tool.tlc.ui.editor.page.ResultPage$DataDisplay$1.paintControl(ResultPage.java:997) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:223) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Control.gtk_expose_event(Control.java:2783) at org.eclipse.swt.widgets.Composite.gtk_expose_event(Composite.java:701) at org.eclipse.swt.widgets.Canvas.gtk_expose_event(Canvas.java:167) at org.eclipse.swt.widgets.Shell.gtk_expose_event(Shell.java:1204) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1739) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4796) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4360) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8189) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1238) at org.eclipse.swt.internal.gtk.OS._gdk_window_process_updates(Native Method) at org.eclipse.swt.internal.gtk.OS.gdk_window_process_updates(OS.java:5366) at org.eclipse.swt.widgets.Control.update(Control.java:4755) at org.eclipse.swt.widgets.Shell.setVisible(Shell.java:2004) at org.eclipse.swt.widgets.Shell.open(Shell.java:1410) at org.lamport.tla.toolbox.tool.tlc.ui.editor.page.ResultPage$DataDisplay.run(ResultPage.java:1033) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) ... 23 more This occurs when trying to graph a column all of whose values are 0. Added a little hack to suppress the overflow. It also seems to suppress the graph, but it's not worth trying to fix that. |
Summary: | Serve TLCWorker via Java Webstart | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Making the TLCWorker app available via Java Webstart simplifies deployment in (user) scripts. Released to HEAD Created attachment 59 [details]
mylyn/context/zip
|
Summary: | Bootstrap JRE via Java Webstart | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | Windows | ||
Target Version: | --- |
On Windows systems the browser can be used to bootstrap a JRE. Accessing http://$TOOLBOX_HOST:10996/ will now automatically check for an installed JRE and prompt the user to install it if now JRE could be found. An initial search turns up empty for unattended installation (it's probably a security feature anyway) |
Summary: | NPE in SimpleFilenameToStream resolver when run from inside signed jar (required by web start) | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | simon |
Priority: | P3 | ||
Version: | 1.3 | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
java.lang.ExceptionInInitializerError at tlc2.tool.distributed.TLCWorker.main(TLCWorker.java:161) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.javaws.Launcher.executeApplication(Launcher.java:1804) at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1750) at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1512) at com.sun.javaws.Launcher.run(Launcher.java:130) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.NullPointerException at util.SimpleFilenameToStream.getInstallationBasePath(SimpleFilenameToStream.java:61) at util.SimpleFilenameToStream.<clinit>(SimpleFilenameToStream.java:45) ... 10 more Error: Failed to start worker at coconut for server coconut.local. null Fix released to HEAD (Lesson confirmed: never ever use File in your application, use InputStream instead) Created attachment 60 [details]
mylyn/context/zip
|
Summary: | Add custom system properties to TLCServer process launched from within Toolbox | ||
---|---|---|---|
Product: | TLA+ Toolbox | Reporter: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Component: | Core Component | Assignee: | Markus Alexander Kuppe <bugzilla.tlaplus.net> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | simon |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Target Version: | --- | ||
Attachments: | mylyn/context/zip |
Description
Markus Alexander Kuppe
|