4 Replies Latest reply on Aug 3, 2007 8:32 AM by dolan.halbrook

    Upgrade to 1.3 People system error

      I am trying to upgrade from clearspace (non x) 1.2 to 1.3 war using tomcat 5.5 and mysql on CentOS.

       

      I have a setup that I read from these forums where I have it authenticating through ldap com.jivesoftware.base.ldap.LdapAuthFactory, but I have the users and groups being controlled through the database) com.jivesoftware.base.database.DbGroupManager and com.jivesoftware.base.database.DbUserManager) since we don't have write access to Active Directory.

       

      If I try the upgrade using the guide (http://www.jivesoftware.com/builds/docs/clearspace/latest/ClearspaceUpgradeMigrationGuide.html), and I use Option 1 which uses the setup tool for the path to jiveHome, I can no longer login to the admin console with the administrator account.

       

      If I use option two and update the path to jiveHome with java -jar EditWar.jar clearspace.jar, everything appears to work great.

       

      The issue is that after the upgrade, if I try to browse "people" I get a System Error (I will get to that in a second). In the admin console, if I try to view the User Summary, is gives me "Jive Clearspace Clearspace Admin Error: Operation not supported". The rest of the console is there so it is not a full System Error.

       

      I tried to run the initial setup again to reconfigure it back to full LDAP mode by changing true to false in the jive_startup.xml and restarting tomcat. Instead of the setup coming up I get another system error on the initial setup page and so am dead in the water.

       

      Regarding the System error. As mentioned above, when I try to browse people form within clearspace I get the following system error:

       

      System Error

       

      We're sorry but a serious error has occurred in the system. If you are a system administrator please click "more details" below for more information about this error.

      More Details

       

           

      • Status Code: 500

           

      • Exception Type: null

           

      • Error Message:

           

      • Request URI: /clearspace/people

           

      • Stack Trace:

                o freemarker.ext.beans.BeanModel.get(BeanModel.java:223)

                o freemarker.core.Dot._getAsTemplateModel(Dot.java:76)

                o freemarker.core.Expression.getAsTemplateModel(Expression.java:89)

                o freemarker.core.BuiltIn$existsBI._getAsTemplateModel(BuiltIn.java:636)

                o freemarker.core.BuiltIn$existsBI.isTrue(BuiltIn.java:647)

                o freemarker.core.ParentheticalExpression.isTrue(ParentheticalExpression.java:66)

                o freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)

                o freemarker.core.Environment.visit(Environment.java:196)

                o freemarker.core.IfBlock.accept(IfBlock.java:82)

                o freemarker.core.Environment.visit(Environment.java:196)

                o freemarker.core.MixedContent.accept(MixedContent.java:92)

                o freemarker.core.Environment.visit(Environment.java:196)

                o freemarker.core.Macro$Context.runMacro(Macro.java:164)

                o freemarker.core.Environment.visit(Environment.java:537)

                o freemarker.core.UnifiedCall.accept(UnifiedCall.java:128)

                o freemarker.core.Environment.visit(Environment.java:196)

                o freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)

                o freemarker.core.Environment.visit(Environment.java:351)

                o freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)

                o freemarker.core.Environment.visit(Environment.java:196)

                o freemarker.core.MixedContent.accept(MixedContent.java:92)

                o freemarker.core.Environment.visit(Environment.java:196)

                o freemarker.core.Environment.process(Environment.java:176)

                o freemarker.template.Template.process(Template.java:232)

                o com.opensymphony.webwork.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:153)

                o com.jivesoftware.community.web.webwork.FreemarkerResult.doExecute(FreemarkerResult.java:130)

                o com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:143)

                o com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:311)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:206)

                o com.jivesoftware.community.web.webwork.FlashInterceptor.intercept(FlashInterceptor.java:40)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168)

                o com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)

                o com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.jivesoftware.community.web.webwork.JiveObjectLoaderInterceptor.intercept(JiveObjectLoaderInterceptor.java:55)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.jivesoftware.community.web.webwork.JiveIOCInterceptor.intercept(JiveIOCInterceptor.java:694)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.jivesoftware.community.action.LocaleInterceptor.intercept(LocaleInterceptor.java:50)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.jivesoftware.community.web.webwork.JiveLoginInterceptor.intercept(JiveLoginInterceptor.java:42)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.jivesoftware.community.web.webwork.AuthInterceptor.intercept(AuthInterceptor.java:60)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.jivesoftware.community.web.webwork.ModuleCheckInterceptor.intercept(ModuleCheckInterceptor.java:49)

                o com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)

                o com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)

                o com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)

                o com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)

                o com.jivesoftware.community.web.webwork.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:53)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

                o com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o com.jivesoftware.community.web.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:46)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o com.jivesoftware.community.web.filter.PresenceFilter.doFilter(PresenceFilter.java:106)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o org.directwebremoting.servlet.DwrWebContextFilter.doFilter(DwrWebContextFilter.java:91)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o com.jivesoftware.community.upgrade.UpgradeFilter.doFilter(UpgradeFilter.java:43)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o com.jivesoftware.base.plugin.PluginFilter.doFilter(PluginFilter.java:71)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o com.jivesoftware.base.database.dao.DAOContextCleanUpFilter.doFilter(DAOContextCleanUpFilter.java:32)

                o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

                o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

                o org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

                o org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

                o org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

                o org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

                o org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

                o org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

                o org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)

                o org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)

                o org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)

                o org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)

                o org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)

                o org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

                o java.lang.Thread.run(Unknown Source)

           

      • freemarker.template.TemplateModelException: get(email) failed on instance of com.jivesoftware.base.database.DbUser

       

      I figure the important part is the last line stating that it failed on instance of com.jivesoftware.base.database.DbUser. I am not sure what this means because it should be using com.jivesoftware.base.database.DbUserManager. Is it cutting of the "Manager" part, or does clearspace no longer like mixing LdapAuthFactory with DbUserManager?

       

      Is there possibly some other new setup that I should be using for authenticating with LDAP and controlling users and groups through the database than was once posted in these forums?

       

      Thanks,

       

                Christian.

        • Re: Upgrade to 1.3 People system error

          Hi,

           

          That error looks like it is trying to get the email of one of your users, and it happens to be null. Since the app requires each user to have an email address, it is unable to display the page. Can you look through your users to find one without an email address?

           

          -Will

            • Re: Upgrade to 1.3 People system error

              I have reverted back to 1.2, and through the admin console I see that all users have an email address before the upgrade. After the upgrade, if I try to see the user summary I get a notification with the message "Jive Clearspace Clearspace Admin Error: Operation not supported". This one in the console is not a system error. The rest of the console shows up, but that message is in place of where the user summary should be. I know the users are still there in the database because I can still log into clearspace, and if I try and create a new users that already exists it tells me so.

               

              Tonight I will do another test upgrade and take a look at the database data and see if the upgrade process does anything to the email addresses in the database.

                • Re: Upgrade to 1.3 People system error

                  OK. I ran through the upgrade to 1.3 again, and was still having the same issues. I checked the database and the user passwords are still there.

                   

                  However, I tested something else and I think I have isolated the issue.

                   

                  As mentioned in my initial post, I have clearspace setup in LDAP mixed mode as suggested in the forum posting http://www.jivesoftware.com/jive/thread.jspa?messageID=113295

                   

                  Therefore my setup is as follows:

                   

                  AuthFactory.className = com.jivesoftware.base.ldap.LdapAuthFactory

                  GroupManager.className = com.jivesoftware.base.database.DbGroupManager

                  UserManager.className = com.jivesoftware.base.database.DbUserManager

                   

                  If I change these back to:

                   

                  AuthFactory.className = com.jivesoftware.base.ldap.LdapAuthFactory

                  GroupManager.className = com.jivesoftware.base.ldap.LdapGroupManager

                  UserManager.className = com.jivesoftware.base.ldap.LdapUserManager

                   

                  then it seems to work correctly. The issue is that similar to those in the LDAP mixed mode post, I do not have write access to our active directory, not all users are required in clearspace, and I want to control groups through the clearspace database and not Active Directory. In fact, with the full LDAP setup, it pulls in all my users from Active Directory and I get a red flag saying that I have exceeded my number of licensed users. I have tried to remove them from clearspace but it keeps pulling them back in from Active Directory.

                   

                  So now that I seem to have isolated the issue, my question is, is LDAP mixed mode no longer an option and I have to use either full LDAP or full database for user, group, and authentication? Is there another way to setup clearspace so that it only uses LDAP for authentication but all users and groups are controlled in the clearspace database? On the domain, users are requested to change there password every 45 days and I would prefer that the clearspace passwords not be different than user login passwords.

                   

                  Thanks for any help.