Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Using AspectJ to "Stabilize" Alpha/Beta GUI Applications

Hi,

We are thinking of building an application "stabilizer" that prevents
Java Swing applications from crashing or becoming unstable.  This
would be particularly useful for buggy alpha/beta applications but can
also be used on released code.

Moreover, we are wondering whether AspectJ would be suited for this
purpose.

Basically, the idea is this.

Suppose you are using a word processor.

If it crashes or something bad happens, you would send a bug report to
a central bug reporting server. This bug report contains some
input/state history before the crash.

The central server would use machine learning techniques to generalize
the sorts of inputs/states that lead to crashes / bad behavior.

Users would then be warned whenever they are about to enter a sequence
of commands that is likely going to lead to bad behavior/crash. In
fact, the warning could include the bug report descriptions.

In this way, you would avoid bugs even before they are fixed.

Can AspectJ be used to intercept/record Java Swing application input
events and abort callbacks?  We would like to abort actions as quickly
as possible so that we do not need to return the application to a
previous point of its execution -- which would be quite difficult to do.

For example, it may be that immediately performing Edit=>Cut after
opening a file results in a crash / bad behavior.  So in that case if
we see Edit=>Cut invoked after opening a file, we would like to give
the user the option of aborting this action.  Is this easy to do using
AspectJ for Java Swing applications?  Would such aborts likely make
the application unstable?  (We are not that familiar with Java swing
programming.)

We are also wondering if it is easy to instrument java code so that we
can associate some function call history with bug reports (not only
input events).  What technology is available to do this easily? Would
AspectJ be helpful here?

Amir


Back to the top