Announcement Announcement Module
Collapse
No announcement yet.
Trying to get a Spring RC client upgraded to V1.1, need help with stacktrace Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Trying to get a Spring RC client upgraded to V1.1, need help with stacktrace

    Hi,

    I inherited recently some code from a gone developer and I try now to get the libraries updated where possible. I have currently this stacktrace:

    Code:
    Caused by: org.springframework.binding.convert.ConversionException: No converter registered to convert from sourceClass 'class [Ljava.lang.Object;' to target class 'class com.ourcompany.manufacturing.commissioning.Batch'
            at org.springframework.binding.convert.support.GenericConversionService.getConversionExecutor(GenericConversionService.java:150)
            at org.springframework.richclient.form.binding.swing.ListBinding.isPropertyConversionExecutorAvailable(ListBinding.java:82)
            at org.springframework.richclient.form.binding.swing.ListBinding.doBindControl(ListBinding.java:120)
            at org.springframework.richclient.form.binding.swing.AbstractListBinding.doBindControl(AbstractListBinding.java:103)
            at org.springframework.richclient.form.binding.support.AbstractBinding.createControl(AbstractBinding.java:75)
            at org.springframework.richclient.factory.AbstractControlFactory.getControl(AbstractControlFactory.java:83)
            at org.springframework.richclient.form.binding.support.AbstractBindingFactory.interceptBinding(AbstractBindingFactory.java:92)
            at org.springframework.richclient.form.binding.support.AbstractBindingFactory.createBinding(AbstractBindingFactory.java:78)
            at org.springframework.richclient.form.binding.swing.SwingBindingFactory.createBoundList(SwingBindingFactory.java:332)
            at org.springframework.richclient.form.binding.swing.SwingBindingFactory.createBoundList(SwingBindingFactory.java:237)
            at org.springframework.richclient.form.binding.swing.SwingBindingFactory.createBoundList(SwingBindingFactory.java:196)
            at com.ourcompany.production.commissioning.ui.form.SelectBatchForm.createFormControl(SelectBatchForm.java:141)
            at org.springframework.richclient.form.AbstractForm.createControl(AbstractForm.java:394)
            at org.springframework.richclient.factory.AbstractControlFactory.getControl(AbstractControlFactory.java:83)
            at org.springframework.richclient.dialog.FormBackedDialogPage.createControl(FormBackedDialogPage.java:74)
            at org.springframework.richclient.dialog.AbstractDialogPage$1.createControl(AbstractDialogPage.java:59)
            at org.springframework.richclient.factory.AbstractControlFactory.getControl(AbstractControlFactory.java:83)
            at org.springframework.richclient.dialog.AbstractDialogPage.getControl(AbstractDialogPage.java:198)
            at com.ourcompany.production.commissioning.ui.SelectBatchAction$1.createDialogContentPane(SelectBatchAction.java:141)
            at org.springframework.richclient.dialog.ApplicationDialog.addDialogComponents(ApplicationDialog.java:699)
            at org.springframework.richclient.dialog.ApplicationDialog.createDialog(ApplicationDialog.java:425)
            at org.springframework.richclient.dialog.ApplicationDialog.showDialog(ApplicationDialog.java:393)
            at com.ourcompany.production.commissioning.ui.SelectBatchAction.doExecuteCommand(SelectBatchAction.java:179)
            at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:219)
            at com.ourcompany.production.commissioning.ui.InsertMeterAction.doExecuteCommand(InsertMeterAction.java:235)
            at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:219)
            at com.ourcompany.production.commissioning.task.impl.connect.DetectMeterTask.doExecute(DetectMeterTask.java:139)
            ... 4 more
    From what I have found by analysis:
    - There is a form (SelectBatchForm, extends AbstractForm) that wants to add a ListBinding, so it calls the bindingFactory with the selectionFormProperty "batch", an ArrayList of domain objects and the renderedProperty "name"). that method has no javadoc, but it appears as if the returned Listbinding should display the name property of the given objects in form of a selectable List.
    - The SwingBindingFactory is now trying to create the bound list and to select a binder for a controlType JList, a DefaultFormModel and the given selectionFormProperty. This is a ListBinder. binding is done and then it calls interceptBinding with that binder. (Again an undocumented method)
    - the interceptor (which is a ChainedInterceptor) method processComponent() is now called on the binding property and control. but the getter of that control is causing to throw the exception:
    -- createControl() of ListBinding leads to a call to doBindControl which will throw an unhandled exception in isPropertyConversionExecutorAvailable() when the conversionService fails to get an ConversionExecutor from Object[] (hardcoded) to the propertyType of the ListBinding, which is the domain object class from the begin of the story.

    As this was working in Spring Richclient V1.0, I would like to understand what is missing to get it running under V1.1

    Kindly regards,
    Kai
Working...
X