Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-59953

Enabling Safe Mode breaks Navigation Bar

    XMLWordPrintable

Details

    Description

      Summary

      Enabling Safe Mode in JIRA 7.1.0 breaks navigation due to required system plugin marked as user addon

      Environment

      • JIRA 7.1.0

      Steps to Reproduce

      1. Set up a clean JIRA 7.1.0 instance
      2. Log in as JIRA Administrator
      3. Go to Manage Add-ons
      4. Enter Safe Mode

      Expected Results

      All user add-ons will be disabled and you can still navigate around JIRA

      Actual Results

      The below exception is thrown in the atlassian-jira.log file and the navigation bar disappears:

      2016-02-24 09:56:01,440 http-nio-8013-exec-18 ERROR      [o.a.c.c.C.[.[.[.1.0].[action]] Servlet.service() for servlet [action] in context with path [/7.1.0] threw exception
      java.lang.RuntimeException: javax.servlet.ServletException: java.lang.IllegalArgumentException: Unknown icon type 'user'
      	at com.atlassian.servicedesk.internal.util.scala.ScalaJavaInterOp$1.apply(ScalaJavaInterOp.java:27)
      	at com.atlassian.servicedesk.internal.utils.context.CustomerContextUtil$.outOfCustomerContext(CustomerContextUtil.scala:48)
      	at com.atlassian.servicedesk.internal.utils.context.CustomerContextUtil.outOfCustomerContext(CustomerContextUtil.scala)
      	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.outOfCustomerContext(CustomerContextServiceImpl.java:24)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:164)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:120)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:112)
      	... 55 filtered
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: javax.servlet.ServletException: java.lang.IllegalArgumentException: Unknown icon type 'user'
      	at com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.onActionException(JiraWebworkActionDispatcher.java:213)
      	at com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.service(JiraWebworkActionDispatcher.java:166)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	... 52 filtered
      	at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:59)
      	... 62 filtered
      	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
      	... 37 filtered
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$664(CustomerContextSettingFilter.java:169)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter$$Lambda$445/477974642.call(Unknown Source)
      	at com.atlassian.servicedesk.internal.util.scala.ScalaJavaInterOp$1.apply(ScalaJavaInterOp.java:25)
      	... 65 more
      Caused by: java.lang.IllegalArgumentException: Unknown icon type 'user'
      	at com.atlassian.jira.plugin.icon.IconTypeDefinitionFactoryImpl.getDefaultSystemIconFilename(IconTypeDefinitionFactoryImpl.java:45)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.loadDefaultAvatarId(AvatarManagerImpl.java:499)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.lambda$getDefaultAvatarId$162(AvatarManagerImpl.java:520)
      	at com.atlassian.jira.avatar.AvatarManagerImpl$$Lambda$464/360690418.get(Unknown Source)
      	at com.atlassian.vcache.internal.core.DefaultRequestCache.lambda$get$18(DefaultRequestCache.java:43)
      	at java.util.HashMap.computeIfAbsent(HashMap.java:1118)
      	at com.atlassian.vcache.internal.core.DefaultRequestCache.get(DefaultRequestCache.java:43)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.getDefaultAvatarId(AvatarManagerImpl.java:520)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.getDefaultAvatar(AvatarManagerImpl.java:527)
      	... 2 filtered
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
      	at com.sun.proxy.$Proxy499.getDefaultAvatar(Unknown Source)
      	... 2 filtered
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
      	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
      	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      	at com.sun.proxy.$Proxy680.getDefaultAvatar(Unknown Source)
      	at com.atlassian.jira.avatar.plugin.JiraUserAvatarProvider.getDefaultAvatar(JiraUserAvatarProvider.java:276)
      	at com.atlassian.jira.avatar.plugin.JiraUserAvatarProvider.getAvatarImpl(JiraUserAvatarProvider.java:228)
      	at com.atlassian.jira.avatar.plugin.JiraUserAvatarProvider$JiraUserPluginAvatar.<init>(JiraUserAvatarProvider.java:352)
      	at com.atlassian.jira.avatar.plugin.JiraUserAvatarProvider.getAvatar(JiraUserAvatarProvider.java:155)
      	at com.atlassian.jira.avatar.pluggable.AvatarProviderAdapter.getAvatar(AvatarProviderAdapter.java:45)
      	at com.atlassian.jira.avatar.AvatarServiceImpl.getAvatarURLImpl(AvatarServiceImpl.java:209)
      	at com.atlassian.jira.avatar.AvatarServiceImpl.getAvatarURL(AvatarServiceImpl.java:221)
      	... 2 filtered
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
      	at com.sun.proxy.$Proxy289.getAvatarURL(Unknown Source)
      	... 2 filtered
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
      	at com.sun.proxy.$Proxy289.getAvatarURL(Unknown Source)
      	at com.atlassian.greenhopper.service.user.GHAvatarService.getAvatarImpl(GHAvatarService.java:53)
      	at com.atlassian.greenhopper.service.user.GHAvatarService.getSmallAvatarURL(GHAvatarService.java:46)
      	at com.atlassian.greenhopper.web.rapid.UserConfigurationService.getUserConfig(UserConfigurationService.java:49)
      	at com.atlassian.greenhopper.web.rapid.RapidBoardViewModelFactory.buildRapidGlobalConfig(RapidBoardViewModelFactory.java:221)
      	at com.atlassian.greenhopper.web.rapid.RapidBoardViewModelFactory.getRapidViewConfigModel(RapidBoardViewModelFactory.java:193)
      	at com.atlassian.greenhopper.web.rapid.data.RapidViewConfigDataProvider.getForRapidView(RapidViewConfigDataProvider.java:42)
      	at com.atlassian.greenhopper.web.rapid.RapidBoardAction.appendConfigurationDataToPage(RapidBoardAction.java:432)
      	at com.atlassian.greenhopper.web.rapid.RapidBoardAction.doShowBoard(RapidBoardAction.java:205)
      	... 3 filtered
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:70)
      	at webwork.util.InjectionUtils.invoke(InjectionUtils.java:56)
      	... 2 filtered
      	at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63)
      	... 7 filtered
      	... 225 more
      

      Workaround

      Manually enable Icon Types Plugin which is incorrectly listed as a user add-on

      Attachments

        Issue Links

          Activity

            People

              ohernandez@atlassian.com Oswaldo Hernandez (Inactive)
              ddiblasio David Di Blasio
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: