Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4685305

(cs) Charset.{forName,isSupported} not thread-safe

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 1.4.1_03
    • unknown, 1.4.1_02
    • core-libs
    • 03
    • x86
    • windows_2000

        This bug happened during Sun ONE Message Queue QA testing after the test running
        for > 20hrs (see below original bug report). The test has multiple threads each
        creating connections then sending/receiving messages. The test run repeatly
        again again. This NPE happened from java code on charset lookup for "UTF8"
        - the call is originated from code like:

        sometext.getBytes("UTF8")

        which will be called on each connection creation.

         java.lang.NullPointerException
         at java.util.TreeMap.rotateLeft(TreeMap.java:1248)
         at java.util.TreeMap.fixAfterInsertion(TreeMap.java:1315)
         at java.util.TreeMap.put(TreeMap.java:477)
         at sun.nio.cs.AbstractCharsetProvider.lookup(AbstractCharsetProvider.java:87)
         at sun.nio.cs.AbstractCharsetProvider.charsetForName(AbstractCharsetProvider.java:100)
         at java.nio.charset.Charset.lookup(Charset.java:380)
         at java.nio.charset.Charset.isSupported(Charset.java:405)
         at java.lang.StringCoding.lookupCharset(StringCoding.java:79)
         at java.lang.StringCoding.encode(StringCoding.java:351)
         at java.lang.String.getBytes(String.java:586)
         at com.sun.messaging.jmq.util.MD5.getHashString(MD5.java:24)
         at com.sun.messaging.jmq.jmsclient.auth.JMQDigestAuthenticationHandler.h

        +++++++++++++++++++++++original bug report++++++++++++++++++++++++++++++++

        Client throws Null Pointer Exception while connecting to the broker....
        Exception Stack Trace:


        JMS Exception
        =============


        javax.jms.JMSException: [C4003]: Error occurred on connection creation. - caught
         java.lang.NullPointerException
                at com.sun.messaging.jmq.jmsclient.ExceptionHandler.getJMSException(Exce
        ptionHandler.java:183)
                at com.sun.messaging.jmq.jmsclient.ExceptionHandler.handleException(Exce
        ptionHandler.java:136)
                at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.ja
        va:392)
                at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.
        java:228)
                at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedC
        onnectionImpl.java:33)
                at com.sun.messaging.jmq.jmsclient.QueueConnectionImpl.<init>(QueueConne
        ctionImpl.java:32)
                at com.sun.messaging.ConnectionFactory.createQueueConnection(ConnectionF
        actory.java:72)
                at com.sun.messaging.ConnectionFactory.createQueueConnection(ConnectionF
        actory.java:57)
                at Longevity.ConnectionsThread.doIt(ConnectionsThread.java:85)
                at Longevity.ConnectionsThread.run(ConnectionsThread.java:65)


        Linked Exception
        ================


        java.lang.NullPointerException
                at java.util.TreeMap.rotateLeft(TreeMap.java:1248)
                at java.util.TreeMap.fixAfterInsertion(TreeMap.java:1315)
                at java.util.TreeMap.put(TreeMap.java:477)
                at sun.nio.cs.AbstractCharsetProvider.lookup(AbstractCharsetProvider.jav
        a:87)
                at sun.nio.cs.AbstractCharsetProvider.charsetForName(AbstractCharsetProv
        ider.java:100)
                at java.nio.charset.Charset.lookup(Charset.java:380)
                at java.nio.charset.Charset.isSupported(Charset.java:405)
                at java.lang.StringCoding.lookupCharset(StringCoding.java:79)
                at java.lang.StringCoding.encode(StringCoding.java:351)
                at java.lang.String.getBytes(String.java:586)
                at com.sun.messaging.jmq.util.MD5.getHashString(MD5.java:24)
                at com.sun.messaging.jmq.jmsclient.auth.JMQDigestAuthenticationHandler.h
        andleRequest(JMQDigestAuthenticationHandler.java:58)
                at com.sun.messaging.jmq.jmsclient.ProtocolHandler.authenticate(Protocol
        Handler.java:661)
                at com.sun.messaging.jmq.jmsclient.ProtocolHandler.hello(ProtocolHandler
        .java:615)
                at com.sun.messaging.jmq.jmsclient.ConnectionImpl.hello(ConnectionImpl.j
        ava:232)
                at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(Connect
        ionImpl.java:1463)
                at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.ja
        va:389)
                at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.
        java:228)
                at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedC
        onnectionImpl.java:33)
                at com.sun.messaging.jmq.jmsclient.QueueConnectionImpl.<init>(QueueConne
        ctionImpl.java:32)
                at com.sun.messaging.ConnectionFactory.createQueueConnection(ConnectionF
        actory.java:72)
                at com.sun.messaging.ConnectionFactory.createQueueConnection(ConnectionF
        actory.java:57)
                at Longevity.ConnectionsThread.doIt(ConnectionsThread.java:85)
                at Longevity.ConnectionsThread.run(ConnectionsThread.java:65)


        mathi.manoharan@eng 2002-05-17

        Test Scenario
        =============


        Test that was run on the machin: Longevity
        (http://jpgserv/JMQFalcon/qa/testcases/Longevity_Testsuite.html)

        Three brokers running on Windows Linux and Solaris are clustered. The exception
        occured on the client running on the Windows machine trying to connect to the
        broker running on the Linux machine

        Machine Configurations
        ======================
        Sparc (Solaris 8) - Ultra 60 (hostname: colorodo)
        PC Server (Windows Advanced Server) - Dual processor (two 1MHz processors),
        with 512 MB RAM (hostname power-edge-2500)
        PC Workstation (Redhat Linux 7.1) - Dual Processor PC (two 400 MHz processors),
        with 256 MB RAM
        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


        ###@###.### 2003-03-07
        This happens with both weblogic and websphere when using SUN and performing
        Dynamic WebServices. Can this be fixed for 141_03 seems simple enough to get
        and something lots of webservice users world wide will see.

        Client Exception[with VM 1.4.1] :
        =================================
        java.lang.NullPointerException
        at java.util.TreeMap.rotateLeft(TreeMap.java:1254)
        at java.util.TreeMap.fixAfterInsertion(TreeMap.java:1293)
        at java.util.TreeMap.put(TreeMap.java:477)
        at
        sun.nio.cs.AbstractCharsetProvider.lookup(AbstractCharsetProvider.java:102)
        at
        sun.nio.cs.AbstractCharsetProvider.charsetForName(AbstractCharsetProvider.ja
        va:114)
        at java.nio.charset.Charset.lookup(Charset.java:380)
        at java.nio.charset.Charset.isSupported(Charset.java:405)
        at sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:67)
        at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:82)
        at com.sun.xml.rpc.util.xml.XmlWriter.<init>(XmlWriter.java:85)
        at com.sun.xml.rpc.streaming.XMLWriterImpl.<init>(XMLWriterImpl.java:29)
        at
        com.sun.xml.rpc.streaming.XMLWriterFactoryImpl.createXMLWriter(XMLWriterFact
        oryImpl.java:38)
        at
        com.sun.xml.rpc.streaming.XMLWriterFactoryImpl.createXMLWriter(XMLWriterFact
        oryImpl.java:34)
        at
        com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:38
        2)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:63)
        at
        com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:54)
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:279)
        at DynamicWebservicesClient.invokeMethod(DynamicWebservicesClient.java:146)
        at DynamicWebservicesClient.run(DynamicWebservicesClient.java:85)

        Also getting :
        ===============
        java.lang.NullPointerException
        at java.util.TreeMap.rotateRight(TreeMap.java:1265)
        at java.util.TreeMap.fixAfterInsertion(TreeMap.java:1298)
        at java.util.TreeMap.put(TreeMap.java:477)
        at
        sun.nio.cs.AbstractCharsetProvider.lookup(AbstractCharsetProvider.java:102)
        at
        sun.nio.cs.AbstractCharsetProvider.charsetForName(AbstractCharsetProvider.ja
        va:114)
        at java.nio.charset.Charset.lookup(Charset.java:380)
        at java.nio.charset.Charset.isSupported(Charset.java:405)
        at sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:67)
        at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:82)
        at com.sun.xml.rpc.util.xml.XmlWriter.<init>(XmlWriter.java:85)
        at com.sun.xml.rpc.streaming.XMLWriterImpl.<init>(XMLWriterImpl.java:29)
        at
        com.sun.xml.rpc.streaming.XMLWriterFactoryImpl.createXMLWriter(XMLWriterFact
        oryImpl.java:38)
        at
        com.sun.xml.rpc.streaming.XMLWriterFactoryImpl.createXMLWriter(XMLWriterFact
        oryImpl.java:34)
        at
        com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:38
        2)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:63)
        at
        com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:54)
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:279)
        at DynamicWebservicesClient.invokeMethod(DynamicWebservicesClient.java:146)
        at DynamicWebservicesClient.run(DynamicWebservicesClient.java:85)

              mr Mark Reinhold
              mamanoha Mathirajan Manoharan (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: