stemkev
11 Nov 2009, 7:09 AM
I am using a TextField that takes a custom object as its model. This model object contains a java.math.BigDecimal field.
BigDecimal is not supported by GWT but I am using a third-party extension library.
http://code.google.com/p/gwt-java-math/
However, when I submit a query to the back end I get the following stack trace. It looks as though a GXT class (RpcMap_CustomFieldSerializer) is trying to do the serialization of the BigDecimal field.
Any ideas on how to use BigDecimal in a ModelData subclass?
2009-11-11 14:45:33,503 [ERROR] An error has occured in Greenscope: java.math.BigDecimal
com.google.gwt.user.client.rpc.SerializationException:
java.math.BigDecimal
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.raiseSerializationException(transient source for com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer:429)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.extjs.gxt.ui.client.data.RpcMap_CustomFieldSerializer.serialize(RpcMap_CustomFieldSerializer.java:37)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.extjs.gxt.ui.client.data.BaseModelData_FieldSerializer.serialize(transient source for com.extjs.gxt.ui.client.data.BaseModelData_FieldSerializer:16)
at com.mycompany.myapp.client.common.dto.BigDecimalPair_FieldSerializer.serialize(transient source for com.mycompany.myapp.client.common.dto.BigDecimalPair_FieldSerializer:15)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.mycompany.myapp.client.margincall.MarginCallFilterConfig_FieldSerializer.serialize(transient source for com.mycompany.myapp.client.margincall.MarginCallFilterConfig_FieldSerializer:41)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.mycompany.myapp.client.margincall.MarginCallService_Proxy.getMarginCalls(transient source for com.mycompany.myapp.client.margincall.MarginCallService_Proxy:46)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl$2.load(MarginCallPresenterImpl.java:120)
at com.extjs.gxt.ui.client.data.RpcProxy.load(RpcProxy.java:21)
at com.extjs.gxt.ui.client.data.BaseLoader.loadData(BaseLoader.java:134)
at com.extjs.gxt.ui.client.data.BaseLoader.load(BaseLoader.java:98)
at com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar.doLoadRequest(PagingToolBar.java:678)
at com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar.refresh(PagingToolBar.java:611)
at com.mycompany.myapp.client.margincall.MarginCallGrid.refresh(MarginCallGrid.java:476)
at com.mycompany.myapp.client.margincall.MarginCallViewImpl.refreshGridContents(MarginCallViewImpl.java:151)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl.onSubmitQuery(MarginCallPresenterImpl.java:293)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl.access$1(MarginCallPresenterImpl.java:289)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl$SubmitQueryButtonListener.componentSelected(MarginCallPresenterImpl.java:315)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl$SubmitQueryButtonListener.componentSelected(MarginCallPresenterImpl.java:1)
at com.extjs.gxt.ui.client.event.SelectionListener.handleEvent(SelectionListener.java:20)
at com.extjs.gxt.ui.client.event.SelectionListener.handleEvent(SelectionListener.java:1)
at com.extjs.gxt.ui.client.event.BaseObservable.callListener(BaseObservable.java:176)
at com.extjs.gxt.ui.client.event.BaseObservable.fireEvent(BaseObservable.java:96)
at com.extjs.gxt.ui.client.widget.Component.fireEvent(Component.java:444)
at com.extjs.gxt.ui.client.widget.button.Button.onClick(Button.java:530)
at com.extjs.gxt.ui.client.widget.button.Button.onComponentEvent(Button.java:277)
at com.extjs.gxt.ui.client.widget.Component.onBrowserEvent(Component.java:760)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1320)
at com.google.gwt.user.client.DOM.dispatchEventAndCatch(DOM.java:1299)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1262)
BigDecimal is not supported by GWT but I am using a third-party extension library.
http://code.google.com/p/gwt-java-math/
However, when I submit a query to the back end I get the following stack trace. It looks as though a GXT class (RpcMap_CustomFieldSerializer) is trying to do the serialization of the BigDecimal field.
Any ideas on how to use BigDecimal in a ModelData subclass?
2009-11-11 14:45:33,503 [ERROR] An error has occured in Greenscope: java.math.BigDecimal
com.google.gwt.user.client.rpc.SerializationException:
java.math.BigDecimal
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.raiseSerializationException(transient source for com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer:429)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.extjs.gxt.ui.client.data.RpcMap_CustomFieldSerializer.serialize(RpcMap_CustomFieldSerializer.java:37)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.extjs.gxt.ui.client.data.BaseModelData_FieldSerializer.serialize(transient source for com.extjs.gxt.ui.client.data.BaseModelData_FieldSerializer:16)
at com.mycompany.myapp.client.common.dto.BigDecimalPair_FieldSerializer.serialize(transient source for com.mycompany.myapp.client.common.dto.BigDecimalPair_FieldSerializer:15)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.mycompany.myapp.client.margincall.MarginCallFilterConfig_FieldSerializer.serialize(transient source for com.mycompany.myapp.client.margincall.MarginCallFilterConfig_FieldSerializer:41)
at com.mycompany.myapp.client.margincall.MarginCallService_TypeSerializer.serialize(Native Method)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamWriter.serialize(ClientSerializationStreamWriter.java:216)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
at com.mycompany.myapp.client.margincall.MarginCallService_Proxy.getMarginCalls(transient source for com.mycompany.myapp.client.margincall.MarginCallService_Proxy:46)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl$2.load(MarginCallPresenterImpl.java:120)
at com.extjs.gxt.ui.client.data.RpcProxy.load(RpcProxy.java:21)
at com.extjs.gxt.ui.client.data.BaseLoader.loadData(BaseLoader.java:134)
at com.extjs.gxt.ui.client.data.BaseLoader.load(BaseLoader.java:98)
at com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar.doLoadRequest(PagingToolBar.java:678)
at com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar.refresh(PagingToolBar.java:611)
at com.mycompany.myapp.client.margincall.MarginCallGrid.refresh(MarginCallGrid.java:476)
at com.mycompany.myapp.client.margincall.MarginCallViewImpl.refreshGridContents(MarginCallViewImpl.java:151)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl.onSubmitQuery(MarginCallPresenterImpl.java:293)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl.access$1(MarginCallPresenterImpl.java:289)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl$SubmitQueryButtonListener.componentSelected(MarginCallPresenterImpl.java:315)
at com.mycompany.myapp.client.margincall.MarginCallPresenterImpl$SubmitQueryButtonListener.componentSelected(MarginCallPresenterImpl.java:1)
at com.extjs.gxt.ui.client.event.SelectionListener.handleEvent(SelectionListener.java:20)
at com.extjs.gxt.ui.client.event.SelectionListener.handleEvent(SelectionListener.java:1)
at com.extjs.gxt.ui.client.event.BaseObservable.callListener(BaseObservable.java:176)
at com.extjs.gxt.ui.client.event.BaseObservable.fireEvent(BaseObservable.java:96)
at com.extjs.gxt.ui.client.widget.Component.fireEvent(Component.java:444)
at com.extjs.gxt.ui.client.widget.button.Button.onClick(Button.java:530)
at com.extjs.gxt.ui.client.widget.button.Button.onComponentEvent(Button.java:277)
at com.extjs.gxt.ui.client.widget.Component.onBrowserEvent(Component.java:760)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1320)
at com.google.gwt.user.client.DOM.dispatchEventAndCatch(DOM.java:1299)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1262)