1 Reply Latest reply on Mar 19, 2009 12:04 AM by Ron Sigal

    Holding lock in HTTPClientInvoker.useHttpURLConnection()

    Eugene Batogov Newbie

      Hello all
      I am using Jboss remoting 2.2.2.SP1. End I get lock during use
      JBoss WS with Jboss Remoting:
      ------------------
      "http-0.0.0.0-8080-20" id=113 idx=0x1c4 tid=23314 prio=5 alive, in native, daemon
      at jrockit/net/SocketNativeIO.readBytesPinned(Ljava/io/FileDescriptor;[BIII)I(Native Method)
      at jrockit/net/SocketNativeIO.socketRead(SocketNativeIO.java:46)
      at java/net/SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I(SocketInputStream.java)[inlined]
      at java/net/SocketInputStream.read(SocketInputStream.java:129)[optimized]
      at java/io/BufferedInputStream.fill(BufferedInputStream.java:218)
      at java/io/BufferedInputStream.read1(BufferedInputStream.java:258)
      at java/io/BufferedInputStream.read(BufferedInputStream.java:317)
      ^-- Holding lock: java/io/BufferedInputStream@0x28535a48[biased lock]
      at sun/net/www/http/HttpClient.parseHTTPHeader(HttpClient.java:687)[optimized]
      at sun/net/www/http/HttpClient.parseHTTP(HttpClient.java:632)
      at sun/net/www/protocol/http/HttpURLConnection.getInputStream(HttpURLConnection.java:1000)
      ^-- Holding lock: sun/net/www/protocol/http/HttpURLConnection@0x28511d50[biased lock]
      at java/net/HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
      at org/jboss/remoting/transport/http/HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:280)
      at org/jboss/remoting/transport/http/HTTPClientInvoker.transport(HTTPClientInvoker.java:135)
      at org/jboss/remoting/MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
      at org/jboss/remoting/Client.invoke(Client.java:1634)
      at org/jboss/remoting/Client.invoke(Client.java:548)
      at org/jboss/ws/core/client/HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:226)
      at org/jboss/ws/core/client/SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:77)
      at org/jboss/ws/core/CommonClient.invoke(CommonClient.java:340)
      at org/jboss/ws/core/jaxws/client/ClientImpl.invoke(ClientImpl.java:300)
      at org/jboss/ws/core/jaxws/client/ClientProxy.invoke(ClientProxy.java:166)
      at org/jboss/ws/core/jaxws/client/ClientProxy.invoke(ClientProxy.java:152)
      at $Proxy913.queryOfferings(Ljava/lang/String;Lru/cti/oss/iptv/billing/api/resource/Service;)Ljava/util/List;(Unknown Source)
      at ru/cti/oss/iptv/integration/billing/adapter/pull/external/PricingServiceAdapterPullBean.queryOfferings(PricingServiceAdapterPullBean.java:53)
      at sun/reflect/GeneratedMethodAccessor2947.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)
      at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
      at java/lang/reflect/Method.invoke(Method.java:597)[inlined]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:112)[optimized]
      at org/jboss/ejb3/interceptor/InvocationContextImpl.proceed(InvocationContextImpl.java:166)
      at org/jboss/ejb3/interceptor/EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/ejb3/entity/TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)[optimized]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/ejb3/AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)[optimized]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/aspects/tx/TxPolicy.invokeInNoTx(TxPolicy.java:66)
      at org/jboss/aspects/tx/TxInterceptor$NotSupported.invoke(TxInterceptor.java:102)
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/aspects/tx/TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/ejb3/stateless/StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)[optimized]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/aspects/security/AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)[optimized]
      at org/jboss/ejb3/security/Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)[optimized]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/ejb3/ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)[optimized]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[inlined]
      at org/jboss/ejb3/asynchronous/AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)[optimized]
      at org/jboss/aop/joinpoint/MethodInvocation.invokeNext(MethodInvocation.java:101)[optimized]
      at org/jboss/ejb3/stateless/StatelessContainer.localInvoke(StatelessContainer.java:240)[inlined]
      at org/jboss/ejb3/stateless/StatelessContainer.localInvoke(StatelessContainer.java:210)[inlined]
      at org/jboss/ejb3/stateless/StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)[optimized]
      at $Proxy137.queryOfferings(Ljava/lang/String;Lru/cti/oss/iptv/billing/api/resource/Service;)Ljava/util/Collection;(Unknown Source)
      ----------------------

      I seen in JIRA and don't find this bug.
      Q1: Why this appears?
      Q2: In which version this bug resolved?

      My tomcat threads don't release from this lock.
      previously, thanks. ;)







        • 1. Re: Holding lock in HTTPClientInvoker.useHttpURLConnection()
          Ron Sigal Master

          I don't see anything too unusual here, since sun.net.www.protocol.http.HttpURLConnection.getInputStream() and java.io.BufferedInputStream.read() are both synchronized methods. Rather than a lock problem, I would guess that jrockit.net.SocketNativeIO.readBytesPinned() is hanging, waiting for something to read, though I don't have the source for the jrockit classes. You could try setting the value of "timeout" to see if the call times out.