Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.7.2
    • Fix Version/s: 1.7.3
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      0

      Issue Links

        Activity

        Hide
        Justin Deoliveira added a comment -

        I did an initial look at fixing. It is not quite trivial. However my first thought it is to use the RetypingDataStore which already does this sort of transformation. We could add another delegate method called "transformFeatureTypeAttributes()" which mirrors "transformFeatureTypeName()". Then we override and check against the existence of schema.xml or schema.xsd file. If exists, parse it and pull the attributes out, and filter the original feature type attributes.

        What are your thoughts on this approach Andrea?

        Show
        Justin Deoliveira added a comment - I did an initial look at fixing. It is not quite trivial. However my first thought it is to use the RetypingDataStore which already does this sort of transformation. We could add another delegate method called "transformFeatureTypeAttributes()" which mirrors "transformFeatureTypeName()". Then we override and check against the existence of schema.xml or schema.xsd file. If exists, parse it and pull the attributes out, and filter the original feature type attributes. What are your thoughts on this approach Andrea?
        Hide
        Andrea Aime added a comment -

        Seems like the natural place to do the change indeed. As you said, it is not trivial. A few comments:

        • the retyping datastore works both read and write, keeping it that way may be hard. But as a first step one can forget about writing I guess
        • there is overlap with the complex feature work, as part of what they do is mapping. On the other hand, I don't believe they ever split out a pure mapping data access class
        • what exactly woul transformFeatureTypeAttributes do? the existing retyping readers and writers afaik work if you change the feature name, should work if you shave off attributes, most probably won't work if you're trying to impose a attribute name/type change.
        Show
        Andrea Aime added a comment - Seems like the natural place to do the change indeed. As you said, it is not trivial. A few comments: the retyping datastore works both read and write, keeping it that way may be hard. But as a first step one can forget about writing I guess there is overlap with the complex feature work, as part of what they do is mapping. On the other hand, I don't believe they ever split out a pure mapping data access class what exactly woul transformFeatureTypeAttributes do? the existing retyping readers and writers afaik work if you change the feature name, should work if you shave off attributes, most probably won't work if you're trying to impose a attribute name/type change.
        Hide
        Andrea Aime added a comment -

        Hum, Justin, a user on the irc channel just reported this stack trace:

        javax.servlet.ServletException: javax.servlet.jsp.JspException: ServletException in '/WEB-INF/pages/data/featureTypes/Editor.jsp': javax.servlet.jsp.JspException: Getter for property attributeNames threw exception: java.lang.ClassCastException: org.vfny.geoserver.form.data.AttributeForm cannot be cast to org.vfny.geoserver.form.data.AttributeDisplay
        	at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
        	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
        	at org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp._jspService(org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp:649)
        	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
        	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
        	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        	at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.doForward(MultipleDelegatingTilesRequestProcessor.java:346)
        	at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.processTilesDefinition(MultipleDelegatingTilesRequestProcessor.java:212)
        	at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.processForwardConfig(MultipleDelegatingTilesRequestProcessor.java:81)
        	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
        	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
        	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        	at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.doForward(MultipleDelegatingTilesRequestProcessor.java:346)
        	at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
        	at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
        	at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.processForwardConfig(MultipleDelegatingTilesRequestProcessor.java:95)
        	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
        	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        	at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        	at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        	at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
        	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        	at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
        	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        	at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
        	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
        	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        	at org.mortbay.jetty.Server.handle(Server.java:324)
        	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
        	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
        	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
        Caused by: javax.servlet.jsp.JspException: ServletException in '/WEB-INF/pages/data/featureTypes/Editor.jsp': javax.servlet.jsp.JspException: Getter for property attributeNames threw exception: java.lang.ClassCastException: org.vfny.geoserver.form.data.AttributeForm cannot be cast to org.vfny.geoserver.form.data.AttributeDisplay
        	at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:923)
        	at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
        	at org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp._jspx_meth_tiles_insert_7(org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp:1363)
        	at org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp._jspService(org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp:620)
        	... 86 more
        

        The users says he's using 1.7.2, and as usual I cannot make them tell me what exactly is going on. But I know you worked on that part of the code base recently. Rings any bell?

        Show
        Andrea Aime added a comment - Hum, Justin, a user on the irc channel just reported this stack trace: javax.servlet.ServletException: javax.servlet.jsp.JspException: ServletException in '/WEB-INF/pages/data/featureTypes/Editor.jsp': javax.servlet.jsp.JspException: Getter for property attributeNames threw exception: java.lang.ClassCastException: org.vfny.geoserver.form.data.AttributeForm cannot be cast to org.vfny.geoserver.form.data.AttributeDisplay at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858) at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) at org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp._jspService(org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp:649) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.doForward(MultipleDelegatingTilesRequestProcessor.java:346) at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.processTilesDefinition(MultipleDelegatingTilesRequestProcessor.java:212) at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.processForwardConfig(MultipleDelegatingTilesRequestProcessor.java:81) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.doForward(MultipleDelegatingTilesRequestProcessor.java:346) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318) at org.vfny.geoserver.config.web.tiles.MultipleDelegatingTilesRequestProcessor.processForwardConfig(MultipleDelegatingTilesRequestProcessor.java:95) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) Caused by: javax.servlet.jsp.JspException: ServletException in '/WEB-INF/pages/data/featureTypes/Editor.jsp': javax.servlet.jsp.JspException: Getter for property attributeNames threw exception: java.lang.ClassCastException: org.vfny.geoserver.form.data.AttributeForm cannot be cast to org.vfny.geoserver.form.data.AttributeDisplay at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:923) at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462) at org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp._jspx_meth_tiles_insert_7(org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp:1363) at org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp._jspService(org.apache.jsp.WEB_002dINF.pages.layouts.mainLayout_jsp:620) ... 86 more The users says he's using 1.7.2, and as usual I cannot make them tell me what exactly is going on. But I know you worked on that part of the code base recently. Rings any bell?
        Hide
        Justin Deoliveira added a comment -

        Yeah, this should be fixed for 1.7.3. I went through basically removed all creation of AttributeForm (which is the class htat makes a schema field editable). So this should hopefully be fixed.

        Show
        Justin Deoliveira added a comment - Yeah, this should be fixed for 1.7.3. I went through basically removed all creation of AttributeForm (which is the class htat makes a schema field editable). So this should hopefully be fixed.
        Hide
        Andrea Aime added a comment -

        Mass closing all resolved issues that have been closed for more than one month without further comments

        Show
        Andrea Aime added a comment - Mass closing all resolved issues that have been closed for more than one month without further comments

          People

          • Assignee:
            Justin Deoliveira
            Reporter:
            Justin Deoliveira
          • Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: