Use mvnDebug instead of mvn at the command line. This will start it in
debug mode and you can attach to it from IDEA.
Otherwise Wicket quickstart comes with src/test/java/**/Start.java.
Run this class as normal Java application with main(String[]). From
the context menu in the .java file choose "Debug 'Start.main()'"

2012/3/1 "André Schütz" <[email protected]>:
> Hi Martin,
>
> I compile the wicket project via Maven from the command line. I do not use 
> the IDE to start the project and trace it? Do you have a hint how I can do 
> that? As IDE, Ia m using  IntelliJ IDEA.
>
> Andre
>
> -------- Original-Nachricht --------
>> Datum: Thu, 1 Mar 2012 09:40:30 +0200
>> Von: Martin Grigorov <[email protected]>
>> An: [email protected]
>> Betreff: Re: Multi Tab and Session
>
>> 2012/2/29 Andre Schütz <[email protected]>:
>> > Hi,
>> >
>> > I could identify the cause of the problem, but still have no
>> > solution.
>> >
>> > I set some breakpoints and made some output messages to trace
>> > the system. The following thinks happened:
>> >
>> > (1)
>> > I submit a search in Tab1. The search word will be passed as
>> > Page Parameter to Page2 in Tab1. While Tab1 is showing the loading
>> > animation with it AjaxSelfUpdatingTimerBehavior, I submit a second
>> > search in Tab2. Tab2 switches to its Page2 and the loading animation
>> > stops in both Tabs.
>> >
>> > Reason:
>> > --> The constructors of Page2 is called twice on the two Tabs.
>> >
>> > As diagram:
>> > 01.) Tab1: Page1 submit search
>> > 02.) Tab1: Page2 (Page id = 14) calls its constructor and adds a PanelA
>> > 03.) Tab1: shows loading animation with its
>> AjaxSelfUpdatingTimerBehavior at PanelA
>> > 04.) Tab2: Page1 submit search
>> > 05.) Tab2: Page2 (Page id = 16) calls its constructor and adds a PanelA
>> > 06.) Tab2: shows loading animation with its
>> AjaxSelfUpdatingTimerBehavior at PanelA
>> > 07.) Tab1: Page2 (Page id = 17) calls its constructor
>> > 08.) Tab1: does not update anymore
>> > 09.) Tab2: Page2 (Page id = 18) calls its constructor
>> > 10.) Tab2: does not update anymore
>> >
>> > I do nothing from the beginning of step 7 and do not know why the
>> constructor
>> > is called again.
>>
>> Put a breakpoint in Page2 constructor and see why it is called.
>>
>> >
>> > (2)
>> > The same odd behavior happens, when I do the following. I submit a
>> search
>> > in Tab1 from its Page1. While the loading animation is shown, I reload
>> the
>> > Page1 in Tab2. The constructor of Page2 in Tab1 is called again and the
>> > Page2 in Tab1 stops its update progress.
>> >
>> > As diagram:
>> > 01.) Tab1: Page1 submit search
>> > 02.) Tab1: Page2 (Page id = 22) calls its constructor and adds a PanelA
>> > 03.) Tab1: shows loading animation with its
>> AjaxSelfUpdatingTimerBehavior at PanelA
>> > 04.) Tab2: Reload any Page
>> > 05.) Tab1: Page2 (Page id = 23) calls its constructor
>> > 06.) Tab1: does not update anymore
>> >
>> >
>> > I really can't explain to myself, why the constructor is called again.
>> But I think
>> > that this second call in the individual Tabs is crashing my application.
>> > Any ideas about this odd behavior?
>> >
>> > Thank in advance,
>> > Andre
>> >
>> >
>> > On Wed, 29 Feb 2012 10:10:37 -0800
>> > Dan Retzlaff <[email protected]> wrote:
>> >
>> >> Your description is clear, thank you. I'm not certain that the
>> background
>> >> thread's reference to the Session is valid outside of the servlet
>> request.
>> >> I would verify your assumption by logging the session's object ID when
>> the
>> >> value is read/written.
>> >>
>> >> I have one other thought for you. I believe Wicket keeps the most
>> recent
>> >> page in a deserialized state to save itself the work of deserialization
>> in
>> >> the common case of it being required by the next request. (I think the
>> >> logic is in PageStoreManager, but it's not clear to me. Hopefully a dev
>> can
>> >> confirm/correct me.) At any rate, this may cause the difference between
>> >> your two scenarios. In your successful, single-tab scenario, you may be
>> >> benefiting from a lack of serialization/deserialization round-trip. We
>> have
>> >> noticed this difference when our components have transient variables
>> that
>> >> aren't set to null in detach(): in the most recent page the variable
>> >> remains not-null; if the session has intermediate requests for other
>> pages,
>> >> the variable is null when next accessed.
>> >>
>> >> Good luck,
>> >> Dan
>> >>
>> >> 2012/2/29 "André Schütz" <[email protected]>
>> >>
>> >> > Hi,
>> >> >
>> >> > Page1 gets the click of the submit button and collects the search
>> word.
>> >> > This will be changed into a hash value and set as PageParameter
>> >> > (q=Hashvalue) to the ResponsePage which is Page2.
>> >> > Additionally, I store the hash value into a session HashMap which
>> holds
>> >> > the hash value as key and an own class with the original search word.
>> This
>> >> > class will be filled with the results from the search of the
>> background
>> >> > thread.
>> >> >
>> >> > On Page2, I have the PageParameter as hash value and can search for
>> the
>> >> > correct entry of the HashMap in the session to react, when the
>> results are
>> >> > found.
>> >> >
>> >> > I hope, I could describe it.
>> >> >
>> >> > Andre
>> >> >
>> >> > -------- Original-Nachricht --------
>> >> > > Datum: Tue, 28 Feb 2012 14:27:35 -0800
>> >> > > Von: Dan Retzlaff <[email protected]>
>> >> > > An: [email protected]
>> >> > > Betreff: Re: Multi Tab and Session
>> >> >
>> >> > > Hi Andre. I'm trying to understand your setup. A quickstart may be
>> >> > > required.
>> >> > >
>> >> > > What does your Page1's onSubmit() look like? Specifically I'd like
>> to
>> >> > know
>> >> > > how Page2 knows to watch for "word2".
>> >> > >
>> >> > > 2012/2/28 Andre Schütz <[email protected]>
>> >> > >
>> >> > > > Hello,
>> >> > > >
>> >> > > > I have a problem with my application that I am not able to solve
>> since
>> >> > > >  the last three days.
>> >> > > >
>> >> > > > I realized that Wicket 1.5 provides multi tab / multi window
>> support
>> >> > > > for more than one opened tab in a browser.
>> >> > > > I have a problem with multiple tabs in my program, that I want to
>> >> > > > describe now.
>> >> > > >
>> >> > > > The program consists of two pages. Page1 contains a search field
>> that
>> >> > > > will be used to type in a search word.
>> >> > > > Page2 makes the search on a database, returns the results and
>> >> > > > displays it as a list. The search will be done from a background
>> >> > > > thread that stores the result in a hashmap in the session with
>> the
>> >> > > > search word as the key. Furthermore, Page2 shows a little loading
>> >> > > > animation that will be updated (AjaxSelfUpdatingTimerBehavior),
>> when
>> >> > the
>> >> > > > result is stored in the session.
>> >> > > >
>> >> > > > Now the problem.
>> >> > > >
>> >> > > > (1) I open the application in two tabs of the same browser.
>> >> > > > (2) The URL looks as follows:
>> >> > > > Tab1 - localhost:8080/appli/?0
>> >> > > > Tab2 - localhost:8080/appli/?1
>> >> > > > (3) Tab1 gets word1 in the search field and Tab2 gets word2
>> >> > > > into the search field.
>> >> > > > (4) I press the submit button of Tab1, switch to Tab2 and press
>> the
>> >> > > > submit button, too.
>> >> > > > (5) The two Threads start to search for the results.
>> >> > > > (6) During the AjaxSelfUpdatingTimeBehavior, the result panel of
>> Page2
>> >> > > > checks
>> >> > > > in its overwritten onBeforeRender method for the results. When
>> the
>> >> > > result
>> >> > > > for the search word is found in the session, the updateBehavior
>> of
>> >> > Page2
>> >> > > > is stopped and the results will be displayed.
>> >> > > > -> Here starts my problem:
>> >> > > >
>> >> > > > None of the two pages will be updated and show the results. If I
>> start
>> >> > > > the search in one of the Tabs, the process will be finished and
>> the
>> >> > > > results displayed onto the screen.
>> >> > > >
>> >> > > > For me, it seems that both tabs share the same session data and
>> also
>> >> > > > the same updateBehavior on the Page2.
>> >> > > >
>> >> > > > Can anybody help me with that problem? Would be great.
>> >> > > >
>> >> > > > --
>> >> > > > Andre Schütz <[email protected]>
>> >> > > >
>> >> > > >
>> ---------------------------------------------------------------------
>> >> > > > To unsubscribe, e-mail: [email protected]
>> >> > > > For additional commands, e-mail: [email protected]
>> >> > > >
>> >> > > >
>> >> >
>> >> > --
>> >> > Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
>> >> > belohnen Sie mit bis zu 50,- Euro!
>> https://freundschaftswerbung.gmx.de
>> >> >
>> >> > ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: [email protected]
>> >> > For additional commands, e-mail: [email protected]
>> >> >
>> >> >
>> >
>> >
>> > --
>> > Andre Schütz <[email protected]>
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [email protected]
>> > For additional commands, e-mail: [email protected]
>> >
>>
>>
>>
>> --
>> Martin Grigorov
>> jWeekend
>> Training, Consulting, Development
>> http://jWeekend.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> --
> NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone!
> Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to