This may be a duplicate of a bug filed against the hashtable class with the same jvm/system
(I'm not sure where to access the sun.nio classes, so I can not be 100% sure). Please close it
out if it is related. Without looking at thesun.nio.* code I can't tell if a bad value is passed
in from the the nio charset code or somehow the value was changing between calls (which appeared
to be happening in the related bug) so I'm filing it initially against nio
see 4948500
We only saw this specific problem once in ~ 24 hours, so it may not be easy to duplicate
...I will add a smaller test case if we are able to duplicate it outside our product.
The problem was seen while running a stress/longevity test on SunONE Message Queue 3.5
(I can provide information on how to run the stress/longevity test if necessary and/or
provide access to the system)
System information:
OS: SunOS 5.9 x86
hardware: v60x, 2x2.8GHz Xeon 2GB
JDK: java version "1.4.2_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)
Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
System was unable to load in a properties file, because an IllegalArgumentException
After reviewing the code, we are loading the system using the standard load api:
public synchronized void load(InputStream inStream) throws IOException {
so our code is not passing in a bad value ...
[02/Nov/2003:14:25:54 PST] ERROR [B3100]: Unexpected Broker Internal Error : [Uncaught Exception] :
com.sun.messaging.jmq.jmsserver.util.BrokerException: [B4117]: Unexpected Broker Exception: [Unexpected Error processi
ng message]
at com.sun.messaging.jmq.jmsserver.data.PacketRouter.accessControlCheck(PacketRouter.java:204)
at com.sun.messaging.jmq.jmsserver.data.PacketRouter.handleMessage(PacketRouter.java:141)
at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.readData(IMQConnection.java:1737)
at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.process(IMQConnection.java:785)
at com.sun.messaging.jmq.jmsserver.service.imq.OperationRunnable.process(OperationRunnable.java:135)
at com.sun.messaging.jmq.jmsserver.util.pool.BasicRunnable.run(BasicRunnable.java:455)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.IllegalArgumentException: Non-positive averageCharsPerByte
at java.nio.charset.CharsetDecoder.<init>(CharsetDecoder.java:172)
at java.nio.charset.CharsetDecoder.<init>(CharsetDecoder.java:203)
at sun.nio.cs.ISO_8859_1$Decoder.<init>(ISO_8859_1.java:52)
at sun.nio.cs.ISO_8859_1$Decoder.<init>(ISO_8859_1.java:49)
at sun.nio.cs.ISO_8859_1.newDecoder(ISO_8859_1.java:42)
at sun.nio.cs.StreamDecoder$CharsetSD.<init>(StreamDecoder.java:357)
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:73)
at java.io.InputStreamReader.<init>(InputStreamReader.java:83)
at java.util.Properties.load(Properties.java:266)
at com.sun.messaging.jmq.jmsserver.auth.acl.JMQFileAccessControlModel.load(JMQFileAccessControlModel.java:108)
at com.sun.messaging.jmq.jmsserver.auth.acl.JMQFileAccessControlModel.checkDestinationPermission(JMQFileAccess
ControlModel.java:182)
at com.sun.messaging.jmq.jmsserver.auth.JMQAccessControlContext.checkDestinationPermission(JMQAccessControlCon
text.java:124)
at com.sun.messaging.jmq.jmsserver.auth.AccessController.checkDestinationPermission(AccessController.java:411)
at com.sun.messaging.jmq.jmsserver.data.PacketHandler.checkPermission(PacketHandler.java:201)
at com.sun.messaging.jmq.jmsserver.data.PacketHandler.checkPermission(PacketHandler.java:113)
at com.sun.messaging.jmq.jmsserver.data.PacketRouter.accessControlCheck(PacketRouter.java:184)
... 6 more
- duplicates
-
JDK-4948500 Solaris x86: random IllegalArgumentException: Illegal Load: 0.0 in hashtable
-
- Closed
-