Uploaded image for project: 'Bamboo'
  1. Bamboo
  2. BAM-4016

IntrospectionException thrown due to interface method mismatch

    XMLWordPrintable

    Details

      Description

      2009-06-03 12:52:40,111 WARN [pool-13-thread-1] [Log4JLoggerFactory$Log4JLogger:116] Couldn't properly perform introspection
      java.beans.IntrospectionException: type mismatch between read and write methods
      at java.beans.PropertyDescriptor.findPropertyType(PropertyDescriptor.java:603)
      at java.beans.PropertyDescriptor.setWriteMethod(PropertyDescriptor.java:270)
      at java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:117)
      at freemarker.ext.beans.BeansWrapper.populateClassMapWithBeanInfo(BeansWrapper.java:1157)
      at freemarker.ext.beans.BeansWrapper.populateClassMap(BeansWrapper.java:1046)
      at freemarker.ext.beans.BeansWrapper.introspectClassInternal(BeansWrapper.java:984)
      at freemarker.ext.beans.BeansWrapper.introspectClass(BeansWrapper.java:943)
      at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:139)
      at freemarker.ext.beans.StringModel.<init>(StringModel.java:90)
      at freemarker.ext.beans.StringModel$1.create(StringModel.java:75)
      at freemarker.ext.beans.BeansModelCache.create(BeansModelCache.java:45)
      at freemarker.ext.util.ModelCache.getInstance(ModelCache.java:115)
      at freemarker.ext.beans.BeansWrapper.wrap(BeansWrapper.java:468)
      at com.opensymphony.webwork.views.freemarker.WebWorkBeanWrapper.wrap(WebWorkBeanWrapper.java:41)
      at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:841)
      at freemarker.ext.beans.BeanModel.invokeThroughDescriptor(BeanModel.java:276)
      at freemarker.ext.beans.BeanModel.get(BeanModel.java:183)
      at freemarker.core.Dot._getAsTemplateModel(Dot.java:76)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.Dot._getAsTemplateModel(Dot.java:74)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.Dot._getAsTemplateModel(Dot.java:74)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:86)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.ParentheticalExpression._getAsTemplateModel(ParentheticalExpression.java:75)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.Expression.isTrue(Expression.java:138)
      at freemarker.core.IfBlock.accept(IfBlock.java:80)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
      at freemarker.core.Environment.visit(Environment.java:416)
      at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.IfBlock.accept(IfBlock.java:82)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.Environment.process(Environment.java:189)
      at freemarker.template.Template.process(Template.java:237)
      at com.atlassian.bamboo.ww2.BambooFreemarkerManager.renderPageWithNoContext(BambooFreemarkerManager.java:336)
      at com.atlassian.bamboo.ww2.BambooFreemarkerManager.renderPage(BambooFreemarkerManager.java:168)
      at com.atlassian.bamboo.ww2.BambooFreemarkerManager.render(BambooFreemarkerManager.java:217)
      at com.atlassian.bamboo.notification.buildcompleted.BuildCompletedNotification.getHtmlEmailContent(BuildCompletedNotification.java:167)
      at com.atlassian.bamboo.notification.transports.MultipartEmailTransport.sendNotification(MultipartEmailTransport.java:67)
      at com.atlassian.bamboo.notification.NotificationDispatcher.dispatchNotifications(NotificationDispatcher.java:59)
      at com.atlassian.bamboo.notification.buildcompleted.BuildCompletedNotificationListener.handleEvent(BuildCompletedNotificationListener.java:89)
      at sun.reflect.GeneratedMethodAccessor472.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at org.springframework.orm.hibernate.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy124.handleEvent(Unknown Source)
      at com.atlassian.bamboo.event.BambooEventManager$2.run(BambooEventManager.java:46)
      at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
      at com.atlassian.bamboo.build.pipeline.concurrent.NamedThreadFactory$1.run(NamedThreadFactory.java:32)
      at edu.emory.mathcs.backport.java.util.concurrent.helpers.ThreadHelpers$1.run(ThreadHelpers.java:34)
      at java.lang.Thread.run(Thread.java:613)

      The problem is that the BuilderV2 interfaces have getBuilder and getRepository that mismatches the setBuilder & setRepository on the sub-interface. This causes intermittent problems with the Freemarker & webwork. If we rename the methods on the top level interfaces (suffix with V2) that should be fine

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              bteh Belinda Teh [Atlassian]
              Reporter:
              mark@atlassian.com MarkC
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 3h
                  3h
                  Remaining:
                  Remaining Estimate - 3h
                  3h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified