Bug 2

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 ComponentAssignee: 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
Something can be added to the Results Page to indicate if the spec has changed since the last run of the model.  More difficult is figuring out a nice, simple interface to allow the user to look at the saved, read-only version of the spec files on which the model was run.  One possibility is to add to the Spec explorer an extra level to list, for each model, any modules that have changed since the model was last run.  Clicking on the module name would raise a read-lonly module editor on that module--with something in the tab indicating which model the module was saved for.

(Items 1 and 67 from todo.txt)
Comment 1 Simon Zambrovski 2009-11-18 13:38:27 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.
Comment 2 Dan Ricketts 2009-11-18 15:09:36 UTC
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.
Comment 3 Leslie Lamport 2009-11-19 02:56:39 UTC
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.
Comment 4 Leslie Lamport 2010-01-26 12:05:52 UTC
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.
Comment 5 Dan Ricketts 2010-06-15 12:08:53 UTC
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.

Bug 3

Summary: Add reporting of fingerprint collision probability
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2009-11-18 13:56:34 UTC
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

Bug 4

Summary: Cannot get the default VM install on Mac OS to run TLC
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Simon Zambrovski <simon>
Status: RESOLVED FIXED    
Severity: blocker CC: simon
Priority: P1    
Version: unspecified   
Hardware: x86 32-bit   
OS: Mac OS   
Target Version: ---

Description Dan Ricketts 2009-11-19 13:24:59 UTC
In TLCProcessJob, the method JavaRuntime.getDefaultVMInstall() returns null on Mac OS. A non-null value is required to run TLC.
Comment 1 Simon Zambrovski 2009-11-27 22:51:38 UTC
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
Comment 2 Simon Zambrovski 2009-11-27 23:01:00 UTC
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
Comment 3 Simon Zambrovski 2009-11-27 23:02:23 UTC
Another reference describing the same bug: http://www.eclipse.org/forums/index.php?t=msg&goto=495006&S=af54b9bdf2bc342a1f3154a501e149b5
Comment 4 Dan Ricketts 2009-11-28 16:13:07 UTC
I posted the message that you linked to in the last comment.
Comment 5 Simon Zambrovski 2009-12-16 16:36:20 UTC
Added the plugin dependency to 
org.eclipse.jdt.launching.macosx to enable Mac OSx support. Could 
someone try if it solved the problem?
Comment 6 Simon Zambrovski 2009-12-17 13:55:51 UTC
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.

Bug 5

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 HelpAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2009-11-19 15:01:30 UTC
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.
Comment 1 Dan Ricketts 2009-11-19 15:48:23 UTC
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.

Bug 6

Summary: The rename spec command does not behave properly
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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

Description Dan Ricketts 2009-11-19 16:09:23 UTC
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.
Comment 1 Dan Ricketts 2009-11-27 16:51:01 UTC
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.
Comment 2 Dan Ricketts 2009-11-27 16:51:03 UTC
Created attachment 2 [details]
mylyn/context/zip

Bug 7

Summary: Parsing errors in the MC file contain "Encountered ----" sometimes
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2009-11-25 15:09:36 UTC
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.
Comment 1 Leslie Lamport 2009-11-27 23:29:22 UTC
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.

Bug 8

Summary: Add module-editor line width preference
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Leslie Lamport 2009-11-30 02:10:38 UTC
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".
Comment 1 Simon Zambrovski 2009-11-30 11:54:50 UTC
The preference renaming is moved to the separate Bug 9.
Comment 2 Simon Zambrovski 2009-11-30 12:02:26 UTC
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.

Bug 9

Summary: Rename Preference Pages
Product: TLA+ Toolbox Reporter: Simon Zambrovski <simon>
Component: Core ComponentAssignee: 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

Description Simon Zambrovski 2009-11-30 11:55:46 UTC
Rename the items under TLA+ Preferences to remove "Preferences" from
their names -- e.g., change "TLA+ Parser Preferences" to "TLA+ Parser".
Comment 1 Dan Ricketts 2009-12-10 12:53:42 UTC
Created attachment 3 [details]
mylyn/context/zip

Bug 10

Summary: Eclipse buttons don't work on Linux ubuntu 9.10
Product: TLA+ Toolbox Reporter: Simon Zambrovski <simon>
Component: Core ComponentAssignee: 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:    

Description Simon Zambrovski 2009-11-30 17:16:33 UTC
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)
Comment 1 Dan Ricketts 2009-12-04 17:22:57 UTC
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?
Comment 2 Dan Ricketts 2009-12-10 12:44:31 UTC
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.
Comment 3 Dan Ricketts 2010-02-02 15:12:20 UTC
The trace explorer buttons for Explore and Restore seem to be affected by this bug.
Comment 4 Markus Alexander Kuppe 2011-05-11 16:45:40 UTC
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
Comment 5 Markus Alexander Kuppe 2011-07-01 20:08:42 UTC
The new Maven/Tycho based build has upgraded the toolbox dependency to Eclipse 3.6, marking as fixed.

Bug 11

Summary: Add the notion of a model being locked
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2009-11-30 18:18:27 UTC
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.
Comment 1 Dan Ricketts 2009-12-02 17:57:10 UTC
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.
Comment 2 Leslie Lamport 2009-12-02 23:38:13 UTC
This sounds good.
Comment 3 Dan Ricketts 2009-12-07 11:23:17 UTC
Should the user be able to rename the model when it is locked?
Comment 4 Leslie Lamport 2009-12-07 19:14:44 UTC
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.)

Bug 12

Summary: Toolbox checking unselected behavior spec options.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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

Description Leslie Lamport 2009-12-02 23:44:42 UTC
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.
Comment 1 Dan Ricketts 2009-12-03 00:10:14 UTC
I can't seem to reproduce this error. Can you send me the spec and model that caused this problem?
Comment 2 Dan Ricketts 2009-12-07 11:25:32 UTC
Since this does not seem to be reproducible, I'm marking it as worksforme.
Comment 3 Leslie Lamport 2009-12-21 02:39:24 UTC
Created attachment 4 [details]
a spec

see description
Comment 4 Leslie Lamport 2009-12-21 02:50:29 UTC
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.
Comment 5 Leslie Lamport 2009-12-21 16:01:12 UTC
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
Comment 6 Dan Ricketts 2010-01-27 15:40:14 UTC
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.

Bug 13

Summary: Trace exploration
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2009-12-07 11:22:48 UTC
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.
Comment 1 Dan Ricketts 2009-12-07 17:00:12 UTC
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.
Comment 2 Dan Ricketts 2009-12-07 17:30:49 UTC
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.
Comment 3 Dan Ricketts 2009-12-07 18:15:23 UTC
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?
Comment 4 Leslie Lamport 2009-12-07 19:57:57 UTC
   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.
Comment 5 Dan Ricketts 2010-01-27 11:43:23 UTC
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.

Bug 14

Summary: The column numbers do not appear in module editor
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: minor CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2009-12-07 13:53:32 UTC
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.
Comment 1 Dan Ricketts 2010-01-29 13:13:01 UTC
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.

Bug 15

Summary: Rename or deleting root file outside toolbox produces incorrect editor page
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLA+ EditorAssignee: 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: ---

Description Dan Ricketts 2009-12-10 14:49:24 UTC
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."
Comment 1 Dan Ricketts 2009-12-10 14:50:02 UTC
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.
Comment 2 Dan Ricketts 2010-03-19 15:44:47 UTC
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.
Comment 3 Markus Alexander Kuppe 2011-05-11 17:01:40 UTC
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)
Comment 4 Markus Alexander Kuppe 2011-05-11 17:02:38 UTC
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)

Bug 16

Summary: cygwin doesn't properly unzip the Windows executable
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2009-12-17 21:19:20 UTC
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"

Bug 17

Summary: tlatex translation not working?
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLATEX ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WORKSFORME    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2009-12-18 00:17:00 UTC
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.
Comment 1 Leslie Lamport 2009-12-23 19:48:21 UTC
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.

Bug 18

Summary: Modifying the Toolbox to handle pcal files.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA ToolsAssignee: 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    

Description Leslie Lamport 2009-12-18 00:28:08 UTC
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.
Comment 1 Leslie Lamport 2010-07-14 03:41:33 UTC
The plan for using pcal files has been abandoned, so this is moot.

Bug 19

Summary: Toolbox caches obsolete values on startup
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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

Description Leslie Lamport 2009-12-23 01:47:07 UTC
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?
Comment 1 Markus Alexander Kuppe 2011-05-29 13:11:25 UTC
Created attachment 36 [details]
stack trace

Bug 20

Summary: Model editor incorrectly reports that TLC is running
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: 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

Description Dan Ricketts 2010-01-18 15:59:18 UTC
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.
Comment 1 Dan Ricketts 2010-01-18 16:00:12 UTC
Created attachment 5 [details]
Root module for spec
Comment 2 Dan Ricketts 2010-01-18 16:00:44 UTC
Created attachment 6 [details]
toolbox directory containing the only model

Bug 21

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 ComponentAssignee: 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: ---

Description Dan Ricketts 2010-01-18 16:05:16 UTC
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.
Comment 1 Dan Ricketts 2010-01-18 16:06:24 UTC
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.
Comment 2 Dan Ricketts 2010-01-25 14:11:34 UTC
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.
Comment 3 Dan Ricketts 2010-01-28 16:58:54 UTC
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.

Bug 22

Summary: Help does not work on Mac
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ Toolbox HelpAssignee: 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

Description Leslie Lamport 2010-01-21 01:44:23 UTC
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.)
Comment 1 Dan Ricketts 2010-01-25 14:41:45 UTC
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.
Comment 2 Dan Ricketts 2010-01-28 12:56:47 UTC
The Help menu now has a Dynamic Help item.
Comment 3 Dan Ricketts 2010-01-28 12:56:49 UTC
Created attachment 11 [details]
mylyn/context/zip

Bug 23

Summary: Minor fixes to the Trace Explorer Window
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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

Description Leslie Lamport 2010-01-21 02:10:21 UTC
- 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.
Comment 1 Dan Ricketts 2010-01-22 13:19:36 UTC
Help button has been added.
Comment 2 Dan Ricketts 2010-01-22 17:46:42 UTC
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.
Comment 3 Dan Ricketts 2010-01-22 17:46:43 UTC
Created attachment 9 [details]
mylyn/context/zip

Bug 24

Summary: Parsing an unsaved file
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: 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

Description Leslie Lamport 2010-01-21 18:40:01 UTC
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".
Comment 1 Dan Ricketts 2010-01-25 10:38:52 UTC
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.
Comment 2 Dan Ricketts 2010-01-25 10:41:50 UTC
In the dialog that asks if you want to save the modified resources, clicking "No" has the same effect as clicking "Yes".
Comment 3 Dan Ricketts 2010-01-25 12:28:50 UTC
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".
Comment 4 Dan Ricketts 2010-01-26 11:28:29 UTC
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.
Comment 5 Dan Ricketts 2010-01-26 11:28:31 UTC
Created attachment 10 [details]
mylyn/context/zip

Bug 25

Summary: Minor problem with value display in TLC Error Trace view
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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

Description Leslie Lamport 2010-01-22 00:58:20 UTC
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.
Comment 1 Dan Ricketts 2010-01-22 13:52:58 UTC
Created attachment 8 [details]
mylyn/context/zip

Bug 26

Summary: Elements with multiple lines do not display properly in trace viewer
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: 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

Description Dan Ricketts 2010-01-22 01:03:52 UTC
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.
Comment 1 Leslie Lamport 2010-01-22 01:22:34 UTC
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?
Comment 2 Dan Ricketts 2010-01-22 11:02:03 UTC
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.
Comment 3 Dan Ricketts 2010-01-22 13:18:00 UTC
Multi-line expressions are now displayed as a single line in the Name column.
Comment 4 Dan Ricketts 2010-01-22 13:18:02 UTC
Created attachment 7 [details]
mylyn/context/zip

Bug 27

Summary: Extra menu for the toolbox on Mac
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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

Description Dan Ricketts 2010-01-25 12:56:22 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-08-25 14:00:10 UTC
Fixed in HEAD
Comment 2 Markus Alexander Kuppe 2011-08-25 14:00:11 UTC
Created attachment 104 [details]
mylyn/context/zip

Bug 28

Summary: Use of model values
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 14:51:06 UTC
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.

Bug 29

Summary: PlusCal translator errors do not disappear
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: normal CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 14:54:45 UTC
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.)

Bug 30

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 ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: minor CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 14:56:08 UTC
The Definitions Override menu allows the user to override the same definition multiple times.

Bug 31

Summary: Parsing spec command gets disabled
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: major CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Dan Ricketts 2010-01-25 14:58:00 UTC
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.

Bug 32

Summary: Closing the toolbox simply kills any running TLC
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 14:59:52 UTC
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.

Bug 33

Summary: PlusCal translation needs to be reimplemented to handle .pcal files
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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:    

Description Dan Ricketts 2010-01-25 15:02:15 UTC
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.)
Comment 1 Leslie Lamport 2010-02-03 10:28:07 UTC
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.
Comment 2 Leslie Lamport 2010-03-01 23:59:21 UTC
The plan to use .pcal files has been abandoned as a bad idea.

Bug 34

Summary: Reset window layout produces blank window in welcome perspective
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: minor CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Dan Ricketts 2010-01-25 15:04:42 UTC
If I select window / reset window layout in the Welcome Perspective, it produces a blank window instead of the Welcome View.
Comment 1 Dan Ricketts 2010-07-01 11:49:27 UTC
We should just disable the reset window command.

Bug 35

Summary: Module editor keybindings
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 15:05:58 UTC
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.

Bug 36

Summary: Option to add lists of weakly and strongly fair actions
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WONTFIX    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 15:07:34 UTC
Enhance the Init/Next method of writing the spec to add lists of weakly and strongly fair actions.
Comment 1 Markus Alexander Kuppe 2011-05-17 16:35:00 UTC
LL Comment: Now that the user can specify fairness with PlusCal, this seems unnecessary.

Bug 37

Summary: Change default for making a set of model values typed or untyped
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P2    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 15:10:01 UTC
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.
Comment 1 Simon Zambrovski 2010-01-25 15:54:58 UTC
The reason of the default setting being "typed" is because we want people to use typed sets instead of untyped sets.

Bug 38

Summary: Import Existing spec option behaves incorrectly when .toolbox directory does not exist
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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: ---

Description Dan Ricketts 2010-01-25 15:16:38 UTC
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.
Comment 1 Leslie Lamport 2011-08-17 21:24:04 UTC
It has been forgotten about.

Bug 39

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 ComponentAssignee: 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

Description Dan Ricketts 2010-01-25 15:18:45 UTC
When the user clicks on File/Open 
Module/Choose TLA+ Module, the file browser that pops up should show the
 specification's directory.
Comment 1 Simon Zambrovski 2010-01-25 15:57:08 UTC
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...
Comment 2 Dan Ricketts 2010-01-25 16:00:51 UTC
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.
Comment 3 Leslie Lamport 2010-02-02 19:08:54 UTC
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.
Comment 4 Dan Ricketts 2010-02-03 14:17:30 UTC
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.
Comment 5 Dan Ricketts 2010-02-03 14:17:32 UTC
Created attachment 13 [details]
mylyn/context/zip

Bug 40

Summary: TLC's liveness checking in simulation mode is buggy
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLA ToolsAssignee: Leslie Lamport <lamport>
Status: RESOLVED FIXED    
Severity: normal CC: bugzilla.tlaplus.net
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 15:20:25 UTC
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.
Comment 1 Markus Alexander Kuppe 2015-04-27 11:54:45 UTC
Fixed

Bug 41

Summary: Model editor does not remove some error messages on user input
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-01-25 15:24:54 UTC
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".

Bug 42

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+ EditorAssignee: 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: ---

Description Dan Ricketts 2010-01-27 11:37:52 UTC
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.

Bug 43

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 ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Mac OS   
Target Version: ---

Description Dan Ricketts 2010-01-28 17:03:00 UTC
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.
Comment 1 Dan Ricketts 2010-07-01 11:52:24 UTC
This only occurs on mac OS. I spent some time trying to figure out why this occurs, but was unsuccessful.

Bug 44

Summary: Drag-and-drop in module editor?
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-01-29 08:36:21 UTC
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.

Bug 45

Summary: The toolbox program file is not being set to be executable.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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: ---

Description Leslie Lamport 2010-01-30 22:08:47 UTC
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.
Comment 1 Dan Ricketts 2010-02-02 13:27:04 UTC
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.
Comment 2 Dan Ricketts 2010-02-02 13:30:35 UTC
This is a discussion on the same topic:

http://www.eclipse.org/forums/index.php?t=msg&goto=373468&
Comment 3 Dan Ricketts 2010-02-02 13:41:37 UTC
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?
Comment 4 Dan Ricketts 2010-02-02 15:30:40 UTC
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.

Bug 46

Summary: Validating the model deletes the contents of MC.out
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: normal CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-02-01 13:06:55 UTC
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.
Comment 1 Dan Ricketts 2010-02-04 17:27:26 UTC
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?
Comment 2 Simon Zambrovski 2010-02-05 00:08:50 UTC
You are right. Running validateion in general means regeneration of the MC files. Which means that the MC.out file is obsolete.
Comment 3 Dan Ricketts 2010-02-05 15:10:41 UTC
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.

Bug 47

Summary: Automatically add last updated comment to end of module
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-02-01 15:47:17 UTC
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 ... ?

Bug 48

Summary: Load all spec modules at once
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P5    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-02-01 15:48:46 UTC
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?
Comment 1 Leslie Lamport 2010-02-03 16:36:46 UTC
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.

Bug 49

Summary: Goto definition feature not opening new module editor when it should.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: 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

Description Leslie Lamport 2010-02-02 13:40:52 UTC
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
Comment 1 Dan Ricketts 2010-02-24 14:11:24 UTC
The ID used for opening the editor was wrong.
Comment 2 Dan Ricketts 2010-02-24 14:11:27 UTC
Created attachment 17 [details]
mylyn/context/zip

Bug 50

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 ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-02-02 14:10:11 UTC
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.
Comment 1 Dan Ricketts 2010-02-03 16:15:04 UTC
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.

Bug 51

Summary: Running trace explorer does not disable running of the model checker
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: normal CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-02-02 14:40:51 UTC
Running the trace explorer should disable 
running of the model checker on the same model because both operations 
work on the same directory.

Bug 52

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 ComponentAssignee: 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

Description Dan Ricketts 2010-02-02 15:15:29 UTC
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.
Comment 1 Dan Ricketts 2010-02-03 15:38:27 UTC
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.
Comment 2 Dan Ricketts 2010-02-03 15:38:28 UTC
Created attachment 14 [details]
mylyn/context/zip

Bug 53

Summary: Go-to definition/declaration does not work for non-spec modules
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLA+ EditorAssignee: 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

Description Dan Ricketts 2010-02-02 15:28:04 UTC
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.
Comment 1 Dan Ricketts 2010-02-02 15:31:30 UTC
Created attachment 12 [details]
mylyn/context/zip
Comment 2 Dan Ricketts 2010-07-01 11:55:36 UTC
According to Leslie, this is fixed as much as it's going to be.

Bug 54

Summary: Default for Save As browser should be Browse Folders
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WORKSFORME    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-02-02 19:17:23 UTC
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.
Comment 1 Dan Ricketts 2010-02-02 19:35:53 UTC
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?

Bug 55

Summary: Feature needed for handling many specs
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-02-03 08:27:19 UTC
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.
Comment 1 Dan Ricketts 2010-02-03 08:58:19 UTC
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.
Comment 2 Dan Ricketts 2010-04-13 20:00:31 UTC
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.

Bug 56

Summary: Feature needed for controlling disk space usage
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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 2010-02-03 08:47:34 UTC
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.

Bug 57

Summary: Minor bug in Spec Explorer: permits operations on models of unopened spec
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-02-03 08:59:52 UTC
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.

Bug 58

Summary: Renaming a spec does not change model configuration file names
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: 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

Description Dan Ricketts 2010-02-03 14:40:39 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-07-15 19:19:28 UTC
Fixed in HEAD
Comment 2 Markus Alexander Kuppe 2011-07-15 19:19:31 UTC
Created attachment 71 [details]
mylyn/context/zip

Bug 59

Summary: Trace Explorer getting wedged (plus minor bug)
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-02-04 16:12:31 UTC
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.
Comment 1 Dan Ricketts 2010-02-04 16:28:35 UTC
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).
Comment 2 Dan Ricketts 2010-02-04 17:25:26 UTC
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.
Comment 3 Dan Ricketts 2010-02-05 15:07:38 UTC
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.
Comment 4 Dan Ricketts 2010-02-05 15:08:38 UTC
MC_TE.out is created by attaching a sink to
 the process output sink for TLC runs. The class is 
TraceExplorerTraceSourceOutputSink.

Bug 60

Summary: Trace Explorer's TE.tla file has entries in wrong order
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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

Description Leslie Lamport 2010-02-04 16:17:15 UTC
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.
Comment 1 Dan Ricketts 2010-02-04 16:41:46 UTC
Created attachment 15 [details]
mylyn/context/zip

Bug 61

Summary: Hiding of variables in Trace Explorer
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-02-04 16:24:10 UTC
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.
Comment 1 Simon Zambrovski 2010-02-05 00:12:19 UTC
I would add a filter (JFace Viwers support filters), which can be activated using a view-action.

Bug 62

Summary: Build custom about dialog
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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: ---

Description Dan Ricketts 2010-02-04 16:45:37 UTC
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.
Comment 1 Simon Zambrovski 2010-02-05 00:10:35 UTC
In general, the About dialog is 
customizable. I read somewhere about it. I suppose it is set up using 
the plugin_customization.ini.

Bug 63

Summary: Change order of trace explorer variables in trace viewer
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-02-04 16:56:19 UTC
The trace explorer variables should appear before other variables in the order in which the user entered the expressions.
Comment 1 Leslie Lamport 2010-07-14 03:25:07 UTC
Dan apparently fixed this months ago.

Bug 64

Summary: Constant expression evaluation shows up in User Output on linux
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: normal CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Linux   
Target Version: ---

Description Dan Ricketts 2010-02-05 16:11:41 UTC
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.
Comment 1 Dan Ricketts 2010-02-05 16:15:19 UTC
This also occurs on mac.

Bug 66

Summary: Clicking on module location jumps to PDF viewer sometimes
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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

Description Dan Ricketts 2010-02-18 00:29:11 UTC
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.
Comment 1 Dan Ricketts 2010-02-18 10:59:12 UTC
Created attachment 16 [details]
mylyn/context/zip

Bug 67

Summary: Problem with printing of invariant when it is violated.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: minor CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-01 23:47:38 UTC
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.

Bug 68

Summary: Set defaults for PlusCal algorithms
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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 2010-03-01 23:58:04 UTC
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.

Bug 69

Summary: Toolbox confused about directories.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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: ---

Description Leslie Lamport 2010-03-02 17:24:10 UTC
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.
Comment 1 Leslie Lamport 2010-03-02 17:28:37 UTC
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.

Bug 70

Summary: Save dirty editor prior to execution - PlusCal preference and Save on Run TLC option
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-04 07:28:27 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-05-17 16:30:28 UTC
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, 
....)
Comment 2 Markus Alexander Kuppe 2011-07-14 17:26:47 UTC
The second part of this bug in now tracked in bug #150.

Bug 71

Summary: Make it easier to clone a model
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-05 03:29:31 UTC
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.

Bug 72

Summary: Inconvenience in using TLA2TeX
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-05 17:47:09 UTC
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.)
Comment 1 Markus Alexander Kuppe 2011-05-17 14:10:35 UTC
Might be related to bug #117

Bug 73

Summary: TLC not reporting anything useful on a stack overflow
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA ToolsAssignee: Leslie Lamport <lamport>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-10 04:05:54 UTC
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.
Comment 1 Leslie Lamport 2010-03-13 03:54:37 UTC
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.

Bug 74

Summary: Toolbox does not report violated invariant
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: 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

Description Dan Ricketts 2010-03-12 20:34:31 UTC
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).
Comment 1 Markus Alexander Kuppe 2011-05-17 14:32:57 UTC
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.

Bug 75

Summary: Allow examining a locked TLC model.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-13 16:04:17 UTC
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.
Comment 1 Dan Ricketts 2010-03-18 10:34:03 UTC
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.

Bug 76

Summary: Browse button on new spec menu not working
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WORKSFORME    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-03-24 23:34:22 UTC
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.
Comment 1 Dan Ricketts 2010-03-25 16:01:19 UTC
I can't reproduce this. Is there anything worth noting that gets printed to the console when this happens?
Comment 2 Leslie Lamport 2010-03-26 19:17:08 UTC
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.

Bug 77

Summary: Model Editor unusable when checkpoints folder is large
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: TLC ComponentAssignee: 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

Description Dan Ricketts 2010-03-29 17:26:46 UTC
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.
Comment 1 Dan Ricketts 2010-05-05 11:59:16 UTC
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.
Comment 2 Dan Ricketts 2010-05-05 11:59:18 UTC
Created attachment 20 [details]
mylyn/context/zip

Bug 78

Summary: Non-automatic parsing locks UI
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: 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: ---

Description Dan Ricketts 2010-03-30 12:36:56 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-05-11 15:19:20 UTC
*** This bug has been marked as a duplicate of bug 103 ***

Bug 79

Summary: Add new TLC parameter Maximum Fingerprint Memory Size
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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:    

Description Leslie Lamport 2010-04-07 00:41:12 UTC
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.
Comment 1 Leslie Lamport 2010-04-07 20:21:46 UTC
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.)

Bug 80

Summary: trace explorer doesn't work on trace of length 1
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: minor CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-04-11 18:19:23 UTC
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.)
Comment 1 Leslie Lamport 2010-07-14 03:35:46 UTC
This now appears to work.  I presume Dan fixed it without marking the bug report as resolved.

Bug 81

Summary: Bad behavior of model-editor page with long Invariants and Properties.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: normal CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-04-11 19:39:29 UTC
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.
Comment 1 Dan Ricketts 2010-07-01 12:06:18 UTC
I suggest preventing the widgets from expanding and adding a scroll bar.

Bug 82

Summary: Toolbox crashed by out-of-memory exception
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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

Description Leslie Lamport 2010-04-26 18:23:28 UTC
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
Comment 1 Dan Ricketts 2010-04-26 19:11:42 UTC
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.
Comment 2 Leslie Lamport 2010-04-26 19:37:03 UTC
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.
Comment 3 Dan Ricketts 2010-04-26 20:11:28 UTC
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.
Comment 4 Leslie Lamport 2010-04-26 21:17:26 UTC
Created attachment 19 [details]
the files

I think I finally figured out how to attach this.
Comment 5 Leslie Lamport 2010-04-26 21:19:01 UTC
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.)
Comment 6 Simon Zambrovski 2010-04-26 22:30:35 UTC
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.
Comment 7 Leslie Lamport 2010-04-26 22:55:14 UTC
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.
Comment 8 Simon Zambrovski 2010-04-26 23:13:47 UTC
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.
Comment 9 Dan Ricketts 2010-04-27 12:48:09 UTC
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.
Comment 10 Dan Ricketts 2010-04-27 12:53:42 UTC
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.
Comment 11 Dan Ricketts 2010-04-27 13:20:11 UTC
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.
Comment 12 Leslie Lamport 2010-04-27 16:23:58 UTC
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.
Comment 13 Dan Ricketts 2010-04-30 10:39:08 UTC
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.
Comment 14 Dan Ricketts 2010-07-01 12:08:39 UTC
I've fixed the two memory leaks that I noticed, so this is at least partially fixed.

Bug 83

Summary: Renumber proof command does not work for non theorem nodes
Product: TLA+ Toolbox Reporter: Dan Ricketts <daniel.bmore.ricketts>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Dan Ricketts 2010-06-02 12:47:54 UTC
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.

Bug 86

Summary: Goto Declaration not working with subexpression names
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Leslie Lamport <lamport>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-07-14 03:21:12 UTC
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.
Comment 1 Leslie Lamport 2010-10-01 08:37:36 UTC
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".)

Bug 87

Summary: Toolbox will not raise TLAPM console if TLC console has been raised.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WONTFIX    
Severity: normal CC: simon
Priority: P4    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-08-21 02:59:01 UTC
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.
Comment 1 Dan Ricketts 2010-08-22 17:29:02 UTC
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.
Comment 2 Markus Alexander Kuppe 2011-05-17 16:36:08 UTC
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.

Bug 88

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+ EditorAssignee: Leslie Lamport <lamport>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P5    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-09-02 03:40:17 UTC
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.
Comment 1 Leslie Lamport 2010-09-14 08:37:06 UTC
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).
Comment 2 Leslie Lamport 2010-09-14 12:41:15 UTC
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.
Comment 3 Leslie Lamport 2010-09-17 10:52:02 UTC
Note: Goto Declaration, etc. don't work on a symbol formed with a parameterized instantiation--e.g., I(exp)!Foo.
Comment 4 Leslie Lamport 2010-10-01 08:38:33 UTC
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".)

Bug 89

Summary: Show Uses (F6) not working.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-09-16 12:05:05 UTC
I don't know what happened, but it's perhaps not a coincidence that this appeared after I partiallly fixed bug 88.
Comment 1 Leslie Lamport 2010-09-17 10:32:50 UTC
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.

Bug 90

Summary: Performance problem reading any non-trivial amount of TLC output
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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

Description Leslie Lamport 2010-10-01 08:52:12 UTC
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.
Comment 1 Leslie Lamport 2010-10-01 15:42:16 UTC
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.
Comment 2 Leslie Lamport 2010-10-01 16:13:43 UTC
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.)
Comment 3 Markus Alexander Kuppe 2011-05-30 13:11:52 UTC
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.
Comment 4 Markus Alexander Kuppe 2011-05-30 13:12:11 UTC
Created attachment 38 [details]
spec
Comment 5 Markus Alexander Kuppe 2011-07-01 20:16:41 UTC
I assume all issues mentioned in this bug report have been solved by fix for bug #151

*** This bug has been marked as a duplicate of bug 151 ***

Bug 91

Summary: Sany error not being reported by the toolbox.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-10-15 18:03:41 UTC
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'
================
Comment 1 Leslie Lamport 2010-10-17 17:52:01 UTC
Fixed by change to ModuleParserLauncher.findLineAndColumn.

Bug 92

Summary: Launch Prover command does not check if module has been saved.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA+ EditorAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2010-12-14 04:01:50 UTC
As it says, the Launch Prover command (Ctl+G Ctl+P) does not check if the module has been saved.  It should.
Comment 1 Leslie Lamport 2010-12-14 19:26:46 UTC
Fixed by copying some code from the other commands.

Bug 93

Summary: Characters produced by alt + number key cannot be entered from keyboard
Product: TLA+ Toolbox Reporter: Vidar <vidar_slatten>
Component: TLA+ EditorAssignee: 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: ---

Description Vidar 2010-12-20 11:28:49 UTC
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
Comment 1 Leslie Lamport 2011-01-13 17:26:23 UTC
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.

Bug 94

