You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by "Matthijs Hendriks (Created) (JIRA)" <ji...@apache.org> on 2012/04/03 12:44:25 UTC

[jira] [Created] (ACE-246) User unfriendly notification when trying to delete an unregistered target.

User unfriendly notification when trying to delete an unregistered target.
--------------------------------------------------------------------------

                 Key: ACE-246
                 URL: https://issues.apache.org/jira/browse/ACE-246
             Project: ACE
          Issue Type: Improvement
          Components: Web UI
            Reporter: Matthijs Hendriks
            Priority: Minor


When trying to delete an unregistered target the following exception is thrown (in the console):

3-apr-2012 12:33:15 com.vaadin.Application terminalError
SEVERE: Terminal error:
com.vaadin.event.ListenerMethod$MethodException
Cause: java.lang.IllegalArgumentException: defaultTargetID does not represent a TargetObject.
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
        at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:162)
        at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1166)
        at com.vaadin.ui.Button.fireClick(Button.java:380)
        at com.vaadin.ui.Button.changeVariables(Button.java:196)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1297)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1217)
        at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:733)
        at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
        at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:483)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.amdatu.web.dispatcher.handler.ServletHandler.handle(ServletHandler.java:70)
        at org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:56)
        at org.amdatu.web.dispatcher.dispatch.CustomFilterPipeline.dispatch(CustomFilterPipeline.java:59)
        at org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:53)
        at org.amdatu.web.dispatcher.dispatch.ExtenderFilterPipeline.dispatch(ExtenderFilterPipeline.java:44)
        at org.amdatu.web.dispatcher.service.DispatcherServiceImpl.dispatchRequest(DispatcherServiceImpl.java:197)
        at org.amdatu.web.dispatcher.filter.DispatchInterceptFilter.doFilter(DispatchInterceptFilter.java:69)
        at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:80)
        at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:68)
        at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
        at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
        at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
        at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
        at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.IllegalArgumentException: defaultTargetID does not represent a TargetObject.
        at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.unregister(StatefulTargetRepositoryImpl.java:138)
        at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.remove(StatefulTargetRepositoryImpl.java:120)
        at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.remove(StatefulTargetRepositoryImpl.java:67)
        at org.apache.ace.webui.vaadin.VaadinClient$RemoveItemButton$1.buttonClick(VaadinClient.java:679)
        at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
        ... 38 more

At the same time, the delete button in the Web UI shows a little error-image, but no other information is given. The user can not know it failed because of an unregistered target. I would suggest to disable the delete button if deletion is not possible, rather than throwing an exception. Also, it would be nice to explicitly and clearly see a message somewhere that the target is unregistered. You can see that now, but only by checking if the relevant checkbox in the information screen is unchecked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (ACE-246) User unfriendly notification when trying to delete an unregistered target.

Posted by "J.W. Janssen (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACE-246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

J.W. Janssen resolved ACE-246.
------------------------------

    Resolution: Fixed
      Assignee: Bram de Kruijff

The delete-target button is now disabled for unregistered targets; in case an error occurs during the deletion, a message is displayed instead of a stack trace.

As for the status indicators of artifacts/features/distributions/targets another issue should be created for that.
                
> User unfriendly notification when trying to delete an unregistered target.
> --------------------------------------------------------------------------
>
>                 Key: ACE-246
>                 URL: https://issues.apache.org/jira/browse/ACE-246
>             Project: ACE
>          Issue Type: Improvement
>          Components: Web UI
>            Reporter: Matthijs Hendriks
>            Assignee: Bram de Kruijff
>            Priority: Minor
>
> When trying to delete an unregistered target the following exception is thrown (in the console):
> 3-apr-2012 12:33:15 com.vaadin.Application terminalError
> SEVERE: Terminal error:
> com.vaadin.event.ListenerMethod$MethodException
> Cause: java.lang.IllegalArgumentException: defaultTargetID does not represent a TargetObject.
>         at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
>         at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:162)
>         at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1166)
>         at com.vaadin.ui.Button.fireClick(Button.java:380)
>         at com.vaadin.ui.Button.changeVariables(Button.java:196)
>         at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1297)
>         at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1217)
>         at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:733)
>         at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
>         at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:483)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>         at org.amdatu.web.dispatcher.handler.ServletHandler.handle(ServletHandler.java:70)
>         at org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:56)
>         at org.amdatu.web.dispatcher.dispatch.CustomFilterPipeline.dispatch(CustomFilterPipeline.java:59)
>         at org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:53)
>         at org.amdatu.web.dispatcher.dispatch.ExtenderFilterPipeline.dispatch(ExtenderFilterPipeline.java:44)
>         at org.amdatu.web.dispatcher.service.DispatcherServiceImpl.dispatchRequest(DispatcherServiceImpl.java:197)
>         at org.amdatu.web.dispatcher.filter.DispatchInterceptFilter.doFilter(DispatchInterceptFilter.java:69)
>         at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:80)
>         at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:68)
>         at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
>         at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
>         at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
>         at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
>         at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.handle(Server.java:326)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
>         at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
>         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: java.lang.IllegalArgumentException: defaultTargetID does not represent a TargetObject.
>         at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.unregister(StatefulTargetRepositoryImpl.java:138)
>         at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.remove(StatefulTargetRepositoryImpl.java:120)
>         at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.remove(StatefulTargetRepositoryImpl.java:67)
>         at org.apache.ace.webui.vaadin.VaadinClient$RemoveItemButton$1.buttonClick(VaadinClient.java:679)
>         at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
>         ... 38 more
> At the same time, the delete button in the Web UI shows a little error-image, but no other information is given. The user can not know it failed because of an unregistered target. I would suggest to disable the delete button if deletion is not possible, rather than throwing an exception. Also, it would be nice to explicitly and clearly see a message somewhere that the target is unregistered. You can see that now, but only by checking if the relevant checkbox in the information screen is unchecked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Closed] (ACE-246) User unfriendly notification when trying to delete an unregistered target.

Posted by "Bram de Kruijff (Closed) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACE-246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bram de Kruijff closed ACE-246.
-------------------------------

    Assignee:     (was: Bram de Kruijff)

This certainly improves the situation. From a functional perspective I think matters could still improve. Eg. getting rid of an unregistered stale target now requires first registering it only to delete it. But hey.. guess that 's another topic.

Tested and reviewed at r1325167.


                
> User unfriendly notification when trying to delete an unregistered target.
> --------------------------------------------------------------------------
>
>                 Key: ACE-246
>                 URL: https://issues.apache.org/jira/browse/ACE-246
>             Project: ACE
>          Issue Type: Improvement
>          Components: Web UI
>            Reporter: Matthijs Hendriks
>            Priority: Minor
>
> When trying to delete an unregistered target the following exception is thrown (in the console):
> 3-apr-2012 12:33:15 com.vaadin.Application terminalError
> SEVERE: Terminal error:
> com.vaadin.event.ListenerMethod$MethodException
> Cause: java.lang.IllegalArgumentException: defaultTargetID does not represent a TargetObject.
>         at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
>         at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:162)
>         at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1166)
>         at com.vaadin.ui.Button.fireClick(Button.java:380)
>         at com.vaadin.ui.Button.changeVariables(Button.java:196)
>         at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1297)
>         at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1217)
>         at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:733)
>         at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
>         at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:483)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>         at org.amdatu.web.dispatcher.handler.ServletHandler.handle(ServletHandler.java:70)
>         at org.amdatu.web.dispatcher.dispatch.CustomFilterChain.doFilter(CustomFilterChain.java:56)
>         at org.amdatu.web.dispatcher.dispatch.CustomFilterPipeline.dispatch(CustomFilterPipeline.java:59)
>         at org.amdatu.web.dispatcher.dispatch.ExtenderFilterChain.doFilter(ExtenderFilterChain.java:53)
>         at org.amdatu.web.dispatcher.dispatch.ExtenderFilterPipeline.dispatch(ExtenderFilterPipeline.java:44)
>         at org.amdatu.web.dispatcher.service.DispatcherServiceImpl.dispatchRequest(DispatcherServiceImpl.java:197)
>         at org.amdatu.web.dispatcher.filter.DispatchInterceptFilter.doFilter(DispatchInterceptFilter.java:69)
>         at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:80)
>         at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:68)
>         at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
>         at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
>         at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
>         at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
>         at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:55)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.handle(Server.java:326)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
>         at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
>         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: java.lang.IllegalArgumentException: defaultTargetID does not represent a TargetObject.
>         at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.unregister(StatefulTargetRepositoryImpl.java:138)
>         at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.remove(StatefulTargetRepositoryImpl.java:120)
>         at org.apache.ace.client.repository.stateful.impl.StatefulTargetRepositoryImpl.remove(StatefulTargetRepositoryImpl.java:67)
>         at org.apache.ace.webui.vaadin.VaadinClient$RemoveItemButton$1.buttonClick(VaadinClient.java:679)
>         at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:490)
>         ... 38 more
> At the same time, the delete button in the Web UI shows a little error-image, but no other information is given. The user can not know it failed because of an unregistered target. I would suggest to disable the delete button if deletion is not possible, rather than throwing an exception. Also, it would be nice to explicitly and clearly see a message somewhere that the target is unregistered. You can see that now, but only by checking if the relevant checkbox in the information screen is unchecked.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira