Issue Details (XML | Word | Printable)

Key: SHALE-48
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: sean schofield
Votes: 3
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Shale

[shale] Serious issue with dialog state

Created: 26/May/05 03:11 AM   Updated: 23/Jan/07 04:40 PM
Component/s: Dialog
Affects Version/s: None
Fix Version/s: 1.0.4

Environment:
Operating System: other
Platform: PC
Issue Links:
Reference
 

Bugzilla Id: 35066


 Description  « Hide
Consider the following example:

Start up the usecases example and begin creating a new profile. Stop when you
get to page 2. Now open a new tab (use Firefox) and click the logon dialog
again. You get an exception:

java.lang.IllegalArgumentException: Position[dialogName=Edit
Profile,stateName=Page 2],outcome=dialog:Log On

This is because you have initiated the same dialog without finishing the
previous dialog. This is not as crazy of a test as it might seem. Consider
what would happen if you opened the dialog in popup window (instead of a browser
tab) and the user closed the window prematurely ... same problem.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #437879 Mon Aug 28 23:48:48 UTC 2006 craigmcc Beginnings of experiments on improving the Dialog functionality in
Shale.

Abstract out the basic interfaces required to operate in a dialog
environment from the implementation of the state machine. The primary
interface is o.a.s.dialog2.Context, which is instantiated (in request
scope) once per active dialog for a user. It plays a similar role to
what Status does in the current implementation (but does not suffer from
"one active dialog per user" problems). In addition, there is a
simplified Dialog2NavigationHandler that utilizes the new approach to
start up a Context based on a logical outcome with a matching prefix,
but it will also be possible to start a dialog instance
programmatically, by interacting with a o.a.s.dialog2.Contexts (note the
trailing "s") instance provided by a state machine implementation.

This API is packaged in a separate package (org.apache.shale.dialog2),
and uses unique attribute keys for everything, so that it should not
interfere with the existing functionality while we are experimenting.
In fact, as you can see from the POM, it has no direct dependency on the
rest of Shale at the moment either. All you'd need to add is this JAR,
plus the state machine implementation for your favorite version (see
upcoming submits).

WARNING: This code has been desk checked, and compiles clean, but has
not been tested for real yet. I'm committing now for feedback on the
design approach, and so we can all experiment.

SHALE-10 SHALE-48 SHALE-61
Files Changed
ADD /shale/sandbox/shale-dialog2/src/main/resources/META-INF
ADD /shale/sandbox/shale-dialog2
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces
ADD /shale/sandbox/shale-dialog2/src/test/resources
ADD /shale/sandbox/shale-dialog2/src/test/java
ADD /shale/sandbox/shale-dialog2/src/main/resources
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache
ADD /shale/sandbox/shale-dialog2/src/main/resources/META-INF/NOTICE.txt
ADD /shale/sandbox/shale-dialog2/pom.xml
ADD /shale/sandbox/shale-dialog2/src/test
ADD /shale/sandbox/shale-dialog2/src/main/resources/META-INF/faces-config.xml
ADD /shale/sandbox/shale-dialog2/src/main
ADD /shale/sandbox/shale-dialog2/src/main/java/org
ADD /shale/sandbox/shale-dialog2/src/main/resources/META-INF/LICENSE.txt
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/Constants.java
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandler.java
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/Context.java
ADD /shale/sandbox/shale-dialog2/src
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/Contexts.java
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2PhaseListener.java
ADD /shale/sandbox/shale-dialog2/src/main/java
ADD /shale/sandbox/shale-dialog2/src/main/java/org/apache/shale

Repository Revision Date User Message
ASF #437880 Mon Aug 28 23:51:07 UTC 2006 craigmcc State machine implementation for shale-dialog2 that refactors the
existing machinery to use the new APIs. The new implementation has not
been tested yet.

This implementation was partly done as a proof that the abstracted API
in shale-dialog2 is actually sufficient to implement a version of the
existing functionality, but also might be useful if we decide to stick
with some variant of the existing state machine approach.

SHALE-10 SHALE-48 SHALE-61
Files Changed
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyContext.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/Position.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/AbstractState.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/ViewStateImpl.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/resources
ADD /shale/sandbox/shale-dialog2-legacy/src/main/resources/META-INF
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache
ADD /shale/sandbox/shale-dialog2-legacy
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/SubdialogStateImpl.java
ADD /shale/sandbox/shale-dialog2-legacy/src/test
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/DialogImpl.java
ADD /shale/sandbox/shale-dialog2-legacy/src/test/java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/State.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/SubdialogState.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/Dialog.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/ActionStateImpl.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyContexts.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/ViewState.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org
ADD /shale/sandbox/shale-dialog2-legacy/src/main/resources/META-INF/LICENSE.txt
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/EndStateImpl.java
ADD /shale/sandbox/shale-dialog2-legacy/src
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/TransitionImpl.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config/ConfigurationParser.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale
ADD /shale/sandbox/shale-dialog2-legacy/src/test/resources
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy
ADD /shale/sandbox/shale-dialog2-legacy/src/main/resources/META-INF/NOTICE.txt
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/EndState.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/ActionState.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/model/Transition.java
ADD /shale/sandbox/shale-dialog2-legacy/pom.xml
ADD /shale/sandbox/shale-dialog2-legacy/src/main/resources/META-INF/faces-config.xml
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/Globals.java
ADD /shale/sandbox/shale-dialog2-legacy/src/main
ADD /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/config

Repository Revision Date User Message
ASF #437881 Mon Aug 28 23:52:23 UTC 2006 craigmcc Skeleton of support for Jakarta Commons SCXML as a state machine using
the shale-dialog2 abstraction APIs. I got distracted by refactoring the
legacy state machine support so there isn't any meat here yet ... but
that will be the next step.

SHALE-10 SHALE-48 SHALE-61
Files Changed
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2
ADD /shale/sandbox/shale-dialog2-scxml/src/test/java
ADD /shale/sandbox/shale-dialog2-scxml/pom.xml
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale
ADD /shale/sandbox/shale-dialog2-scxml/src/test/resources
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org
ADD /shale/sandbox/shale-dialog2-scxml/src/main/resources/META-INF/LICENSE.txt
ADD /shale/sandbox/shale-dialog2-scxml/src/main/resources
ADD /shale/sandbox/shale-dialog2-scxml/src/main/resources/META-INF/NOTICE.txt
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache
ADD /shale/sandbox/shale-dialog2-scxml/src
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/ScxmlContext.java
ADD /shale/sandbox/shale-dialog2-scxml/src/test
ADD /shale/sandbox/shale-dialog2-scxml/src/main/resources/META-INF/faces-config.xml
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml
ADD /shale/sandbox/shale-dialog2-scxml/src/main
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java
ADD /shale/sandbox/shale-dialog2-scxml/src/main/resources/META-INF
ADD /shale/sandbox/shale-dialog2-scxml
ADD /shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/ScxmlContexts.java

Repository Revision Date User Message
ASF #437894 Tue Aug 29 00:54:39 UTC 2006 craigmcc Refactor the reading of the configuration files from LegacyContext to
LegacyContexts, because that is where it's going to get encountered first
(in the create() method).

SHALE-10 SHALE-48 SHALE-61
Files Changed
MODIFY /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyContexts.java
MODIFY /shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyContext.java