Summary: Toolbox can't deal with long prover console output.
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2011-02-08 01:30:56 UTC
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)
Comment 1 Dan Ricketts 2011-02-08 06:34:32 UTC
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.
Comment 2 Leslie Lamport 2011-02-08 21:19:36 UTC
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.

Bug 95

Summary: Toolbox displaying only a tiny piece of a TLC error message (and missing feature)
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: NEW ---    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2011-03-11 01:21:17 UTC
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).
Comment 1 Leslie Lamport 2011-03-11 20:42:02 UTC
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.
Comment 2 Leslie Lamport 2011-03-13 18:21:52 UTC
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.
Comment 3 Markus Alexander Kuppe 2011-05-17 16:34:01 UTC
Related to bug #7

Bug 96

Summary: Print output not shown in Evaluate Constant Expression
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2011-03-11 01:48:54 UTC
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.
Comment 1 Leslie Lamport 2011-03-11 03:04:14 UTC
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.
Comment 2 Leslie Lamport 2011-03-11 03:22:32 UTC
I moved the appropriate TLC code and it seems to have fixed the problem.

Bug 97

Summary: Toolbox not reporting invariant violation
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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
...

Description Leslie Lamport 2011-03-22 03:06:04 UTC
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 }
----

----
Comment 1 Leslie Lamport 2011-03-22 03:07:14 UTC
Created attachment 21 [details]
Source file
Comment 2 Leslie Lamport 2011-03-22 03:07:45 UTC
Created attachment 22 [details]
The MC.out file
Comment 3 Leslie Lamport 2011-03-22 03:08:18 UTC
Created attachment 23 [details]
guess what
Comment 4 Leslie Lamport 2011-03-22 03:08:47 UTC
Created attachment 24 [details]
you'll never guess
Comment 5 Leslie Lamport 2011-03-22 03:09:22 UTC
Created attachment 25 [details]
...
Comment 6 Leslie Lamport 2011-03-22 03:11:09 UTC
How nice, the attached files are all comments.  Very helpful.  But they're now there.
Comment 7 Leslie Lamport 2011-03-22 03:24:16 UTC
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.

Bug 98

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 ComponentAssignee: 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

Description Chris Newcombe 2011-04-03 20:39:29 UTC
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.
Comment 1 Leslie Lamport 2011-04-09 21:18:18 UTC
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.
Comment 2 Markus Alexander Kuppe 2015-02-23 11:34:44 UTC
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.
Comment 3 Markus Alexander Kuppe 2015-03-05 09:02:57 UTC
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.
Comment 4 Markus Alexander Kuppe 2015-03-18 18:25:22 UTC
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.
Comment 5 Markus Alexander Kuppe 2015-03-20 16:41:13 UTC
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)
Comment 6 Markus Alexander Kuppe 2015-05-12 13:55:45 UTC
Fixed with 1.5.0
Comment 7 Markus Alexander Kuppe 2015-10-06 06:53:59 UTC
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

Bug 100

Summary: Toolbox in confused state after system restart during model-checking
Product: TLA+ Toolbox Reporter: Chris Newcombe <chris.newcombe>
Component: TLC ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WONTFIX    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Windows   
Target Version: ---

Description Chris Newcombe 2011-04-03 20:45:54 UTC
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.
Comment 1 Leslie Lamport 2011-04-07 20:12:20 UTC
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.

Bug 101

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 ComponentAssignee: Dan Ricketts <daniel.bmore.ricketts>
Status: RESOLVED WORKSFORME    
Severity: normal CC: simon
Priority: P2    
Version: unspecified   
Hardware: All   
OS: Windows   
Target Version: ---

Description Leslie Lamport 2011-04-07 20:14:38 UTC
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(...).

Bug 102

Summary: Incorrect links in displayed PlusCal translator error message
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: Core ComponentAssignee: 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

Description Leslie Lamport 2011-04-17 21:35:32 UTC
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.
Comment 1 Leslie Lamport 2011-04-17 21:36:59 UTC
Created attachment 26 [details]
this is a tla file
Comment 2 Leslie Lamport 2013-06-11 10:44:20 UTC
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.

Bug 103

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+ EditorAssignee: 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: ---

Description Markus Alexander Kuppe 2011-05-04 14:28:38 UTC
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.
Comment 1 Simon Zambrovski 2011-05-06 20:59:28 UTC
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.
Comment 2 Markus Alexander Kuppe 2011-05-11 15:19:20 UTC
*** Bug 78 has been marked as a duplicate of this bug. ***
Comment 3 Markus Alexander Kuppe 2011-06-27 13:25:07 UTC
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)
Comment 4 Markus Alexander Kuppe 2011-06-30 11:03:02 UTC
org.lamport.tla.toolbox.tool.tlc.traceexplorer.TraceExplorerComposite.doExplore()
Comment 5 Markus Alexander Kuppe 2011-07-01 19:58:47 UTC
org.lamport.tla.toolbox.tool.tlc.ui.modelexplorer.CloneModelContributionItem.getContributionItems()
Comment 6 Markus Alexander Kuppe 2011-07-01 19:59:05 UTC
*** Bug 137 has been marked as a duplicate of this bug. ***
Comment 7 Markus Alexander Kuppe 2011-07-01 20:17:57 UTC
*** Bug 110 has been marked as a duplicate of this bug. ***
Comment 8 Markus Alexander Kuppe 2011-07-01 20:18:10 UTC
org.lamport.tla.toolbox.tool.tla2tex.handler.ProducePDFHandler.execute(ExecutionEvent)

Bug 104

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 ToolsAssignee: 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

Description Markus Alexander Kuppe 2011-05-09 10:14:35 UTC
org.lamport.tla.toolbox.* bundles use Java5 API but their BREE is set to Java 1.4.
Comment 1 Markus Alexander Kuppe 2011-05-09 10:18:14 UTC
BREE has been set to Java 1.5
Comment 2 Markus Alexander Kuppe 2011-05-09 10:18:16 UTC
Created attachment 27 [details]
mylyn/context/zip

Bug 105

Summary: org.lamport.tla.toolbox.tool.prover uses Java 1.6 API
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: TLA ToolsAssignee: 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

Description Markus Alexander Kuppe 2011-05-09 10:23:53 UTC
java.lang.String.isEmpty() is not avaiable in Java 5
Comment 1 Markus Alexander Kuppe 2011-05-09 10:34:39 UTC
Fix released by replacing isEmpty() with length() == 0
Comment 2 Markus Alexander Kuppe 2011-05-09 10:34:40 UTC
Created attachment 28 [details]
mylyn/context/zip

Bug 106

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 ToolsAssignee: 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

Description Markus Alexander Kuppe 2011-05-09 12:29:50 UTC
Both bundles may _optionally_ depend on 
package "junit.framework" to satisfy the build time dependency but allow
 Junits absence at runtime.
Comment 1 Markus Alexander Kuppe 2011-05-09 12:45:16 UTC
Fix released
Comment 2 Markus Alexander Kuppe 2011-05-09 12:45:17 UTC
Created attachment 29 [details]
mylyn/context/zip

Bug 107

Summary: Distributed TLC based on RMI broken
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-09 12:46:48 UTC
Refactorings broke the RMI based distributed version of TLC.
Comment 1 Markus Alexander Kuppe 2011-05-09 12:51:27 UTC
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.
Comment 2 Simon Zambrovski 2011-05-09 21:39:39 UTC
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.
Comment 3 Markus Alexander Kuppe 2011-05-31 11:37:51 UTC
Fixed in HEAD (more performance tests pending)

Bug 108

Summary: Add framework to run automated UI tests
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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:    

Description Markus Alexander Kuppe 2011-05-11 15:15:33 UTC
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/
Comment 1 Markus Alexander Kuppe 2011-05-31 11:40:20 UTC
Framework released to HEAD

Bug 109

Summary: Automatically detect pdflatex on the system
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 15:36:18 UTC
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

Bug 110

Summary: "Produce PDF Version" handler executes PDF generation on the UI thread
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED DUPLICATE    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 15:38:21 UTC
Canceling a long or stuck operation is impossible since the buttons don't work.
Comment 1 Markus Alexander Kuppe 2011-07-01 20:15:16 UTC
org.lamport.tla.toolbox.tool.tla2tex.PDFHandlerThreadingTest has been added as a test case, though not activated yet.
Comment 2 Markus Alexander Kuppe 2011-07-01 20:17:57 UTC
*** This bug has been marked as a duplicate of bug 103 ***

Bug 111

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 ComponentAssignee: 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    

Description Markus Alexander Kuppe 2011-05-11 16:12:00 UTC
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)
Comment 1 Markus Alexander Kuppe 2011-05-17 16:35:58 UTC
See bug# 82 (same code area)
Comment 2 Markus Alexander Kuppe 2011-07-18 13:04:17 UTC
Fixed by bug #116

Bug 112

Summary: Open spec wizard accepts specs with illegal names
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-11 16:13:10 UTC
Add a marker to the new spec wizard forbidding illegal names (like -)
Comment 1 Markus Alexander Kuppe 2011-05-31 11:41:08 UTC
Fixed in HEAD, verified on Mac, Windows XP, Linux
Comment 2 Markus Alexander Kuppe 2011-05-31 11:41:09 UTC
Created attachment 40 [details]
mylyn/context/zip

Bug 113

Summary: Toolbox does not shut down gracefully with model checks still running
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 16:15:34 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-05-11 17:03:45 UTC
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)
Comment 2 Markus Alexander Kuppe 2011-05-12 08:48:22 UTC
!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
Comment 3 Markus Alexander Kuppe 2011-05-18 12:42:46 UTC
!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)
Comment 4 Markus Alexander Kuppe 2011-05-19 18:50:03 UTC
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)
Comment 5 Markus Alexander Kuppe 2011-05-19 18:50:20 UTC
!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)

Bug 114

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 ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 16:24:25 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-05-11 16:25:17 UTC
!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

Bug 115

Summary: Open .tla from the system by double clicking in TLA Toolbox
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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:    

Description Markus Alexander Kuppe 2011-05-11 16:34:07 UTC
This feature has been added with Eclipse 3.6 (Helios release) [0].

[0] https://bugs.eclipse.org/4922
Comment 1 Markus Alexander Kuppe 2011-08-04 09:57:33 UTC
See Eclipse bug https://bugs.eclipse.org/4922

Bug 116

Summary: Upgrade to recent Eclipse RCP version
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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    

Description Markus Alexander Kuppe 2011-05-11 16:45:13 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-07-18 10:15:22 UTC
Fixed a while ago with the introduction of an automated build

Bug 117

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 ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: minor CC: simon
Priority: P4    
Version: unspecified   
Hardware: All   
OS: Windows   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 16:51:24 UTC
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.

Bug 118

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 ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: enhancement CC: simon
Priority: P3    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 16:55:52 UTC

    
Comment 1 Markus Alexander Kuppe 2011-05-17 16:31:11 UTC
LL comment: Even go further and do not show the translation button unless the current spec contains a PlusCal spec.

Bug 119

Summary: German keyboard layout does not match ASCII values
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: TLA+ EditorAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: normal CC: simon
Priority: P4    
Version: 1.3   
Hardware: All   
OS: Mac OS   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-11 19:08:34 UTC
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."

Bug 120

Summary: Automated product build
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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    

Description Markus Alexander Kuppe 2011-05-12 13:32:11 UTC
TLA+ Toolbox currently is build manually from inside the development environment. A headless build should replace this task.
Comment 1 Markus Alexander Kuppe 2011-05-31 11:41:32 UTC
Fix released to SVN

run "mvn install" in the tla2-inria/ folder to build products

Bug 121

Summary: Renaming spec broken, causing inconsistent projects even after Toolbox restart
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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:    

Description Markus Alexander Kuppe 2011-05-17 16:39:21 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-07-14 18:57:23 UTC
Is a spec rename even supposed to change the name of the root .tla file as well as the module name inside?
Comment 2 Markus Alexander Kuppe 2011-07-18 11:20:31 UTC
Fixed in HEAD

Bug 122

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 ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: normal CC: simon
Priority: P3    
Version: unspecified   
Hardware: x86 64-bit   
OS: Linux   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-18 08:22:30 UTC
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).
Comment 1 Markus Alexander Kuppe 2011-05-18 08:46:14 UTC
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.

Bug 123

Summary: Statusline should indicate "unparsed" state on dirty editor
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-18 08:30:32 UTC
"[...] 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)
Comment 1 Markus Alexander Kuppe 2011-05-18 08:37:55 UTC
"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)
Comment 2 Markus Alexander Kuppe 2011-05-18 09:41:28 UTC
Created attachment 30 [details]
Protocol Bernhard Schildendorfer

see page 4 to 5
Comment 3 Markus Alexander Kuppe 2011-05-18 09:49:39 UTC
Created attachment 31 [details]
Report Bernd Wittman

see page 2

Bug 124

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-18 08:36:40 UTC
"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.
Comment 1 Markus Alexander Kuppe 2011-05-18 09:51:06 UTC
Created attachment 32 [details]
Report Silvia Straihammer

Bug 125

Summary: Toolbox fails to detect default VM installation on first run
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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    

Description Markus Alexander Kuppe 2011-05-19 18:52:07 UTC
It has been reported, that the Toolbox fails to start if not installed into Applications/. Verification pending...
Comment 1 Markus Alexander Kuppe 2011-06-10 18:51:54 UTC
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
Comment 2 Markus Alexander Kuppe 2011-06-10 18:59:44 UTC
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)
Comment 3 Markus Alexander Kuppe 2011-06-10 19:01:15 UTC
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.
Comment 4 Markus Alexander Kuppe 2011-06-22 16:10:09 UTC
If bundle "org.eclipse.jdt.launching.macosx" is missing, eclipse fails to detect/find the VM on Mac.
Comment 5 Markus Alexander Kuppe 2011-07-01 20:00:16 UTC
*** Bug 133 has been marked as a duplicate of this bug. ***
Comment 6 Markus Alexander Kuppe 2011-07-18 13:04:21 UTC
Fixed by bug #116

Bug 126

Summary: NPE in Add Spec handler when parent directory does not exist
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-24 08:31:15 UTC
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)
Comment 1 Markus Alexander Kuppe 2011-07-14 11:24:08 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-07-14 11:24:09 UTC
Created attachment 68 [details]
mylyn/context/zip

Bug 127

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-25 14:59:10 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-07-06 13:18:59 UTC
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.
Comment 2 Markus Alexander Kuppe 2011-07-06 13:19:02 UTC
Created attachment 58 [details]
mylyn/context/zip

Bug 128

Summary: util.SimpleFilenameToStream.locate(String) fails if path contains whitespaces
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-26 14:24:46 UTC
\\C:\\Documents%20and%20Settings\\markus\\tlatoolbox\\tlatools\\class\\tla2sany\\StandardModules\\
 vs "\\C:\\Documents and 
Settings\\markus\\tlatoolbox\\tlatools\\class\\tla2sany\\StandardModules\\"
Comment 1 Markus Alexander Kuppe 2011-05-27 09:16:02 UTC
Fix released to HEAD, verified on Mac OS X, Windows XP (x86) and Linux.
Comment 2 Markus Alexander Kuppe 2011-05-27 09:16:05 UTC
Created attachment 33 [details]
mylyn/context/zip

Bug 129

Summary: TLCWorker may read specification and configuration from TLCServer via RMI
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: TLA ToolsAssignee: 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

Description Markus Alexander Kuppe 2011-05-26 14:26:49 UTC
Instead of requiring the user to copy the 
specification and configuration files to all workers, workers may read 
the files with RMI.
Comment 1 Markus Alexander Kuppe 2011-07-01 19:57:43 UTC
Closing as fixed, RMI has been added to TLCServerRMI.
Comment 2 Markus Alexander Kuppe 2011-07-01 19:57:44 UTC
Created attachment 55 [details]
mylyn/context/zip

Bug 130

Summary: tlc2.util.ByteUtilsTest fails to create test file
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-27 09:54:49 UTC
-- 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)
Comment 1 Markus Alexander Kuppe 2011-05-27 10:00:15 UTC
Fix released to HEAD, verified on Linux
Comment 2 Markus Alexander Kuppe 2011-05-27 10:00:19 UTC
Created attachment 34 [details]
mylyn/context/zip

Bug 131

Summary: tlc2.util.BigInt.equals causes java.lang.StackOverflowError
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-27 10:02:40 UTC
-- 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)
Comment 1 Markus Alexander Kuppe 2011-05-27 10:17:45 UTC
Fix released to HEAD, verified on Linux
Comment 2 Markus Alexander Kuppe 2011-05-27 10:17:48 UTC
Created attachment 35 [details]
mylyn/context/zip

Bug 132

Summary: Open Saved Module menu item not grayed out
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: minor CC: simon
Priority: P5    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Leslie Lamport 2011-05-29 17:23:12 UTC
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.)

Bug 133

Summary: Internal Error when running TLC on Mac
Product: TLA+ Toolbox Reporter: Michael Leuschel <leuschel>
Component: TLC ComponentAssignee: 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: ---

Description Michael Leuschel 2011-05-30 16:44:01 UTC
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.)
Comment 1 Markus Alexander Kuppe 2011-05-30 17:38:01 UTC
(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
Comment 2 Markus Alexander Kuppe 2011-07-01 20:00:16 UTC
*** This bug has been marked as a duplicate of bug 125 ***

Bug 134

Summary: Distributed TLC does not compile on Java 1.5
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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 Markus Alexander Kuppe 2011-05-31 09:25:14 UTC
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
Comment 1 Markus Alexander Kuppe 2011-05-31 11:35:09 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-05-31 11:35:11 UTC
Created attachment 39 [details]
mylyn/context/zip

Bug 135

Summary: NPE startup crash requiring Toolbox restart (happens randomly)
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-05-31 11:52:21 UTC
!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)
Comment 1 Markus Alexander Kuppe 2011-05-31 11:53:01 UTC
Created attachment 41 [details]
Console output
Comment 2 Markus Alexander Kuppe 2011-05-31 11:55:57 UTC
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.
Comment 3 Markus Alexander Kuppe 2011-05-31 11:55:58 UTC
Created attachment 42 [details]
mylyn/context/zip
Comment 4 Markus Alexander Kuppe 2011-05-31 11:56:35 UTC
To activate assertions in Eclipse follow http://tech.puredanger.com/2007/01/17/eclipse-assertions/
Comment 5 Leslie Lamport 2011-05-31 12:06:51 UTC
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.
Comment 6 Markus Alexander Kuppe 2011-06-21 15:52:04 UTC
Changed 
ProverUIActivator.start(BundleContext) to access the preference store 
from inside the UI thread to prevent SWT invalid thread access 
exceptions.
Comment 7 Markus Alexander Kuppe 2011-07-01 19:56:00 UTC
Changes in comment #6 seem to have done the trick, closing as fixed.
Comment 8 Markus Alexander Kuppe 2011-07-01 19:56:01 UTC
Created attachment 54 [details]
mylyn/context/zip

Bug 136

Summary: NPE in UIHelper.runCommand() if workbench window is inactive
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: NEW ---    
Severity: normal CC: simon
Priority: P3    
Version: 1.3   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-05-31 15:13:18 UTC
!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)

Bug 137

Summary: CloneModelContributionItem.getContributionItems() refreshes workspace in UI thread
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED DUPLICATE    
Severity: normal CC: simon
Priority: P3    
Version: 1.3   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-06-01 11:14:16 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-06-08 08:59:18 UTC
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)
Comment 2 Markus Alexander Kuppe 2011-07-01 19:59:05 UTC
*** This bug has been marked as a duplicate of bug 103 ***

Bug 138

Summary: Missing view descriptor causes PartInitException at startup
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-02 10:38:55 UTC
!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
Comment 1 Markus Alexander Kuppe 2011-07-18 09:45:23 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-07-18 09:45:25 UTC
Created attachment 72 [details]
mylyn/context/zip

Bug 139

Summary: "Evaluate Constant Expression" output shows set with duplicate elements
Product: TLA+ Toolbox Reporter: Chris Newcombe <chris.newcombe>
Component: TLA ToolsAssignee: Leslie Lamport <lamport>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P3    
Version: 1.3   
Hardware: x86 64-bit   
OS: Windows 7   
Target Version: ---

Description Chris Newcombe 2011-06-05 23:21:20 UTC
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)
=============================================================================
Comment 1 Leslie Lamport 2011-06-22 18:23:40 UTC
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.
Comment 2 Leslie Lamport 2011-06-22 18:55:47 UTC
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.

Bug 140

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-07 15:34:27 UTC
The fingerprint server is intended to be a shared (RMI) resource and thus must be accessed with call by reference semantics.
Comment 1 Markus Alexander Kuppe 2011-06-07 15:34:53 UTC
Fix  released to HEAD
Comment 2 Markus Alexander Kuppe 2011-06-07 15:34:54 UTC
Created attachment 43 [details]
mylyn/context/zip

Bug 141

Summary: UniqueString has to be created by TLCServer in distributed mode
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-07 17:09:33 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-06-07 17:12:01 UTC
Fix released to HEAD, UniqueString creation is now delegated to the central TLCServer (bottleneck).
Comment 2 Markus Alexander Kuppe 2011-06-07 17:12:02 UTC
Created attachment 44 [details]
mylyn/context/zip

Bug 142

Summary: TLCServer fails due to missing fingerprint file on worker connect
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED INVALID    
Severity: normal CC: simon
Priority: P3    
Version: 1.3   
Hardware: All   
OS: Linux   
Target Version: ---

Description Markus Alexander Kuppe 2011-06-08 10:35:53 UTC
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)
Comment 1 Markus Alexander Kuppe 2011-06-08 11:30:04 UTC
Caused by g5k deployment script

Bug 143

Summary: TLCWorkers may wait for TLCServer to come online
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-09 09:25:42 UTC
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).
Comment 1 Markus Alexander Kuppe 2011-06-09 09:29:17 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-06-09 09:29:18 UTC
Created attachment 45 [details]
mylyn/context/zip

Bug 144

Summary: Collect and report performance statistics for RMI distributed TLC
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-09 09:30:36 UTC
In order to improve distributed TLC, reproducable statistics have to be collected during runtime.
Comment 1 Markus Alexander Kuppe 2011-06-09 11:58:04 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-06-09 11:58:07 UTC
Created attachment 46 [details]
mylyn/context/zip

Bug 145

Summary: Toolbox not reporting a TLC error
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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

Description Leslie Lamport 2011-06-09 18:51:02 UTC
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 }
Comment 1 Leslie Lamport 2011-06-09 18:53:35 UTC
Created attachment 47 [details]
a zip file

The model in question is Model_1.  The clone Model_1_Copy worked.

Bug 146

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 ComponentAssignee: 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

Description Leslie Lamport 2011-06-10 07:01:15 UTC
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.
Comment 1 Leslie Lamport 2011-06-10 07:26:03 UTC
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.
Comment 2 Markus Alexander Kuppe 2011-06-10 19:46:52 UTC
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)
Comment 3 Markus Alexander Kuppe 2011-06-10 19:46:56 UTC
Created attachment 48 [details]
mylyn/context/zip
Comment 4 Markus Alexander Kuppe 2011-07-01 19:50:42 UTC
Resolving as fixed, no unit tests have been written.

Bug 147

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-10 14:20:30 UTC
!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
Comment 1 Markus Alexander Kuppe 2011-06-14 09:04:14 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-06-14 09:04:17 UTC
Created attachment 49 [details]
mylyn/context/zip

Bug 148

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-14 09:10:28 UTC
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
Comment 1 Markus Alexander Kuppe 2011-06-20 13:27:35 UTC
Added b) in jar loading to util.SimpleFilenameToStream
Comment 2 Markus Alexander Kuppe 2011-06-20 13:27:37 UTC
Created attachment 50 [details]
mylyn/context/zip

Bug 149

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 ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED WORKSFORME    
Severity: major CC: simon
Priority: P2    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Leslie Lamport 2011-06-20 17:28:34 UTC
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.
Comment 1 Leslie Lamport 2011-06-20 17:37:55 UTC
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.
Comment 2 Leslie Lamport 2011-06-21 12:40:45 UTC
The problem seems to have gone away when I restarted the Toolbox.  I can no longer produce it.

Bug 150

Summary: Toolbox not asking for approval to run TLC when spec has been modified
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLC ComponentAssignee: 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

Description Leslie Lamport 2011-06-20 17:54:56 UTC
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.)
Comment 1 Markus Alexander Kuppe 2011-07-14 17:41:15 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-07-14 17:41:16 UTC
Created attachment 70 [details]
mylyn/context/zip
Comment 3 Markus Alexander Kuppe 2011-07-20 11:04:21 UTC
Model editors should be saved implicitly. Only a dirty spec editor should raise a save dialog.
Comment 4 Markus Alexander Kuppe 2011-07-20 11:51:01 UTC
Fix released to HEAD
(Raise save dialog for dirty spec editor)
Comment 5 Markus Alexander Kuppe 2011-07-20 11:51:04 UTC
Created attachment 76 [details]
mylyn/context/zip

Bug 151

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-20 21:13:38 UTC
Parsing ~70k lines of TLC output takes hours.
Comment 1 Markus Alexander Kuppe 2011-07-01 19:48:32 UTC
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)
Comment 2 Markus Alexander Kuppe 2011-07-01 19:48:38 UTC
Created attachment 53 [details]
mylyn/context/zip
Comment 3 Markus Alexander Kuppe 2011-07-01 20:16:41 UTC
*** Bug 90 has been marked as a duplicate of this bug. ***

Bug 152

Summary: Improve keyboard experience
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-21 08:16:53 UTC
F11: Launch currently active model check
Comment 1 Markus Alexander Kuppe 2011-07-05 15:23:26 UTC
F11 added
Comment 2 Markus Alexander Kuppe 2011-07-05 15:23:28 UTC
Created attachment 56 [details]
mylyn/context/zip

Bug 153

Summary: Turn tla2tool.jar into OSGi bundle
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: TLA ToolsAssignee: 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

Description Markus Alexander Kuppe 2011-06-22 17:16:36 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-06-22 22:32:57 UTC
Fix released to HEAD
Comment 2 Markus Alexander Kuppe 2011-06-22 22:32:58 UTC
Created attachment 51 [details]
mylyn/context/zip

Bug 154

Summary: Platform specific bundles [net/filesystem] missing in distribution
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-23 11:02:37 UTC
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.
Comment 1 Markus Alexander Kuppe 2011-08-01 16:04:36 UTC
.filesystem. has been added to the build. Marking as fixed. Tested on Mac, Win and Linux.
Comment 2 Markus Alexander Kuppe 2011-08-01 16:04:38 UTC
Created attachment 86 [details]
mylyn/context/zip

Bug 155

Summary: Obscure PlusCal translator's command-line options don't work from inside Toolbox
Product: TLA+ Toolbox Reporter: Leslie Lamport <lamport>
Component: TLA ToolsAssignee: Leslie Lamport <lamport>
Status: ASSIGNED ---    
Severity: trivial    
Priority: P5    
Version: unspecified   
Hardware: All   
OS: All   
Target Version: ---

Description Leslie Lamport 2011-06-28 12:59:10 UTC
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.

Bug 156

Summary: Trace Explorer exploration fails with stack overflow
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-06-30 10:11:52 UTC
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
Comment 1 Markus Alexander Kuppe 2011-06-30 10:55:54 UTC
see tla2sany.drivers.Bug156TEStackOverflowTest.testFrontEndParse() for a test case showing this behavior.
Comment 2 Markus Alexander Kuppe 2011-06-30 10:55:56 UTC
Created attachment 52 [details]
mylyn/context/zip
Comment 3 Markus Alexander Kuppe 2011-06-30 10:56:35 UTC
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."
Comment 4 Markus Alexander Kuppe 2011-06-30 11:24:57 UTC
TE.tla is written in 
org.lamport.tla.toolbox.tool.tlc.launch.TraceExplorerDelegate.buildForLaunch(ILaunchConfiguration,
 String, IProgressMonitor) starting in line #388.

Bug 157

Summary: Release Toolbox 1.3.2 or 1.4
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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:    

Description Markus Alexander Kuppe 2011-07-01 20:07:27 UTC
This bug is intended as an umbrella bug for the next Toolbox release (it's either 1.3.2 or 1.4).
Comment 1 Markus Alexander Kuppe 2011-07-01 20:08:50 UTC
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
Comment 2 Markus Alexander Kuppe 2011-07-01 20:14:26 UTC
Adding release stoppers
Comment 3 Markus Alexander Kuppe 2011-10-17 14:11:27 UTC
Done already

Bug 158

Summary: Run distributed TLC from Toolbox
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: 1.3   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-07-01 20:33:30 UTC
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...).
Comment 1 Markus Alexander Kuppe 2011-07-06 20:54:52 UTC
Fix released to HEAD

Bug 159

Summary: NPE in NewSpecWizard job
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-07-06 10:03:44 UTC
!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)
Comment 1 Markus Alexander Kuppe 2011-07-06 10:07:03 UTC
Fix released to HEAD
(check for valid rootfilename before running job)
Comment 2 Markus Alexander Kuppe 2011-07-06 10:07:04 UTC
Created attachment 57 [details]
mylyn/context/zip

Bug 160

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 ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED FIXED    
Severity: normal CC: simon
Priority: P3    
Version: 1.3   
Hardware: All   
OS: All   
Target Version: ---

Description Markus Alexander Kuppe 2011-07-06 12:16:57 UTC
!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
Comment 1 Leslie Lamport 2011-07-07 00:18:41 UTC
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.

Bug 161

Summary: Serve TLCWorker via Java Webstart
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-07-06 18:05:13 UTC
Making the TLCWorker app available via Java Webstart simplifies deployment in (user) scripts.
Comment 1 Markus Alexander Kuppe 2011-07-06 20:50:47 UTC
Released to HEAD
Comment 2 Markus Alexander Kuppe 2011-07-06 20:50:49 UTC
Created attachment 59 [details]
mylyn/context/zip

Bug 162

Summary: Bootstrap JRE via Java Webstart
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Status: RESOLVED FIXED    
Severity: enhancement CC: simon
Priority: P3    
Version: 1.3   
Hardware: All   
OS: Windows   
Target Version: ---

Description Markus Alexander Kuppe 2011-07-06 22:37:09 UTC
On Windows systems the browser can be used to bootstrap a JRE.
Comment 1 Markus Alexander Kuppe 2011-07-07 14:04:02 UTC
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)

Bug 163

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 ComponentAssignee: 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

Description Markus Alexander Kuppe 2011-07-07 10:52:43 UTC
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
Comment 1 Markus Alexander Kuppe 2011-07-07 15:51:31 UTC
Fix released to HEAD
(Lesson confirmed: never ever use File in your application, use InputStream instead)
Comment 2 Markus Alexander Kuppe 2011-07-07 15:51:32 UTC
Created attachment 60 [details]
mylyn/context/zip

Bug 164

Summary: Add custom system properties to TLCServer process launched from within Toolbox
Product: TLA+ Toolbox Reporter: Markus Alexander Kuppe <bugzilla.tlaplus.net>
Component: Core ComponentAssignee: 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