[jbosstools-issues] [JBoss JIRA] (JBIDE-21877) Make error message shown in OpenShift Explorer for outdated token more user friendly

Viacheslav Kabanovich (JIRA) issues at jboss.org
Wed Mar 30 16:23:00 EDT 2016


    [ https://issues.jboss.org/browse/JBIDE-21877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13184231#comment-13184231 ] 

Viacheslav Kabanovich commented on JBIDE-21877:
-----------------------------------------------

[~jcantrill], some org.eclipse.epp.internal.mpc.core.MarketplaceClientCorePlugin at start calls ProxyHelper.acquireProxyService() which sets that evil ProxyHelper.ProxyAuthenticator as the default authenticator. It remembers the previous authenticator, and is ready to restore it when it finds no proxies - but here NPE because of missing requestingURL prevents that. So, I think, we can in OpenShiftCredentialsProvider override SystemDefaultCredentialsProvider so that it would call Authenticator.requestPasswordAuthentication with non-null URL, actually any, just localhost, then ProxyAuthenticator will find no proxies and turn to 'delegate' - that is previous authenticator replaced by epp.

> Make error message shown in OpenShift Explorer for outdated token more user friendly
> ------------------------------------------------------------------------------------
>
>                 Key: JBIDE-21877
>                 URL: https://issues.jboss.org/browse/JBIDE-21877
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: openshift
>    Affects Versions: 4.3.1.CR1
>            Reporter: Marián Labuda
>            Assignee: Viacheslav Kabanovich
>              Labels: connection, openshift_v3
>             Fix For: 4.4.0.Alpha1
>
>
> When I am trying to connect to OpenShift connection with outdated token stored in secure storage, an error tree item is shown in OpenShift Explorer under the connection. Erro tree item is "java.lang.NullPointerException", but it could be something more user friendly such as "Expired credentials" or the one we are already using in other scenarious - You must obtain an API token by .... Following stack trace is in error log
> {code}
> There was an error retrieving children in the OpenShift explorer
> java.lang.NullPointerException
> 	at org.eclipse.epp.internal.mpc.core.util.ProxyHelper$ProxyAuthenticator.getPasswordAuthentication(ProxyHelper.java:124)
> 	at java.net.Authenticator.requestPasswordAuthentication(Authenticator.java:317)
> 	at org.apache.http.impl.client.SystemDefaultCredentialsProvider.getSystemCreds(SystemDefaultCredentialsProvider.java:92)
> 	at org.apache.http.impl.client.SystemDefaultCredentialsProvider.getCredentials(SystemDefaultCredentialsProvider.java:113)
> 	at com.openshift.internal.restclient.authorization.OpenShiftCredentialsProvider.getCredentials(OpenShiftCredentialsProvider.java:69)
> 	at org.apache.http.impl.client.AuthenticationStrategyImpl.select(AuthenticationStrategyImpl.java:184)
> 	at org.apache.http.impl.client.TargetAuthenticationStrategy.select(TargetAuthenticationStrategy.java:43)
> 	at org.apache.http.impl.auth.HttpAuthenticator.handleAuthChallenge(HttpAuthenticator.java:154)
> 	at org.apache.http.impl.execchain.MainClientExec.needAuthentication(MainClientExec.java:557)
> 	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:275)
> 	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
> 	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
> 	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
> 	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
> 	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
> 	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
> 	at com.openshift.internal.restclient.authorization.AuthorizationClient.getContextUsingCredentials(AuthorizationClient.java:134)
> 	at com.openshift.internal.restclient.authorization.AuthorizationClient.getContext(AuthorizationClient.java:99)
> 	at com.openshift.internal.restclient.DefaultClient.getContext(DefaultClient.java:504)
> 	at org.jboss.tools.openshift.core.connection.Connection.authorize(Connection.java:236)
> 	at org.jboss.tools.openshift.core.connection.Connection.connect(Connection.java:226)
> 	at org.jboss.tools.openshift.core.connection.Connection.retryList(Connection.java:445)
> 	at org.jboss.tools.openshift.core.connection.Connection.getResources(Connection.java:389)
> 	at org.jboss.tools.openshift.core.connection.Connection.getResources(Connection.java:376)
> 	at org.jboss.tools.openshift.internal.ui.models.OpenShiftProjectCache.getProjectsFor(OpenShiftProjectCache.java:59)
> 	at org.jboss.tools.openshift.internal.ui.explorer.OpenShiftExplorerContentProvider.getChildrenFor(OpenShiftExplorerContentProvider.java:93)
> 	at org.jboss.tools.openshift.internal.common.ui.explorer.BaseExplorerContentProvider$1.run(BaseExplorerContentProvider.java:167)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the jbosstools-issues mailing list