Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4379597
Votes 0
Synopsis writeUTF throws DataFormatException
Category idl:serialization
Reported Against 1.3
Release Fixed
State 11-Closed, duplicate of 4365188, bug
Priority: 4-Low
Related Bugs 4365188
Submit Date 16-OCT-2000
Description




java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C)
Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode)

I'am writing the content of a string using a ObjectOutputStream. Using Corba
this stream uses com.sun.corba.se.internal.io.IIOPOutputStream to provide the
writeUTF() method i used for that.
Calling writeUTF with a string containig characters over '\u00FF' causes the
following exception stack.

---------------------------------------------------------------------

2000-10-13 14:07:51.547 JLE----N org.omg.CORBA.DATA_CONVERSION: minor code:
1398079494 completed: No
at com.sun.corba.se.internal.iiop.CDROutputStream.write_string(Unknown Source)
at com.sun.corba.se.internal.io.IIOPOutputStream.writeUTF(Unknown Source)
at com.si.lt.dom.CSiSunDOMParser.writeElement(CSiSunDOMParser.java:106)
at com.si.lt.base.ASiProperties.writeObject(ASiProperties.java:72)
at com.sun.corba.se.internal.io.IIOPOutputStream.writeObject(Native Method)
at com.sun.corba.se.internal.io.IIOPOutputStream.invokeObjectWriter(Unknown
Source)
at com.sun.corba.se.internal.io.IIOPOutputStream.outputObject(Unknown Source)
at com.sun.corba.se.internal.io.IIOPOutputStream.simpleWriteObject(Unknown
Source)
at com.sun.corba.se.internal.io.ValueHandlerImpl.writeValueInternal(Unknown
Source)
at com.sun.corba.se.internal.io.ValueHandlerImpl.writeValue(Unknown Source)
at com.sun.corba.se.internal.iiop.CDROutputStream.write_value(Unknown Source)
at com.sun.corba.se.internal.iiop.CDROutputStream.write_value(Unknown Source)
at com.si.la.doc.CSiDocHelper.write(CSiDocHelper.java:38)
at com.si.lc.engine.interfaces._ISiDocumentImplBase._invoke
(_ISiDocumentImplBase.java:137)
at com.sun.corba.se.internal.corba.ServerDelegate.dispatch(Unknown Source)
at com.sun.corba.se.internal.iiop.ORB.process(Unknown Source)
at com.sun.corba.se.internal.iiop.CachedWorkerThread.doWork(Unknown Source)
at com.sun.corba.se.internal.iiop.CachedWorkerThread.run(Unknown Source)

---------------------------------------------------------------------

Looking inside the sources of the jsdk1.3 shows that writeUTF() calls
write_string() of CDROutputStream.
This method checks for characters > '\u00FF' and throws the
org.omg.CORBA.DATA_CONVERSION Exception.

Using a ObjectOutputSteam( new FileOutputSteam(...) ) there are no exceptions.

I think writeUTF() should call write_wstring() of CDROutputStream or creating
the real UTF Format and write it as bytes.
(Review ID: 110916) 
======================================================================
Work Around




using writeObject() instead of writeUTF().
======================================================================
Evaluation
This is a similar issue to the Java char[] problem in ValueHandler -- writing Java characters/Strings as CORBA chars/strings instead of CORBA wchars/wstrings.

We'll fix this in Ladybird during the serialization work in bug 4365188, so I'm closing this as a duplicate.
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang