Bug 724536 (BRMS-483) - "Technical error" message passed to user - but the server.log has the correct Exception
Summary: "Technical error" message passed to user - but the server.log has the correct...
Keywords:
Status: VERIFIED
Alias: BRMS-483
Product: JBoss Enterprise BRMS Platform 5
Classification: JBoss
Component: User Interface
Version: BRMS 5.2.0.GA
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ER6
: BRMS 5.3.0.GA
Assignee: manstis
QA Contact: Sona Mala
URL: http://jira.jboss.org/jira/browse/BRM...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-12-01 21:26 UTC by Len DiMaggio
Modified: 2015-12-04 14:54 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
If the server has been restarted and the user has not logged back into the BRMS user interface and they try to preform an operation, a technical error message was displayed which provided the user with no useful information. This has been resolved and the system now displays a descriptive message which informs the user they are not logged and need to refresh their browser.
Clone Of:
Environment:
Last Closed:
Type: Bug


Attachments (Terms of Use)
Screenshot.png (146.86 KB, image/png)
2010-12-01 21:28 UTC, Len DiMaggio
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker BRMS-483 0 Minor Closed "Technical error" message passed to user - but the server.log has the correct Exception 2014-05-14 09:18:29 UTC
Red Hat Issue Tracker GUVNOR-1717 0 Major Closed Guvnor Timeout Not Forwarding To Login 2015-12-04 14:54:54 UTC

Description Len DiMaggio 2010-12-01 21:26:57 UTC
securitylevel_name: Public

Spotted this during resiliency tetsing - if a user attempts an operation while not logged in - for example if a server restart has happened after a user has logged in - the "technical error" dialog shown in the attached screenshot is displayed.

The correct source of the error - org.jboss.seam.security.NotLoggedInException - however is written to the server.log - can we provide more a specific error message to the user?

Comment 1 Len DiMaggio 2010-12-01 21:27:13 UTC
2010-12-01 16:08:30,158 INFO  [STDOUT] (http-127.0.0.1-8080-1) ERROR 01-12 16:08:30,129 (LoggingHelper.java:error:76)    Service method 'public abstract void org.drools.guvnor.client.rpc.RepositoryService.installSampleRepository() throws com.google.gwt.user.client.rpc.SerializationException' threw an unexpected exception: org.jboss.seam.security.NotLoggedInException
org.jboss.seam.security.NotLoggedInException
        at org.jboss.seam.security.Identity.checkRestriction(Identity.java:211)
        at org.jboss.seam.security.SecurityInterceptor$Restriction.check(SecurityInterceptor.java:109)
        at org.jboss.seam.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:155)
        at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
        at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
        at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
        at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
        at org.drools.guvnor.server.ServiceImplementation_$$_javassist_3.installSampleRepository(ServiceImplementation_$$_javassist_3.java)
        at org.drools.guvnor.server.RepositoryServiceServlet.installSampleRepository(RepositoryServiceServlet.java:346)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
        at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.seam.web.ContextFilter$1.process(ContextFilter.java:42)
        at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
        at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
        at java.lang.Thread.run(Thread.java:636)
2010-12-01 16:08:30,163 ERROR [STDERR] (http-127.0.0.1-8080-1) com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void org.drools.guvnor.client.rpc.RepositoryService.installSampleRepository() throws com.google.gwt.user.client.rpc.SerializationException' threw an unexpected exception: org.jboss.seam.security.NotLoggedInException
2010-12-01 16:08:30,170 ERROR [STDERR] (http-127.0.0.1-8080-1)  at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
2010-12-01 16:08:30,170 ERROR [STDERR] (http-127.0.0.1-8080-1)  at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.web.ContextFilter$1.process(ContextFilter.java:42)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:53)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
2010-12-01 16:08:30,171 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at java.lang.Thread.run(Thread.java:636)
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1) Caused by: org.jboss.seam.security.NotLoggedInException
2010-12-01 16:08:30,172 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.security.Identity.checkRestriction(Identity.java:211)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.security.SecurityInterceptor$Restriction.check(SecurityInterceptor.java:109)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:155)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.drools.guvnor.server.ServiceImplementation_$$_javassist_3.installSampleRepository(ServiceImplementation_$$_javassist_3.java)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at org.drools.guvnor.server.RepositoryServiceServlet.installSampleRepository(RepositoryServiceServlet.java:346)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at java.lang.reflect.Method.invoke(Method.java:616)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
2010-12-01 16:08:30,173 ERROR [STDERR] (http-127.0.0.1-8080-1)  ... 30 more


Comment 2 Len DiMaggio 2010-12-01 21:28:28 UTC
Attachment: Added: Screenshot.png


Comment 5 JBoss JIRA Server 2012-04-05 16:39:41 UTC
Michael Anstis <michael.anstis> made a comment on jira GUVNOR-1717

The references BZ issue displays a meaningful error message to the user if they are not logged in (in the case of the BZ issue this was caused by a server restart and all HTTP sessions consequently being invalidated). This will also occur when a session is timed out. Please advise whether this fix is acceptable for this JIRA?

Comment 6 JBoss JIRA Server 2012-04-05 17:01:42 UTC
Michael Anstis <michael.anstis> made a comment on jira GUVNOR-1717

The ideal solution is (although not tried) to have every GWT-RPC method throw Seam's NotLoggedInException. This can then be caught in the org.drools.guvnor.client.common.GenericCallBack.onFailure() rather than passing a text error message back from the server (see org.drools.guvnor.server.RepositoryServiceServlet.doUnexpectedFailure which is *only* passed Throwables not declared in service methods signature - see http://www.gwtapps.com/doc/html/com.google.gwt.doc.DeveloperGuide.RemoteProcedureCalls.HandlingExceptions.html).

Furthermore we could add a timer to the GWT EntryPoint that redirects to itself (and hence force a login box) after expiration of the session time-out interval. This value would probably need to be hard-coded as

This could also be extended to the handling of AuthorizationException (see org.drools.guvnor.client.common.GenericCallBack.onFailure).

Comment 7 JBoss JIRA Server 2012-04-05 17:22:02 UTC
Michael Anstis <michael.anstis> made a comment on jira GUVNOR-1717

You get the idea http://jeremyjbarth.blogspot.co.uk/2011/08/simple-session-timeout-handling-with.html

Comment 8 Ryan Zhang 2012-04-23 07:36:24 UTC
Update status to ON_QA. Please verify them against ER6.

Comment 9 Lukáš Petrovický 2012-05-02 10:13:49 UTC
This is not resolved as the parent issue is still open.

Comment 10 Lukáš Petrovický 2012-05-02 10:17:37 UTC
My apologies, the branch contains the fix.

Comment 11 Sona Mala 2012-05-16 11:59:03 UTC
Verified.
After I restart the server and Guvnor require connection to server (listing, new asset, etc.) I get this Error alert:
  400 You are not logged in. Please refresh your browser and try again.
After I refresh the browser, I can fill loggin form and everything work fine.

Alert is user friendly.

Comment 12 lcarlon 2012-05-31 01:58:55 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
If the server has been restarted and the user has not logged back into the BRMS user interface and they try to preform an operation, a technical error message was displayed which provided the user with no useful information. This has been resolved and the system now displays a descriptive message which informs the user they are not logged and need to refresh their browser.

Comment 13 JBoss JIRA Server 2015-12-04 14:54:55 UTC
Toni Rikkola <toni> updated the status of jira GUVNOR-1717 to Closed


Note You need to log in before you can comment on or make changes to this bug.