 |
JSwat Project
Old News
|
What's Old
- 1.5.8 - April 7, 2002
-
- Implemented #315: source view colors can now be changed
via the preferences dialog, in the "View, Colors"
category.
- Implemented #404: added support for shared memory
connectors in the attach and listen operations.
- Implemented #420: format of command line arguments has
changed to allow any arbitrary command and its
arguments.
- Implemented #423: popup menu in watch panel to clear all
watches.
- Fixed bug #417: message area stays scrolled at the bottom
even when text is automatically trimmed from the top.
- Fixed bug #419: show Java parser exceptions in the
messages window.
- Fixed bug #421: made the menu items line up in all the
menus.
- Removed 'detach' because it is redundant. Use
'close' instead.
- Put the documentation in a separate downloadable. Not
everyone needs the docs every time they download the
binary.
- 1.5.7 - April 2, 2002
-
- Reorganized the menus a little bit.
- Implemented #24: added 'trace' command and
equivalent menu item to watch method entry and exit
events.
- Implemented #27: added 'invoke' command to call
methods on classes or objects in the debuggee process.
- Implemented #177: added class and thread filters to
breakpoints.
- Implemented #178: added simple breakpoint that traces
method entry and exit events and shows the location in the
message log. This is related to feature request #24.
- Implemented #207: added 'this' to local variables
panel which shows the reference type and object identifier of
the 'this' object.
- Fixed bug #413 (mohba): source view was not handling
files with mixed end of line characters correctly.
- Fixed bug #414 (mohba): source view was not taking gutter
width into account in certain conditions.
- Fixed bug #415: clarified the VM "list"
operation by renaming it to "List Connectors" since
it does not show remote VMs.
- Fixed bug #416: fixed null pointer exception in threads
panel.
- 1.5.6 - March 20, 2002
-
- Fixed bug #217: all method breakpoint properties can now
be adjusted, including method name and arguments.
- Fixed bug #411: if sourcepath undefined, null pointer
exception was thrown whenever a source view needed to be
displayed.
- Fixed bug #412: method breakpoint specifiers can contain
primitives in the argument list, e.g.
"method(java.lang.String, char, int)".
- 1.5.5 - March 19, 2002
-
- Minor change to allow the JSwat-jEdit plugin to work once
again.
- Fixed bug 89: added preference option for the default
source file extension. This allows JSwat to treat non-Java
files as if they were source files.
- Fixed bug 174: added Find and Find Next icons to the main
toolbar.
- Fixed bug 373: added more information about how JSwat
finds source files using the classpath and sourcepath
settings.
- 1.5.4 - March 18, 2002
-
- Added Dooren's code for saving session properties to
arbitrary files. Useful for debugging multiple projects using
JSwat.
- Fixed bug #401: changed 'print' command to avoid
array reference issue caused by JDI with arrays of zero
size.
- Fixed bug #405: removed a dependence on JDK 1.3.
- Fixed bug #406: show the breakpoint number in the message
that indicates that the breakpoint was hit.
- Fixed bug #409: attach action was not deactivating the
current session before trying to attach to the debuggee.
- Fixed bug #410: watch panel now calls the toString()
method on objects to display much more readable values.
- 1.5.3 - February 28, 2002
-
- Implemented #52: jswat can now search .zip and .jar
archives for source files. Obviously this is a little slower
than searching directory paths, but the matching results are
cached for better performance.
- Implemented #402: new optional argument for
'list' command to control how many lines of output
are displayed. Naturally this can be aliased for the sake of
convenience.
- Fixed bug #296: no visible change with this bug, just
changing the underlying Java lexical analyzer and parser
library from JFLex and JavaCC to SableCC. This makes the
JSwat code much easier to maintain and extend going
forward.
- Fixed bug #306: take the classpath from a new session
property instead of always defaulting to the environment
value. The environment value is rarely useful since it is
whatever was used to launch jswat, and this often is not the
same classpath used to run the debuggee.
- Fixed bug #399: deal with out of bounds cases in the
source view tooltip code.
- 1.5.2 - February 16, 2002
-
- Fixed bug #205: wrote instructions on reporting jswat
bugs and created jswat-bugs mailing list.
- Fixed bug #241: the appropriate menu items and toolbar
buttons are now enabled and disabled when the session
activates and deactivates.
- Fixed bug #391: 'list' command now defaults to
showing the current line and the 9 lines following it.
Optional argument 'center' reverts to the original
centering behavior. It is easy to create an alias for
'list center' that simulates the old behavior, if so
desired.
- Fixed bug #393: handle array references better in a
number of places, in particular the source view tooltip code.
Now evaluates variables inside square brackets (e.g.
"arr[idx].val" is understood).
- Fixed bug #397 (jshute): Java parsing module now handles
the 'assert' keyword.
- Fixed bug #398 (jshute): Command input prompt is clearer
with regards to the input modes (help mode, macro mode,
etc).
- Added code from Andreas S. to display class references as
the name of the class in the local variables panel.
- 1.5.1 - January 24, 2002
-
- Implemented #388: added 'list' command to show
source code around the current stepping location; useful
while in console mode.
- Fixed bug #280: can now watch and print static fields of
arbitrary (loaded) classes. This affects the watch panel,
disablegc, dump, enablegc, lock, print, and set
commands.
- Fixed bug #376: work around javac bug 4404985 in which
SourceFile class property had a file path when it should
not.
- Fixed bug #390: apropos clearly indicates failure when no
matching commands are found.
- Console mode source code view support now shows current
stepping line indicator.
- 1.5 - January 13, 2002
-
- Implemented #20: 'threads' takes an optional
thread group name or identifier and shows the threads in that
group only.
- Implemented #50: 'classes' takes an optional
class filter.
- Implemented #240: added a new 'apropos' command
that searches the command descriptions for a matching
phrase.
- Implemented #272: added primitive source code viewing
support in console mode.
- Implemented #384: changed the 'help' command to
offer interactive help, presenting sets of categories to help
you find commands.
- Implemented #385: added 'condition' and
'monitor' commands to modify breakpoints via the
command interface.
- Added 'brkinfo' command to display properties of
breakpoints.
- Fixed bug #309: added 'thread' option to stepping
commands.
- Fixed bug #387: null pointer exception in java colorizing
code.
- 1.4.12 - January 6, 2002
-
- Fixed bug #369: source view search facility should not
found text that contains spaces when search phrase does not
contain spaces.
- Fixed bug #375: append ".java" to the name of
the transformed class when looking for source files using the
class information provided by the JPDA ReferenceType
class.
- Fixed bug #377: account for the view gutter when
selecting text with the mouse.
- Fixed bug #378: colorize just the strings and and not the
characters before and after the strings.
- Fixed bug #379: allow searching for patterns containing
spaces.
- Fixed bug #380: tab width changes affect open views once
again.
- Fixed bug #381: permit search that finds pattern at start
of view.
- Fixed bug #382: search will find back-to-back patterns in
the view.
- Fixed bug #383: allow searching for a single character in
the view.
- 1.4.11 - January 2, 2002
-
- Fixed bug #330: source code viewer is much faster
now.
- Fixed bug #362: deal better with errors that occur during
the session activate, deactivate, and close operations.
- Fixed bug #371: changes of object references in arrays
went unnoticed by the local vars panel.
- Fixed bug #374: use correct code to update object fields
and array elements in the local variables tree.
- 1.4.10 - December 18, 2001
-
- Implemented #319: "Select all" option in the
popup menu for text areas.
- Implemented #333: added shortcut for Start VM
dialog.
- Fixed bug #366: Find Next works once again.
- Fixed bug #368: searching through source with tabs now
works.
- 1.4.9 - December 15, 2001
-
- Implemented #26: (traykoff) new 'exclude' command
so we can finally single-step without stepping into other
people's code. Hurray!
- Implemented #326: (traykoff) cleaner string printing code
for tooltips.
- Fixed bug #129: Java parser now handles empty statements
in class decls.
- Fixed bug #229: 'options' now does not accept
unknown option names.
- Fixed bug #323: (traykoff) avoid null pointer exception
when opening source file that is outside of classpath or
sourcepath directories.
- Fixed bug #325: (traykoff) deal better with breakpoints
in inner classes and non-public "extra"
classes.
- Fixed bug #332: source view font was always 12 points in
JDK 1.3.
- Fixed bug #335: show "VM running" when
launching debuggee unsuspended.
- Fixed bug #355: changed shortcut default from F6 key to
F2. However, you will need to change your existing
preferences setting yourself.
- Fixed bug #356: avoid gui deadlock by modifying interface
via AWT event dispatching thread.
- Fixed bug #359: changing breakpoint via properties dialog
will fire event so source view will update the row header
breakpoint markers.
- Fixed bug #363: added 'assert' keyword to Java
lexical scanner.
- Fixed bug #364: (aschoerk) handle null return values from
getMessage() method when catching exceptions thrown in the
debuggee.
- Fixed bug #365: handle quote by itself following -cp VM
argument when launching a debuggee VM.
- Made source view colorization ten to fifteen percent
faster.
- Added Raykoff's "last visited directory"
persistence for file dialogs.
- Added Schoerk's class loader identifier to the
classes panel.
- 1.4.8 - November 28, 2001
-
- Fixed bug #321: sourcepath can be properly overridden
from the command line with -Djava.source.path.
- Fixed bug #322: JDK 1.3 had problems with source view
tooltip indices (the now familiar index out of bounds
exceptions).
- Fixed bug #327: source view font size would reset to 12
when the user preferences were changed.
- Fixed bug #328: show a busy cursor when a source view
first opens.
- Fixed bug #329: source view lexical scanner now handles
\u escapes.
- Made the source view loading about 25 percent
faster.
- 1.4.7 - November 25, 2001
-
- Fixed bug #307: tab width in colored view was stuck at
eight.
- Fixed bug #308: color view now handles character escapes
in strings.
- Fixed bug #312: (jconfigure) upgrading old user
preferences now works.
- Fixed bug #313: preference change caused color view to
lose its color.
- Fixed bug #314: character literals in colored view not
colored.
- Fixed bug #317: color view was word-wrapping when it
should not have.
- Fixed bug #318: toggling color option did not update open
source views.
- Fixed bug #320: color source view did not automatically
refresh.
- 1.4.6 - November 12, 2001
-
- Implemented #17: colorize the source code in the source
view. The color view is optional since it is significantly
slower.
- Fixed bug #273: macros may no longer invoke themselves.
You could never do this anyway, now it is simply being
enforced.
- Fixed bug #282: source view tooltips now consider dots in
variable names, so the value of "obj.field" will be
shown when the mouse is over the "field" part.
- Fixed bug #283: use efficient search algorithm in source
viewer.
- Fixed bug #293: moved two view-related options from one
group to another in the preferences window. Move is made
automatically via the preferences upgrade process.
- 1.4.5 - October 27, 2001
-
- Implemented #141: added documentation to distribution
package.
- Implemented #259: save sourcepath setting as a session
property.
- Implemented #262: (jshute) setting breakpoints via
'stop' takes the current debuggee context into
consideration to offer shorter location specifications. For
example, "stop 217" while single stepping will set
the breakpoint at line 217 of the current class.
- Fixed bug #37: (jshute) 'stop' now accepts method
without parentheses.
- Fixed bug #214: (jshute) unresolved breakpoint error
appeared multiple times in the message window.
- Fixed bug #238: toolbar remembers its placement in the
window.
- Fixed bug #249: deleting unresolved breakpoint left
indicator in the source view window.
- Fixed bug #269: (jshute) 'up' and 'down'
were reversed.
- 1.4.4 - October 11, 2001
-
- Implemented #254: breakpoint value condition allows
'null' value.
- Fixed bug #255: 'print' hexadecimal
representation of characters.
- Fixed bug #256: 'print' displays appropriate
message when user specifies an array index that is out of
bounds.
- Fixed bug #257: locals panel handles change of field type
in object.
- Fixed bug #258: locals panel shows hexadecimal
representation of character values.
- Fixed bug #260: 'load' was throwing null pointer
exception when invoked without arguments during same run of
JSwat.
- Fixed bug #261: check that thread is suspended before
evaluating breakpoint conditions. I would have thought
isAtBreakpoint() would suffice, but apparently not.
- 1.4.3 - October 4, 2001
-
- Implemented #176: breakpoints now support monitors - any
named command (or alias or macro) can be invoked when the
breakpoint is hit.
- Implemented #182: breakpoint suspend policy can be
modified, so thread suspend choices are now: none, event
thread, or all threads.
- Fixed bug #244: 'set' allows setting an object
reference to null.
- Fixed bug #250: handle case of undefined source path in
the "Set Sourcepath" dialog.
- Fixed bug #252: 'dump' now dumps the fields of a
String instead of just printing the string.
- Fixed bug #253: update object fields in local variables
panel.
- 1.4.2 - September 30, 2001
-
- Implemented #13: simple conditionals for breakpoints,
where the condition is satisfied when a variable equals a
value. Only primitive types (int, float, etc.) and strings
are supported at this time.
- Implemented #78: dialogs for setting the classpath and
sourcepath. Thanks to David Taylor, the jEdit plugin author,
for writing this.
- Fixed bug #242: ensure messages flusher thread has
sufficient priority.
- Fixed bug #243: set suspend policy before enabling event
requests. Avoids an exception thrown in JDK 1.4.
- Fixed bug #245: classpath no longer automatically appears
in the "Start VM" dialog so the program can tell if
you entered it or not. Now the program only saves what you
entered as the JVM options.
- Fixed bug #247: handle null variable value in source view
tooltip.
- Fixed bug #248: avoid invalid request state exception
when resolving breakpoint request that has been modified
before resolution.
- Replaced occurrences of "target" with
"debuggee" to be more logical.
- 1.4.1 - September 10, 2001
-
- Fixed bug #222: source view header background now uses
default color.
- Fixed bug #225: 'classpath' accepts quotes around
classpath.
- Fixed bug #226: 'help' on aliases and macros
reports something useful.
- Fixed bug #228: 'methods' now shows return
type.
- Fixed bug #230: watch panel now supports watching static
fields when set up while stopped in a static method.
- Fixed bug #237: allow 'set' to modify static
fields while stopped in a static method.
- Fixed bug #239: 'options' now fires a
configuration changed event.
- Implemented #65: display variable values as tooltip in
source view. This is a contribution by the jEdit plugin
author, David Taylor.
- Implemented #219: 'threads' indicates which
thread is the current one.
- Implemented #234: double-clicking a breakpoint in the
panel or dialog will make the breakpoint properties dialog
appear.
- Implemented #235: colorize the line number background in
the source view row header, instead of the number. Much
easier to see now.
- Implemented #236: support "run to line" in
source view popup menu. Sets a temporary breakpoint and then
resumes the debuggee VM.
- Added new 'runto' command that sets a temporary
breakpoint and resumes the debuggee VM.
- Breakpoints panel now shows brief breakpoint
descriptions.
- Made the toolbar and menubar of the main window
optional.
- 1.4.0 - September 5, 2001
-
- Fixed bug #132: local vars panel reschedules update if
invalid frame.
- Fixed bug #139: watch panel shows "(no debugging
info)" when variable information is not available. In
addition, the print command gives an explanation about using
"javac -g" to generate debugging info.
- Fixed bug #146: source view prints parser errors to Log
instead of stdout.
- Fixed bug #149: 'locals' command now shows field
variables, too.
- Fixed bug #151: open file dialog now handles dialog close
button.
- Fixed bug #154: redisplay load VM dialog if input is
invalid.
- Fixed bug #155: show normalized options in Start VM
dialog.
- Fixed bug #156: redisplay set breakpoint dialog if input
is invalid.
- Fixed bug #157: check that class name is valid in set
breakpoint dialog.
- Fixed bug #160: capture messages dialog now remembers
filename.
- Fixed bug #161: show appropriate message in capture
messages dialog.
- Fixed bug #164: validate input in define macro
dialog.
- Fixed bug #165: check if session is active in
'resume' command.
- Fixed bug #166: left align the options in the preferences
window.
- Fixed bug #167: deiconify window before bringing it
forward when using the Windows menu entry.
- Fixed bug #168: validate input in new breakpoint group
dialog.
- Fixed bug #170: rename "Input/Output" panel to
just "Output". This matches the way the Messages
panel is named.
- Fixed bug #171: rename "Callers" panel to
"Stack". This is more logical to me and seems to be
what other debuggers use.
- Fixed bug #172: handle exceptions properly in the watches
panel.
- Fixed bug #173: use correct frame value so source view is
kept up-to-date.
- Fixed bug #175: do not suspend an already suspended
debuggee VM.
- Fixed bug #179: changed some printStackTrace() calls to
use messages area.
- Fixed bug #184: properly delete breakpoints so they do
not try to resolve.
- Fixed bug #186: fixed capture messages action so it is
stateless.
- Fixed bug #187: changing a String reference now updates
correctly.
- Fixed bug #189: catch the InconsistentDebugInfoException
that is sometimes thrown in the local variables panel.
- Fixed bug #190: update source view when tab size is
changed.
- Fixed bug #191: set program status when breakpoint fails
to resolve.
- Fixed bug #192: double-clicking on local variables will
not exception.
- Fixed bug #196: stop auto-scrolling to current stepping
line when source view is opened by one of the panels.
- Fixed bug #203: show breakpoint description when
resolution fails.
- Fixed bug #208: 'print' command calls toString()
only if not a String.
- Fixed bug #211: made breakpoint resolve error messages
more clear.
- Fixed bug #220: 'alias' with unknown alias name
printed "null".
- Fixed bug #221: 'help' command description was
weird.
- Fixed bug #227: 'locks' and 'threadlocks'
fail when running HotSpot. Now prints the appropriate error
message indicating that the operation is not supported on
HotSpot.
- Fixed bug #231: 'view' command now takes filename
as an alternative.
- Fixed bug #232: stack panel updates for single step
events.
- Implemented #98: allow changing the source view font
size.
- Implemented #109: unresolved line breakpoints are
indicated in the source view by having a blue line number, if
the breakpoint was set using the source veiw popup menu.
- Implemented #125: added button to show source for
resolved breakpoint.
- Implemented #150: same command input does not get added
to the history.
- Implemented #158: compacted the stack panel to show
pertinent info only.
- Implemented #159: show the messages/output and
stack/methods panels at the same time. It is a little more
cramped now but should be worth it.
- Implemented #181: added the breakpoints panel to the main
window.
- Implemented #183: trim the Messages and Output text areas
to a configurable number of lines.
- Implemented #201: add "Breakpoint properties"
item to source view popup.
- Implemented #210: add "Clear" to the popup menu
in text areas.
- Implemented #212: big refactoring of all the major
classes in JSwat to allow support for different interfaces.
JSwat now has two operating modes: the usual graphical mode
and a new text-only mode. Added -console switch to enable
text-only mode. Added commands: about, options, stdin,
vmlist. Useful when running in text-only mode.
- Implemented #213: 'alias' command takes
functionality of 'aliases' and the latter command is
removed.
- Numerous fixes to many of the commands, most of which
were broken in one way or another.
- Made the messages print a lot faster.
- 1.3.3 - August 21, 2001
-
- Fixed bug #143: stop clearing the breakpoints.
- Stop clearing the session properties, too.
- 1.3.2 - August 4, 2001
-
- Fixed #14: Added support for creating breakpoint groups.
A group of breakpoints can be disabled and enabled together.
Groups may contain other groups.
- Fixed #23: Breakpoints now support the notion of
expiration (dying after N hits).
- Fixed #60: Breakpoints can now skip over N hits before
they begin stopping the debuggee VM.
- Fixed bug #135: Local variables panel now updates when an
object reference is changed to point to another object of the
same type.
- Fixed bug #136: Source viewer was not appearing when
single stepping into a method. Other events would have also
failed to bring up the source code viewer.
- 1.3.1 - July 22, 2001
-
- Fixed bug 31: local variables tree now keeps branches
expanded.
- Fixed bug 77: added shortcuts for refresh and VM suspend
actions.
- Fixed bug 126: Launching a debuggee will always be
suspended long enough for the session to activate, then
resumed only if the user did not want to suspend.
- Fixed bug 127: Added an icon to the main window.
Visibility depends on your windowing environment. Tested
successfully on Windows 2000.
- Implemented 128: double-clicking on "..." will
show all of the array elements in the local variables
panel.
- Fixed bug 130: source view now shows highlighter when
stepping through non-public classes defined in the source
file of a public class.
- Fixed bug 131: source view now gracefully handles parse
errors in source files. View popup will show "Java
parser error" in such a case.
- Fixed bug 133: text in command input field is not lost
when scrolling through command history.
- 1.3.0.1 - July 12, 2001
- Correcting problem in 1.3.0 build. Version number is
technically still 1.3.0 since the code is the same.
- 1.3.0 - July 11, 2001
-
- Fixed bug 12 (and partly 13, 14, 23, 60): Completely
reimplemented the breakpoints functionality. Breakpoints now
have support for conditions, monitors, skipping hits,
expiration, and persistence. Breakpoints are held inside
groups, which can reside in other groups. As yet, some of the
new features are not usable until the user interface is
finished.
- Fixed bug 120: Sorted fields in objects by name to
improve readability.
- Fixed bug 123: Changed the shortcut for 'Find
Next' and added a shortcut for 'Find'. As always
these are user-configurable via Preferences dialog.
- Fixed bug 124: Corrected the error message when local
variable information is missing.
- Changed the localizable resources code a bit. If you see
a 'null' where there should not be one, please report
it.
- Moved the ".jswat*" files from the home
directory to a subdirectory called ".jswat". That
is, the settings, session properties, and preferences files
have moved into ~/.jswat/ for better organization.
- Removed the 'ignore' command since the new
breakpoints code can remove the exception catch using the
'clear' command.
- Added Hugh Emberson's code to allow configuring tab
size in source view. Sadly, JTextArea ignores the change
until the source view is rebuilt.
- Added Mike Bresnahan's code to support alternate Java
home locations and JVM executables when launching a debuggee
VM.
- Assigned F5 as the default shortcut key for the Resume VM
action.
- 1.2.7 - May 28, 2001
-
- Implemented feature request #73, watch panel remembers
the watchpoints from session to session.
- Fixed bug #97, again. This time use Timer to ensure view
is scrolled to the current line when the source view first
appears.
- Fixed bug #116, make sure session properties are cleared,
even when switching from a remote session to a non-remote
session.
- 1.2.6 - May 19, 2001
-
- Implemented feature request #11, added source code search
facility.
- Implemetned feature request #64, added status messages to
the main window's title bar for important events.
- Implemented feature request #103, added option to show
just the class names instead of the fully-qualified class
names.
- Implemented feature request #113, added a message to the
title bar of the main window whenever a breakpoint is
hit.
- Implemented feature request #114, added support for
"this." to print command (and others).
- Fixed bug #117, source view was throwing null pointer
exception.
- 1.2.5 - May 5, 2001
-
- Implemented feature request #45, print command calls
toString() on any Object values. Will not print anything if
the current thread is not suspended via the JDI. This is a
JPDA restriction, not a JSwat limitation.
- Implemented feature request #88, highlight the current
stepping line. The "==>" indicator has been
removed in favor of the highlighter.
- Implemented feature request #107, show a busy cursor
while refreshing the panels, launching debuggee VMs, and
attaching to debuggee VMs.
- 1.2.4 - May 1, 2001
-
- Fixed bug #106, exception catches were not being
enabled.
- Removed the breakpoint list dialog since it is horribly
broken beyond repair. In the meantime, use the command line
instead.
- Added support for both prefix and suffix wildcards (*) on
class names when setting breakpoints.
- 1.2.3 - April 21, 2001
-
- Fixed bug #55, watch panel correctly updates field
variables.
- Fixed bug #96, watching a null variable would throw
exception.
- Fixed bug #97, source view did not scroll to current line
when the view had just been made visible.
- Fixed bug #99, load command was not using classpath
argument.
- Fixed bug #100, final field variables are now shown. Only
static final variables are ignored (since they are constant
and thus boring).
- Fixed bug #101, classpath in jswat set to whatever is
passed to 'load'.
- Added trace reporting support to jswat. This allows jswat
to show what it is doing during the "quiet" times.
Useful for debugging jswat itself. Not a lot of reporting
going on right now, but more will be added.
- When an exception is thrown in the debuggee VM, the
exception message is now printed to the messages window. Very
handy when ClassNotFoundException occurs and you want to know
which class was not found.
- 1.2.2 - April 11, 2001
-
- Fixed bug #91, callers panel updates whenever stack frame
count changes.
- Fixed bug #92, threads panel now explicitly updates when
session starts.
- Fixed bug #94, window size and position and other
settings saved no matter how the user closes jswat.
- Fixed bug #95, methods panel shows methods even inside
static methods.
- 1.2.1 - March 22, 2001
-
- Fixed bug #70, set command now refreshes panels after
changing variable.
- Fixed bug #86, deleted breakpoints were not removed from
session properties.
- Fixed bug #87, null pointer exception when connecting to
a remote debuggee.
- Changed the way the panels are refreshed so they rely
less on the Session. This should result in fewer time-wasting
visual updates.
- 1.2 - March 18, 2001
-
- Added session properties support. Presently the session
will remember the name of the class you are debugging and any
arguments passed to it and to the debuggee JVM. Also enabled
breakpoints are remembered and automatically reset the next
time the session is started. This fixes feature request #9.
Subsequently fixed bug #72.
- Implemented feature request #32, allow watch panel to
watch local variables, in addition to field variables.
- Implemented feature request #69, remember the positions
of the main window dividers (the dividers in the
JSplitPanes).
- Implemented feature request #10, show the source for the
main class when the session is activated.
- Fixed bug #68, breakpoints dialog had a null pointer
exception.
- Fixed bug #71, context change events should be combined
for efficiency.
- Fixed bug #74, source view was not grabbing current
location when opened.
- Fixed bug #76, thread panel would print "Thread
object collected."
- Fixed bug #79, callers panel did not show status in case
of invalid state.
- Fixed bug #80, source view loses current line indicator
after thread change.
- Fixed bug #81, methods panel does not draw when
single-stepping.
- Fixed bug #83, thread panel did not show current thread
in red when the user double-clicked to make a thread the
current one.
- 1.1.2 - March 3, 2001
-
- Fixed bug #47, improved the error message when
'kill' is invoked on suspended threads. Now shows
thread id number.
- Fixed bug #51, added Hugh Emberson's patch for
finding .jswatrc files.
- 1.1.1 - February 25, 2001
- Fixed bugs #44 and #46, both had to do with custom class
loaders causing breakpoints to become useless. Changed jswat to
be more like NetBeans in that it creates a ClassPrepareRequest
and leaves it enabled forever, setting the breakpoint each time
the class is prepared.
- 1.1 - February 24, 2001
-
- Print command now prints arrays and array elements.
- New methods panel that shows the methods of
'this' object.
- Fixed bug #54, center the preferences dialog.
- Fixed bug #56, make use of -classic an option.
- Fixed bug #57, the methods panel would throw a null
pointer exception when the method had no line number
information.
- Fixed bug #58, watching same field of two instances was
confused.
- 1.0 - February 7, 2001
-
- Fixed bug #49. Source view was scrolling too often.
- Fixed classes panel so it shows correct tooltip
text.
- Changed "Commands" panel label to
"Messages" which makes more sense.
- 0.9.7 - February 2, 2001
-
- Fixed bug #4, the problem with the source view and
setting breakpoints in anything but the top-level, public
class. Changed it to use a Java parser to find the class
definitions and thus know which classes are on what lines of
the file. Now you can set breakpoints in any class.
- Made a bunch of very minor code improvements suggested by
JTest.
- Fixed class panel again so it creates the class unload
request so it will be notified when classes are unloaded from
the debuggee vm.
- 0.9.6 - January 25, 2001
-
- Fixed close action so it does not terminate the running
debuggee VM.
- Fixed class panel to unconditionally build class tree
when session is activated. Fixes bug #28.
- Fixed the Session.resumeVM() so it resets the current
location before resuming the VM. Otherwise an asynchronous
breakpoint event could cause the current location to be set
before it is reset by the Session. Fixes bugs #1 and 2.
- 0.9.5 - January 24, 2001
-
- Putting suspend() and resume() calls around all calls to
the VirtualMachine.allClasses() method, per recommendation
from JavaSoft.
- Changing local vars panel to not show final field
variables. They are boring since they do not change. Fixes
RFE #6.
- Changed source manager so it does not clear the classpath
when the session deactivates. This was annoying me. Fixes bug
#29.
- Fixed resume command to show "VM resuming"
before actually resuming the VM. Otherwise events can fire
off and messages will appear out of order and be confusing.
Fixes bug #35.
- Fixed disable and enable commands to not show
inappropriate messages.
- Fixed breakpoint list function to show (none) as
necessary. Fixes bug #34.
- 0.9.4 - January 23, 2001
-
- Fixed the event request manager so it actually prints an
error message when the event request cannot be resolved. This
fixes bug #36 in which trying to set a breakpoint in a
non-matching method does not report as an error.
- January 14, 2001
- I have installed Bugzilla for the purpose of tracking JSwat
issues.
- 0.9.3 - January 12, 2001
-
- Fixed popup menu on message and standard output panels.
Added that new paste option a couple days ago and did not
test it very well.
- Fixed array index out of bounds problem in local vars
panel.
- 0.9.2 - January 10, 2001
-
- Fixed listen command to work correctly. It now properly
stops listening for incoming connections after a connection
has been made.
- Changed class panel so it updates much less frequently
(around 10 times) instead of doing a little update for every
class that loads. Hopefully this will make JSwat connect to
the debuggee VM faster.
- 0.9.1 - January 7, 2001
-
- Made a workaround to JPDA bug 4331522: setting a
breakpoint in class named "Foo" may actually
resolve to another class whose name starts with
"Foo".
- Fixed setting breakpoint from source view. Previously the
SourceManager mapClassName() would find the first match
rather than the best one. This resulted in messages about the
breakpoint being deferred.
- Added copy/paste functionality to the command input field
and the debuggee VM standard input field.
- 0.9 - December 31, 2000
-
- Changed the distribution format of JSwat. Source is now
in a separate zip file from the classes. The classes are
placed in a jar file by themselves and the docs are put in a
zip file with the jar file.
- Fixed the preferences upgrade so it will set the user
preferences filename. Without this the user preferences were
not saved.
- Changed source view code to reload the source only when a
debugging session becomes active. This reduces confusion due
to the source view updating during debugging, causing the
view to become out of sync with the class being debugged.
This was a user request.
- Changed the LocalsTreePanel to stop causing frequent
visual updates so as to run a lot faster. Switching to use
this panel over the LocalsTablePanel since it offers the
ability to examine variables.
- Fixed an InvalidStackFrameException in local vars and
stack panel.
- Added dialog for creating macros.
- Wrote the implementation for the listen command.
- Added a "Copy" popup menu to the message and
output panels.
- Added a "Capture Messages" action to save
output from the message panel to either the jswat stdout
stream or a named file.
- 0.8.12 - December 5, 2000
-
- This release uses JConfigure version 0.4 so the user
preferences dialog looks prettier.
- Attach action now remembers the previously entered host
and port.
- JSwat now automatically upgrades user preferences in the
event that the application preferences have changed.
- Start button now deactivates current session rather than
creating a new one. This, in effect, provides a button for
restarting the current debug session.
- 0.8.11 - December 1, 2000
-
- New set command to change variable values, added by Bill
Smith.
- Fixed 'attach', 'load' and 'run'
to check for null VM connection.
- Fixed 'detach' to say right thing when invoked in
an inactive session.
- Improved help information for 'attach' to explain
hidden features.
- Fixed null pointer exception when invoking 'where
all' command and no current thread had been set.
- Fixed local vars panel to show "(native
method)" in case of an exception when accessing the
StackFrame.visibleVariables() method.
- Right clicking on the source view line number to set a
breakpoint is now working. This was a recent feature
request.
- Right clicking on the source view when there is no active
session displays a menu with a single "Session not
active" menu item. This was a recent feature
request.
- Fixed SourceManager to force loading classpath in
mapSourceFile. This corrects the problem of 'view
<source.java>' not working before the session is
made active.
- Fixed MainWindow so keyboard shortcut preference changes
take effect right away. Unfortunately, there is a JMenuItem
accelerator bug that I have described in the jswat
readme.
- SourceManager reads the source path setting from the Java
environment property "java.source.path" when jswat
is first started. That is, you can now set the sourcepath
from the command line like so: java
-Djava.source.path="/usr/java/src"
com.bluemarsh.jswat.Main
- SourceManager now clears the classpath when the session
ends. This is to force it to reload the classpath the next
time the session starts. Otherwise it may retain an old
setting that no longer applies.
- Upped the preferences file version to 1 (from the implied
0 version).
- 0.8.10 - November 4, 2000
-
- Fixed local variables table to show static field
variables. It now hides field variables with local variable
values, too. Static field variables are hidden by subclass
instance variables of the same name.
- Fixed a null pointer exception in that troublesome thread
panel.
- Fixed the source view auto-scroll: moved the out of
bounds check to be after the need-to-scroll check.
- Fixed the window geometry memory feature so it works no
matter how jswat is terminated. Made the feature
optional.
- 0.8.9 - October 4, 2000
-
- Enclosed classpath in double-quotes to avoid problems
when classpath contains spaces. This change affects the
'load' command and the Start menu item and toolbar
button.
- Main window remembers its size and position (saved to
~/.jswat_settings).
- JSwat remembers what the look and feel was set to.
- A preferences dialog is now available for setting some
preferences. Some of the settings do not take affect until
JSwat is restarted. These are saved to
~/.jswat_preferences.
- 0.8.8 - September 21, 2000
-
- Added information about load command passing arguments to
the debuggee VM.
- Added information about the as yet not implemented
'listen' command.
- Changed SourceManager.mapClassNameLow() so it deals with
classpath entries that end with the file separator character.
This is unusual but we need to handle this case
properly.
- 0.8.7 - September 2, 2000
-
- Changed Session so it includes the current working
directory in the classpath in the event that the classpath is
empty. This supports an assumption made in SourceManager and
may solve a recent problem.
- 0.8.6 - August 30, 2000
-
- Matt C. made source windows maximize by default when they
are first opened. Someday this will be a configurable option,
but for now this is a good default.
- Peter Boothe solved the
source-view-popup-menu-disappearing problem for Solaris and
Linux. The menu still works fine for Win32.
- Fixed problem of reading user's home directory
.jswatc file twice.
- 0.8.5 - August 17, 2000
-
A set of fixes by Matt C.:
- Fixed command manager to scroll the command history
correctly, and added up/down cursor support as well
(previously only Ctrl-P and Ctrl-N worked).
- Fixed local variables table to catch exception when
invalid thread is selected.
- Modified the callers panel to switch frames and show
source for the row that is double-clicked on.
- Modified the threads panel to support double-clicking to
switch the current thread.
- 0.8.4 - August 14, 2000
-
- Moved the debuggee VM launching/attaching code from the
Session class to the appropriate actions. This simplifies the
Session class a bit. Created a VMConnection class to hold the
necessary objects for relaunching/reattaching to a debuggee
VM.
- Renamed the JSwat package to use all lower-case names, as
the Java coding conventions call for.
- Renamed the bootstrap class to Main. This means you
invoke JSwat with 'java com.bluemarsh.jswat.Main'
now.
- Changed the license to GNU General Public License (from
LGPL).
- 0.8.3 - August 10, 2000
-
- Fixed CommandManager to check for empty string before
accessing the first character of the input.
- Fixed SourceManager to use canonical file paths when
comparing input to classpath and sourcepath entries.
- 0.8.2 - July 30, 2000
- Added a new stack frames panel, which shows the list of stack
frames whenever execution stops at a breakpoint or exception. See
the docs for details on its features.
- 0.8.1 - July 29, 2000
-
- Fixed Output panel so it continues to scroll to new
output, as it used to do.
- Added tooltip to local variables display. Shows all the
field variables for objects, which is much more informative
than the usual "instance of ..." label.
- The dump command now prints array values. If the array
has more than 20 elements, only the first 10 and last 10
elements are shown.
- 0.8 - July 23, 2000
- Finished the new watchpoints panel. Now possible to watch any
field variable of any object and see it change value as the
program runs.
- 0.7.12 - July 21, 2000
-
- Improved JSwat so it reads the
.jswatrc
file
in the current directory, in addition to the one in the
user's home directory. The home directory copy is
processed first, then the current directory copy.
- Also added a couple more previously undocumented features
to the JSwat features list.
- 0.7.11 - July 20, 2000
-
- Fixed a bug in the VM start dialog so it adds a space
between the classpath and JVM arguments.
- The VM start dialog now saves the entries from one start
to the next.
- The VM start dialog now offers a "start
suspended" checkbox for controlling whether the debuggee
VM is started after loading.
- The load command now takes the usual Java VM options,
just like the VM start dialog.
- An unfinished watchpoints panel has been added.
Please ignore it.
- 0.7.10 - July 16, 2000
-
- Changed all the commands to use my new StringTokenizer.
Makes some string functions more efficient.
- Allowed clear, disable, and enable to operate on multiple
breakpoints.
- Suspend and resume commands can operate on multiple
threads at once.
- Fixed source view scroller so it scrolls to the bottom of
the file when necessary. I made the original code too
cautious and it would not scroll at all even when it should
have.
- Added 'go' and 'thread' options to the
stop command. These flags control which threads in the
debuggee VM are paused upon the event.
- 0.7.9.1 - July 15, 2000
- Screwed up and did not make the previous build using the
latest code. I had made the code changes on the laptop but made
the build on the workstation without first doing 'cvs
update' to get the changes made from the laptop. Duh.
- 0.7.9 - July 14, 2000
- Fixed the thread synchronization issues that only manifested
themselves on Java VMs using native threads. Those darn missed
notifications. Now JSwat won't hang when you try to exit on
Win32 and Solaris.
- 0.7.8 - July 12, 2000
-
- Improved the auto-scrolling behavior of the source view;
it only scrolls when the single-stepping line reaches near
the bottom of the view. Also prevents scrolling past the end
of the text area.
- Fixed SourceManager.mapSourceFile() so it properly
returns the results of files found in the sourcepath.
- Fixed bug in thread panel that occurred only rarely, when
the session deactivated and thead death events were being
handled at the same time.
- 0.7.7 - July 9, 2000
-
- Changed SourceManager to deal with inner classes (i.e.
the $) by simply removing everything after the $ and thus
finding the source file correctly. Note that breakpoints
worked regardless of this change.
- Replaced most of the icons with new ones from The Swing
Connection. Modified the remaining icons to match the new
ones from TSC. Added a couple of new icons for About and
Refresh, also from TSC.
- Fixed RefreshAction so it checks for active session
first. Otherwise some panels choke when refresh() is called
during an inactive session.
- Changed the way JSwat handles deferred event request
settings (such as breakpoints). Now correctly sets the
deferred breakpoints as soon as possible.
- Changed how output from the debuggee VM is read. This is
only the first change required to fix the output reading
problems.
- Fixed bug in local variables panel where 'this'
was null.
- 0.7.6.3 - July 8, 2000
- Fixed problem with source view popup not being able to set
breakpoints. This is correcting the fix made to SourceManager in
0.7.6.2.
- 0.7.6.2 - July 6, 2000
- Fixed a problem in the source manager that was not correctly
converting the file separators to periods.
Improved exception handling in locals panel and thread
panel.
- 0.7.6.1 - July 5, 2000
- The JSwat package was missing several required classes from
the util library. Added ability to set classpath before launching
the debuggee class. Use '
classpath
' followed
by 'load
' or 'run
' to
launch the debuggee VM.
- 0.7.6 - July 4, 2000
-
- Fixed a problem in the breakpoints dialog after the
recent change of the SessionListeners. It was not showing any
breakpoints.
- Added a Close and Add button to the breakpoints dialog.
The Add button invokes the breakpoint setting dialog.
- Added a SessionListenerList to manage the SessionListener
objects in a reliable manner. This will prevent any
synchronization problems.
- Added two new commands, stdout and stderr, for printing
to console. I found these very useful when debugging
JSwat.
- Fixed the problem with the source view not dropping the
current line indicator when the VM resumes.
- Fixed a problem in CommandManager which did not show an
appropriate error message when an invalid command was
entered.
- Converted resources/JSwat.properties to Unix file format.
This fixed a problem on Win32 where the 'commands'
key was not read properly.
- Added a case-insensitive search to the
SourceManager.mapClassName() method. This works around stupid
Win32 where files can be in either case and are still allowed
to match.
- Removed the out-dated BUGS.txt file.
- The 'resume' and 'suspend' commands now
handle the case of the session not being active.
- 0.7.5 - June 29, 2000
- Added some more detailed and appropriate error messages to
the stop command.
Fixed a bug that appeared in JDK 1.3. StringTokenizer apparently
has fixed a bug and that messed up JSwat's stopCommand. I
have since fixed the stopCommand to do the right thing.
- 0.7.4 - June 27, 2000
- Fixed all the Managers and JSwatPanels to set their Session
reference in the
init()
method instead of in
activate()
. Also added a requested feature to allow
passing the class (and any arguments for it) on the command line
when invoking JSwat.
- 0.7.3 - June 25, 2000
- Changed JSwatCommand to print help for commands using
classname. Removed all the description() and help() methods from
all the command classes. This makes the command classes smaller
overall.
Fixed a bug in CommandManager where it would not create macros
from within scripts. Macros should now be working
everywhere.
- 0.7.2 - June 24, 2000
- Overhauled the panels to improve and simplify the API. No
change from a user standpoint. Created a new Manager class that
several key classes now extend. Again, no change for the user,
just simplifies the Session code a little bit.
Added a 'macro' command to allow creating command
macros. This way users can save a set of commands and invoke them
with a single keyword.
Fixed a bug in 'sourcepath' command when the source path
was empty.
- June 16, 2000
- It was reported to me that CVS access was not working due to
permission problems on the server. I have since made
modifications to the file permissions, user/group ownership of
the files, and created the appropriate CVS password file. If CVS
access is still not working, let me know.
- June 14, 2000
- I have set up two mailing lists
for JSwat, one for users of JSwat and one for the developers
contributing to it. If you are at all interested in JSwat, please
join one or both of the lists.
- 0.7.1 - June 11, 2000
- Sorted the variables in the LocalsTablePanel display by name
of the variable. Added messages in a couple of places to point
users in the right direction when the debuggee VM fails to start.
For instance, look at the Input/Output panel for possible error
messages from the VM.
- 0.7 - May 7, 2000
- Fixed the VMEventHandler so it handles JDI events
synchronously. This prevents the "Bad file descriptor"
problem seen by some folks. Fixed the Log class so it always
writes the log contents to the attached writers on the AWT event
dispatching thread. This gets around a new problem caused by the
above change. This is really how it should have been done in the
first place. Discarded the Loader class since it is unnecessary
now with the change in the Log class. Now the program launches
faster and writes to the message panel faster, too.
- 0.6.1 - May 3, 2000
- Fixed a really stupid, embarrassing problem in the
ThreadPanel. I was using the assigned row number to keep track of
threads in the table. Silly me, I forgot all about threads dying
"out of order". Note to others: if you review the JSwat
code and find some brain dead coding, please tell me.
- 0.6 - April 30, 2000
- Added two nice features. First, breakpoints are now
referenced by number, so clearing, and dis/enabling breakpoints
is much simpler. Second, a very nice feature is the ability to
set breakpoints by clicking in the source code viewer. A
context-sensitive popup menu appears and allows adding, removing,
dis/enabling breakpoints.
- 0.5.7 - April 16, 2000
- Changed the local variables and threads panels to display
their information using tables. This makes the display more
readable, I hope. Sorry it has been such a long time since the
last update. Next I plan to support setting breakpoints directly
from the source code display. Also, in a recent change to all of
my Java code, the
com.bms
package was renamed to
com.bluemarsh
, since there appears to already be a
"bms.com" and it is not BlueMarsh.
- 0.5.6.2 - January 6, 2000
- Improved handling of errors in setting breakpoints. Now more
accurately reports problems when setting a breakpoint where no
line number information exists. I have found that the latest
version of the IBM Java compiler, jikes, has problems generating
proper debugging information. You may want to use javac from the
JavaSoft JDK instead.
- 0.5.6.1 - December 27, 1999
- Fixed the JSwat package. It was missing the com.bluemarsh.io
classes. If you downloaded JSwat in the last two days, you should
download this one instead.
- 0.5.6 - December 25, 1999
- Added support for the 'sourcepath' command, which
provides an additional path to source code. Added
'classpath' command to print out the classpath setting
from the debuggee VM, if available. Session now uses debuggee
VM's classpath, if available.
- 0.5.5 - December 13, 1999
- When setting a breakpoint with 'stop' it now finds
the next possible code line at which to set the breakpoint, in
the event that the requested line does not contain executable
code. Also fixed a couple of minor problems in the source view.
It would not update itself visually when the session ended. It
also would show the current stepping line indicator
("==>") while you had stepped into a function in
another source file.
- 0.5.4 - December 4, 1999
- Fixed a bug in the source file viewer. The second and
subsequent file windows failed to show all the line numbers in
the row header. Cannot be sure what caused this problem, but I
believe it was the component listener having problems (it would
not receive the 'componentResized' call). I changed the
SourceRowHeader class to not use ComponentListener and instead
use another mechanism for keeping up-to-date. Thanks to Teo Kian
Hui for finding the problem.
- 0.5.3 - October 17, 1999
- Improved the source viewer substantially. It now determines
all the existing breakpoints and current stepping location when a
view is opened. Properly unregisters itself when the view closes,
allowing the view to be successfully reopened later. Added three
new commands: frame, up, and down for managing the stack frame
view.
Renamed the NoSessionException to NotActiveException, which is
more logical.
Did a little bit of cleanup in various classes.
- 0.5.2 - October 3, 1999
- Enhanced the source file viewer so that it shows the current
line being single-stepped. Also queries the existing breakpoints
when a new source file is viewed, so the row header is set
appropriately. Opening the same file will now bring the existing
window forward, rather than opening the file twice. Added three
new toolbar buttons for single stepping.
Internally, the event handler now supports priorities for event
listeners. This allows the Session to get events before other
listeners so it may set the current thread, among other
things.
- 0.5.1 - September 12, 1999
- Commander now supports '<n> <command>'
syntax for running a given command multiple times. ThreadPanel
has been corrected to actively show new threads as the debuggee
VM is running. Mike Calder provided a bug fix to the breakpoints
panel, too. Thanks, Mike! Also added the disable, enable, and
view commands.
- 0.5 - September 6, 1999
- All known problems are corrected in this version (assuming
you use either JDK 1.2.1 with JPDA 1.0 or JDK 1.3). Has a pile of
debugging commands now (43 to be exact), making this debugger
practically useful. I feel confident that the textual part of the
debugger has reached a high point. I am now going to turn my
attention to the graphical feature set.
- 0.3 - August 29, 1999
- Time to drop the 'alpha' and adopt a real version
numbering-system. I am starting at 0.3 since this debugger is
roughly a third of the way complete. There are still many basic
features yet to implement.
Now supports single-key stepping (i.e. 'F11' will
single-step through code) and shows local variables in a window.
Only problem is the local variable code crashes the debuggee
process. :( I am going to contact the Java debugger folks for
assistance on this bug.
- Alpha-10 - August 26, 1999
- Sorry for all these frequent updates. I will try to stick to
a more regular schedule of every Sunday night or something.
Anyway, this release has stderr, stdout, and stdin support. It
is not great but it functions. I figure most of the time you will
be debugging a graphical application anyway.
- Alpha-9 - August 22, 1999
- No new debugger commands. Started working on adding
stdout/stdin support. Fixed some potential problems with
Commander and added
Ctrl-p
and Ctrl-n
support for perusing the command history.
- Alpha-8 - August 17, 1999
- Added several new commands, but I have forgotten which ones
they are so I will list all the supported commands:
catch,
classes, clear, exit, help, ignore, kill, load, locals, methods,
next, resume, step, stepi, stop, suspend, thread, threadgroups,
threads, where, wherei
. Next I will be working on the
'print' and 'run' commands, which are the only
remaining commands that I feel are needed. After that I will be
working on the graphical side of the debugger.
- Alpha-7 - August 15, 1999
- Added the locals, thread, where, and wherei commands.
- Alpha-6 - June 14, 1999
- Setting breakpoints now works correctly. JSwat now supports
command aliases and a start script. Numerous bug fixes and other
small enhancements.
- Alpha-5 - May 31, 1999
- The textual interface to the debugger is advancing. It now
supports several commands (catch, cont, exit, help, ignore, kill,
load, suspend, and threads) through the use of "command
classes". Still need to work on setting breakpoints.
- Alpha-4.5 - May 23, 1999
- Not much added this time. Started a few things at the same
time and have not completed any of them. There is a breakpoint
manager and source code shows which lines have break points (not
very smart, though). Started to code a text-based debugger. This
will eventually provide all the basic debugger features. I plan
to get the basic debugger working and then deal with the
graphical side of things.
- Alpha-4 - May 2, 1999
- Displays a list of the breakpoints, which can be enabled and
disabled. Source code is displayed in a JInternalFrame with a
gutter showing the line numbers. Automatically reloads source
file if modified by another application.
- Alpha-3 - April 25, 1999
- Now has some useful graphical components so you can see what
is going on. Includes a list for displaying the threads in the
running VM, a tree for showing all of the classes, and a message
window for display of important messages.
- Alpha-2 - March 30, 1999
- A slightly more featureful version of JSwat. Can start and
stop any given class (provided it has a
main
method)
and detect the death of the running VM.
- Alpha-1 - March 15, 1999
- A very early version of JSwat. It has a very limited set of
features, including: starting a new VM, stopping the VM, and
listing running VMs that can be attached to.
- Web Pages - February 25, 1999?
- These web pages were created and are being updated and
improved on a continual basis.
- Conception - February 22, 1999
- The idea of JSwat was conceived asexually by me, Nathan
Fiedler. Why? Because I hate paying $300 for a Java IDE that
turns out not to properly support the target platform it said it
could support.
Back