Looks like we can't reproduce the issue or there's a problem in the test case provided.
  1. #1
    Sencha User
    Join Date
    Mar 2012
    Posts
    88
    Vote Rating
    3
    esag_dk is on a distinguished road

      0  

    Default editing.onCancelEdit + escape + rpc call = Exception

    editing.onCancelEdit + escape + rpc call = Exception


    Calling an RPC service method in editing.onCancelEdit leads to an exception (tested with Firefox 10, GXT 3.0.1 and 3.0.3). This only occurs when you press the escape key - click on another cell instead and the rpc call returns correctly.

    Launch my example and edit the first line/third column ("muh") and press escape instead of return. This leads to a StatusCodeException:
    com.google.gwt.user.client.rpc.StatusCodeException: 0 at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:209)
    at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
    at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
    at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
    at java.lang.Thread.run(Unknown Source)

    Module:
    Code:
    	public void onModuleLoad() {
    
    		MyGrid grid = new MyGrid();
    		
    		VerticalLayoutContainer vlc = new VerticalLayoutContainer();
    		vlc.setPixelSize(600, 250);
    
    
    		vlc.add(grid, new VerticalLayoutData(1, 1));
    		RootPanel.get().add(vlc);
    	}
    Grid:
    Code:
    public class MyGrid extends Grid<TestDTO> {	static TestProvider prov = GWT.create(TestProvider.class);
    
    
    	public static ColumnConfig col1;
    	private static ColumnConfig col2;
    	private static ColumnConfig col3;
    
    
    	private final GridInlineEditing<TestDTO> editing;
    
    
    	public MyGrid() {
    		super(new ListStore<TestDTO>(prov.oid()), new ColumnModel(
    				getColumnConfigList()));
    
    
    		setBorders(true);
    		getView().setColumnLines(true);
    		getView().setStripeRows(true);
    		getView().setColumnLines(true);
    		getStore().add(new TestDTO(1, 3, 1, "muh"));
    		getStore().add(new TestDTO(2, 2, 4, "muh"));
    
    
    		editing = new GridInlineEditing<TestDTO>(this);
    		editing.setClicksToEdit(ClicksToEdit.TWO);
    		editing.addEditor(col3, new TextField());
    
    
    		getStore().setAutoCommit(true);
    
    
    		editing.addCancelEditHandler(new CancelEditHandler<TestDTO>() {
    			@Override
    			public void onCancelEdit(CancelEditEvent<TestDTO> event) {
    				TestServiceAsync service = (TestServiceAsync) GWT
    						.create(TestService.class);
    				 service.foo(new AsyncCallback<String>() {
    
    
    					@Override
    					public void onFailure(Throwable caught) {
    						caught.printStackTrace();
    					}
    
    
    					@Override
    					public void onSuccess(String result) {
    						System.out.println("everything's shiny");
    					}
    				});
    			}
    		});
    	}
    
    
    	private static List<ColumnConfig> getColumnConfigList() {
    		List<ColumnConfig> columnConfigList = new ArrayList<ColumnConfig>();
    
    
    		col1 = new ColumnConfig(prov.att1(), 150, "Column 1");
    		columnConfigList.add(col1);
    		col2 = new ColumnConfig(prov.att2(), 150, "Column 2");
    		columnConfigList.add(col2);
    		col3 = new ColumnConfig(prov.att3(), 150, "Column 3");
    		columnConfigList.add(col3);
    
    
    		return columnConfigList;
    	}
    
    
    	interface TestProvider extends PropertyAccess<TestDTO> {
    
    
    		ModelKeyProvider<TestDTO> oid();
    
    
    		ValueProvider<TestDTO, Integer> att1();
    
    
    		ValueProvider<TestDTO, Integer> att2();
    
    
    		ValueProvider<TestDTO, String> att3();
    	}
    
    
    	public GridInlineEditing<TestDTO> getEditing() {
    		return editing;
    	}
    
    
    }
    ServiceImpl:
    Code:
    public class TestServiceImpl extends RemoteServiceServlet implements
    		TestService {
    	public String foo() {
    		return "bar";
    	}
    }

  2. #2
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      1  

    Default


    This should be expected. Pressing ESC will cancel any active call.

    Try to start your server call in a deferred command, this should solve it.

  3. #3
    Sencha User
    Join Date
    Mar 2012
    Posts
    88
    Vote Rating
    3
    esag_dk is on a distinguished road

      0  

    Default


    Thanks, this solved the problem

Thread Participants: 1