[jboss-jira] [JBoss JIRA] (WFLY-13459) Remote Naming bind / rebind / unbind / rename / createSubcontext / destroySubcontext does not throw exception back to client
Brian Stansberry (Jira)
issues at jboss.org
Tue May 12 17:04:34 EDT 2020
[ https://issues.redhat.com/browse/WFLY-13459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094337#comment-14094337 ]
Brian Stansberry commented on WFLY-13459:
-----------------------------------------
Note that if you use HTTP...
{code}
props.put(Context.PROVIDER_URL, String.format("%s://%s:%d/wildfly-services", "http", host, port));
{code}
... then you do get a NamingException on client side:
{code}
Exception in thread "main" javax.naming.NamingException [Root exception is java.io.IOException: WFHTTP000005: Invalid response code 500 (full response ClientResponse{responseHeaders={content-type=[text/html], content-length=[2480], date=[Tue, 12 May 2020 20:55:10 GMT]}, responseCode=500, status='', protocol=HTTP/2.0})]
at org.wildfly.httpclient.naming.HttpRootContext.performOperation(HttpRootContext.java:442)
at org.wildfly.httpclient.naming.HttpRootContext.lambda$processInvocation$4(HttpRootContext.java:383)
at org.wildfly.httpclient.naming.HttpRootContext.performWithRetry(HttpRootContext.java:182)
at org.wildfly.httpclient.naming.HttpRootContext.processInvocation(HttpRootContext.java:364)
at org.wildfly.httpclient.naming.HttpRootContext.rebindNative(HttpRootContext.java:146)
at org.wildfly.naming.client.AbstractContext.rebind(AbstractContext.java:154)
at org.wildfly.naming.client.AbstractContext.rebind(AbstractContext.java:152)
at org.wildfly.naming.client.WildFlyRootContext.rebind(WildFlyRootContext.java:195)
at java.naming/javax.naming.InitialContext.rebind(InitialContext.java:425)
at org.example.Test.main(Test.java:47)
Caused by: java.io.IOException: WFHTTP000005: Invalid response code 500 (full response ClientResponse{responseHeaders={content-type=[text/html], content-length=[2480], date=[Tue, 12 May 2020 20:55:10 GMT]}, responseCode=500, status='', protocol=HTTP/2.0})
at org.wildfly.httpclient.common.HttpTargetContext$1$1.lambda$completed$4(HttpTargetContext.java:234)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:834)
{code}
It hides any information about the server side fault though.
> Remote Naming bind / rebind / unbind / rename / createSubcontext / destroySubcontext does not throw exception back to client
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-13459
> URL: https://issues.redhat.com/browse/WFLY-13459
> Project: WildFly
> Issue Type: Bug
> Components: Naming
> Affects Versions: 19.1.0.Final
> Reporter: Brad Maxwell
> Assignee: Sudeshna Sur
> Priority: Minor
> Attachments: Client.java, server.log.gz
>
>
> The Remote Naming (JNDI) is Read-Only, remote clients cannot bind or rebind objects into it. Only applications running in the same JVM can bind values into JNDI.
> It looks like the server side logs the warning, but the client does not get an exception thrown back, bind and rebind should throw some javax.naming.NamingException since the bind/rebind operations are failing.
> {code}
> public static void main(String[] args) throws Exception {
> Context ctx = getInitialContext("localhost", 8080, "admin", "redhat1!");
> ctx.bind("java:/reproducer", "reproducer");
> ctx.rebind("java:/reproducer", "reproducer");
> }
> public static Context getInitialContext(String host, Integer port, String username, String password) throws NamingException {
> Properties props = new Properties();
> props.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
> props.put(Context.PROVIDER_URL, String.format("%s://%s:%d", "remote+http", host, port));
> if(username != null && password != null) {
> props.put(Context.SECURITY_PRINCIPAL, username);
> props.put(Context.SECURITY_CREDENTIALS, password);
> }
> return new InitialContext(props);
> }
> {code}
> {code}
> 13:20:22,804 WARN [org.wildfly.naming] (default task-2) WFNAM00036: Unexpected internal error: java.lang.UnsupportedOperationException: WFLYNAM0043: Naming context is read-only
> at org.jboss.as.naming.WritableServiceBasedNamingStore.requireOwner(WritableServiceBasedNamingStore.java:160)
> at org.jboss.as.naming.WritableServiceBasedNamingStore.bind(WritableServiceBasedNamingStore.java:66)
> at org.jboss.as.naming.NamingContext.bind(NamingContext.java:262)
> at org.jboss.as.naming.NamingContext.bind(NamingContext.java:289)
> at org.wildfly.naming.client.remote.RemoteServerTransport.handleBind(RemoteServerTransport.java:238)
> at org.wildfly.naming.client.remote.RemoteServerTransport$1.handleMessage(RemoteServerTransport.java:126)
> at org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:430)
> at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:991)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
> at java.lang.Thread.run(Thread.java:748)
> 13:20:22,813 WARN [org.wildfly.naming] (default task-2) WFNAM00036: Unexpected internal error: java.lang.UnsupportedOperationException: WFLYNAM0043: Naming context is read-only
> at org.jboss.as.naming.WritableServiceBasedNamingStore.requireOwner(WritableServiceBasedNamingStore.java:160)
> at org.jboss.as.naming.WritableServiceBasedNamingStore.rebind(WritableServiceBasedNamingStore.java:108)
> at org.jboss.as.naming.NamingContext.rebind(NamingContext.java:301)
> at org.jboss.as.naming.NamingContext.rebind(NamingContext.java:309)
> at org.wildfly.naming.client.remote.RemoteServerTransport.handleBind(RemoteServerTransport.java:236)
> at org.wildfly.naming.client.remote.RemoteServerTransport$1.handleMessage(RemoteServerTransport.java:129)
> at org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:430)
> at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:991)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the jboss-jira
mailing list