Uploaded image for project: 'Spring Framework'
  1. Spring Framework
  2. SPR-9542

ExtendedBeanInfo is extremely slow processing beans derived from java.awt.Component

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Won't Fix
    • Affects Version/s: 3.1.1, 3.2 M1
    • Fix Version/s: None
    • Component/s: Core
    • Labels:
    • Last commented by a User:
      true

      Description

      I've got a spring bean derived from java.awt.Component in my context. The log file (spring on debug) is like:

      2012-06-23 16:10:46,834 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.task.PersonalTaskController': AutowiredMethodElement for void org.nuclos.client.ui.Controller.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:10:46,837 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      2012-06-23 16:10:47,316 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public void java.awt.Component.setSize(int,int)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:10:47,545 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public void java.awt.Component.setLocation(int,int)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:10:52,387 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public final void javax.swing.JComponent.setInputMap(int,javax.swing.InputMap)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:10:52,653 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public void javax.swing.JComponent.setFocusTraversalKeys(int,java.util.Set)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:10:57,018 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public void java.awt.Component.setLocation(int,int)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:11:02,023 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public final void javax.swing.JComponent.setInputMap(int,javax.swing.InputMap)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:11:02,227 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public void javax.swing.JComponent.setFocusTraversalKeys(int,java.util.Set)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:11:04,968 DEBUG AWT-EventQueue-0 [springframework.beans.ExtendedBeanInfo] - Could not add indexed write method [public void java.awt.Component.setSize(int,int)] for property [component]. Reason: type mismatch between indexed read and indexed write methods: component
      2012-06-23 16:11:05,467 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Found injected element on class [org.nuclos.client.task.PersonalTaskView]: AutowiredMethodElement for void org.nuclos.client.task.TaskView.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:05,472 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.task.PersonalTaskView': AutowiredMethodElement for void org.nuclos.client.task.TaskView.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:05,476 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      2012-06-23 16:11:05,477 DEBUG AWT-EventQueue-0 [factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'org.nuclos.client.task.PersonalTaskView' to bean named 'springLocaleDelegate'
      2012-06-23 16:11:06,975 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Found injected element on class [org.nuclos.client.task.PersonalTaskTableModel]: AutowiredMethodElement for void org.nuclos.client.ui.model.AbstractListTableModel.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:06,985 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.task.PersonalTaskTableModel': AutowiredMethodElement for void org.nuclos.client.ui.model.AbstractListTableModel.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:06,987 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      2012-06-23 16:11:06,987 DEBUG AWT-EventQueue-0 [factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'org.nuclos.client.task.PersonalTaskTableModel' to bean named 'springLocaleDelegate'
      2012-06-23 16:11:08,339 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Found injected element on class [org.nuclos.client.ui.collect.component.CollectableTextField]: AutowiredMethodElement for void org.nuclos.client.ui.collect.component.AbstractCollectableComponent.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:08,351 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.ui.collect.component.CollectableTextField': AutowiredMethodElement for void org.nuclos.client.ui.collect.component.AbstractCollectableComponent.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:08,353 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      2012-06-23 16:11:08,354 DEBUG AWT-EventQueue-0 [factory.annotation.AutowiredAnnotationBeanPostProcessor] - Autowiring by type from bean name 'org.nuclos.client.ui.collect.component.CollectableTextField' to bean named 'springLocaleDelegate'
      2012-06-23 16:11:08,539 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.ui.collect.component.CollectableTextField': AutowiredMethodElement for void org.nuclos.client.ui.collect.component.AbstractCollectableComponent.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:08,543 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      2012-06-23 16:11:09,090 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.ui.collect.component.CollectableTextField': AutowiredMethodElement for void org.nuclos.client.ui.collect.component.AbstractCollectableComponent.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:09,097 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      2012-06-23 16:11:10,010 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Found injected element on class [org.nuclos.client.ui.collect.component.CollectableDateChooser]: AutowiredMethodElement for void org.nuclos.client.ui.collect.component.AbstractCollectableComponent.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:10,012 DEBUG AWT-EventQueue-0 [factory.annotation.InjectionMetadata] - Processing injected method of bean 'org.nuclos.client.ui.collect.component.CollectableDateChooser': AutowiredMethodElement for void org.nuclos.client.ui.collect.component.AbstractCollectableComponent.setSpringLocaleDelegate(org.nuclos.common2.SpringLocaleDelegate)
      2012-06-23 16:11:10,013 DEBUG AWT-EventQueue-0 [factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'springLocaleDelegate'
      

      In other words:

      • Whenever I've got 'Could not add indexed write method...' my application stalls for over one second.
      • As 'Could not add indexed write method...' is there over and over and over in the log, this seems to be a performance hit.
      • Perhaps it would be better to cache if 'adding an indexed write method' is not possible.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                cbeams Chris Beams
                Reporter:
                aanno Thomas Pasch
                Last updater:
                Chris Beams
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  5 years, 26 weeks, 3 days ago