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

JIRA REST API 'addUserToGroup' fails on MySQL

    XMLWordPrintable

Details

    Description

      When trying to add a user to a group on JIRA 7.1.0 over the REST API - addUserToGroup , the call fails with an Internal Server Error: MySQLSyntaxErrorException: Every derived table must have its own alias

      Issue the following HTTP content against your REST API JIRA server:

      POST /rest/api/2/group/user?groupname=project-test-group HTTP/1.1
      Host: my.domain.com
      Authorization: Basic wahtever=
      Content-Type: application/json
      Cache-Control: no-cache
      
      {
          "name": "charlie"
      }
      

      This will produce the following error when running on MySQL:

      2016-02-22 16:50:57,925 http-nio-8080-exec-25 ERROR XXXXXXXXXX 1010x5858x1 1hnn3zp ip.ip.ip.ip,ip.ip.ip.ip /rest/api/2/group/user [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:497)
              at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$ResponseOutInvoker$1.invoke(DispatchProviderHelper.java:192)
              ... 4 filtered
              at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55)
              ... 1 filtered
              at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39)
              ... 15 filtered
              at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
              ... 1 filtered
              at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
              ... 86 filtered
              at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
              ... 15 filtered
              at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
              ... 62 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: com.querydsl.core.QueryException: Caught MySQLSyntaxErrorException for select count(*)
      from (select m.lower_child_name
      from cwd_membership m
      inner join cwd_user u
      on u.id = m.child_id
      where u.active = ? and m.membership_type = ? and m.directory_id = ? and m.lower_parent_name = ?
              at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
              at com.querydsl.sql.Configuration.translate(Configuration.java:453)
              at com.querydsl.sql.AbstractSQLQuery.unsafeCount(AbstractSQLQuery.java:627)
              at com.querydsl.sql.AbstractSQLQuery.fetchCount(AbstractSQLQuery.java:132)
              at com.atlassian.jira.security.groups.CountUsersInGroupQueryCallback.runMySqlQuery(CountUsersInGroupQueryCallback.java:148)
              at com.atlassian.jira.security.groups.CountUsersInGroupQueryCallback.runQuery(CountUsersInGroupQueryCallback.java:74)
              at com.atlassian.jira.security.groups.CountUsersInGroupQueryCallback.runQuery(CountUsersInGroupQueryCallback.java:23)
              at com.atlassian.jira.database.DbConnectionManagerImpl.executeQuery(DbConnectionManagerImpl.java:45)
              at com.atlassian.jira.security.groups.DefaultGroupManager.getUsersInGroupCount(DefaultGroupManager.java:218)
              at com.atlassian.jira.security.groups.DefaultGroupManager.getUsersInGroupCount(DefaultGroupManager.java:197)
              at com.atlassian.jira.security.groups.RequestCachingGroupManager.getUsersInGroupCount(RequestCachingGroupManager.java:138)
              ... 3 filtered
              at java.lang.reflect.Method.invoke(Method.java:497)
              at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
              at com.sun.proxy.$Proxy237.getUsersInGroupCount(Unknown Source)
              ... 3 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.$Proxy2379.getUsersInGroupCount(Unknown Source)
              at com.atlassian.jira.rest.v2.issue.GroupResource.buildGroupBean(GroupResource.java:418)
              at com.atlassian.jira.rest.v2.issue.GroupResource.access$500(GroupResource.java:65)
              at com.atlassian.jira.rest.v2.issue.GroupResource$4.execute(GroupResource.java:304)
              at com.atlassian.jira.rest.v2.issue.GroupResource.doGroupUpdate(GroupResource.java:364)
              at com.atlassian.jira.rest.v2.issue.GroupResource.addUserToGroup(GroupResource.java:288)
              ... 214 more
      Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Every derived table must have its own alias
              at sun.reflect.GeneratedConstructorAccessor462.newInstance(Unknown Source)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
              at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
              at com.mysql.jdbc.Util.getInstance(Util.java:360)
              at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
              at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
              at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
              at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
              at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
              at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
              at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
              at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
              at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
              at com.querydsl.sql.AbstractSQLQuery.unsafeCount(AbstractSQLQuery.java:616)
              ... 254 more
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              5a8263ee8805 Ramon Grunder
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: