Hello,

I'm trying to set up a basic editor in gwt. Everything works fine, the
editor displays the data and saves but when I try to save again (i.e.
press the save button 2 times) it throws me the error "A request is
already in progress " in the second save, but the first time the
editor saves the data correctly.

How can I solve this, perhaps creating a new Request?

//
//Methods that edit and save the editor, locate in
ComposerEditorContainer class
//
public void edit(RequestContext requestContext) {

                editorDriver = GWT.create(Driver.class);
                editorDriver.initialize(requestFactory, composerEditor);
                editorDriver.edit(composer, requestContext);
        }

public void save() {

                ComposerRequest composerRequest = (ComposerRequest) editorDriver
                                .flush();
                ComposerProxy newProxy = composerRequest.edit(composer);
                composerRequest.persist(newProxy).fire();
        }

//
//Events in a presenter that save and initialize the editor
//
                eventBus.addHandler(SaveButtonClickedEvent.TYPE,
                                new SaveButtonClickedEventHandler() {
                                        @Override
                                        public void 
onSaveButtonClicked(SaveButtonClickedEvent event) {

                                                ((ComposerEditorContainer) 
composerEditorContainer)
                                                                .save();
                                        }

                                });

//this method gets the ComposerProxy from the event and initializes
the editor
//
                eventBus.addHandler(BrowserItemClickedEvent.TYPE,
                                new BrowserItemClickedEventHandler() {
                                        @Override
                                        public void onBrowserItemClicked(
                                                        BrowserItemClickedEvent 
event) {


                                                requestFactory = 
GWT.create(AppRequestFactory.class);
                                                requestFactory.initialize(new 
SimpleEventBus());

                                                ComposerRequest request = 
requestFactory
                                                                
.getComposerRequest();

                                                Request<ComposerProxy> req = 
request.findComposer(event
                                                                
.getclickedItem().getValue());

                                                req.fire(new 
Receiver<ComposerProxy>() {

                                                        public void 
onSuccess(ComposerProxy arg0) {

                                                                
ComposerEditorContainer editorContainer = new
ComposerEditorContainer(
                                                                                
requestFactory, arg0);
                                                                
editorContainer.edit(requestFactory
                                                                                
.getComposerRequest());
                                                                view.clear();
                                                                
view.addWidget(editorContainer);

                                                                
composerEditorContainer = editorContainer;
                                                        }
                                                });

                                        }
                                });


//Error that appears when saving for the second time
Caused by: java.lang.IllegalStateException: A request is already in
progress
    at
com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.checkLocked(AbstractRequestContext.java:
960)
    at
com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.editProxy(AbstractRequestContext.java:
510)
    at
com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.edit(AbstractRequestContext.java:
502)
    at
com.google.test.client.editor.ComposerEditorContainer.save(ComposerEditorContainer.java:
58)
    at com.google.test.client.presenter.BrowserDetailPresenter
$1.onSaveButtonClicked(BrowserDetailPresenter.java:48)
    at
com.google.test.client.event.SaveButtonClickedEvent.dispatch(SaveButtonClickedEvent.java:
17)

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to