Code(-9010) An exception occurred: java.io.StreamCorruptedException

  • 3010266
  • 10-Jul-2007
  • 26-Apr-2012

Environment

Novell Nsure Identity Manager 2.0
Novell NetWare NetWare 6.5


Situation

DirXML DSTrace screen shows the following Java errors:

Message: Code(-9010) An exception occurred: java.io.EOFException

at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)

at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)

at java.io.ObjectInputStream.(ObjectInputStream.java:253)

at jdbm.recman.RecordManager.byteArrayToObject(RecordManager.java:293)

at jdbm.recman.RecordManager.fetchObject(RecordManager.java:236)

at jdbm.helper.ObjectCache.fetchObject(ObjectCache.java:104)

at jdbm.btree.BTree.getRoot(BTree.java:452)

at jdbm.btree.BTree.browse(BTree.java:395)

at com.novell.nds.dirxml.engine.WorkManager.getFirstFromBTree(WorkManager.java:222)

at com.novell.nds.dirxml.engine.WorkManager.getWork(WorkManager.java:340)

at com.novell.nds.dirxml.engine.Driver.processWork(Driver.java:984)

at com.novell.nds.dirxml.engine.DriverEntry.processWork(DriverEntry.java:911)

at com.novell.nds.dirxml.engine.DriverEntry.eventLoop(DriverEntry.java:659)

at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:505)

at java.lang.Thread.run(Thread.java:534)

or

Message: Code(-9010) An exception occurred: java.io.StreamCorruptedException

at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2347)

at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2380)

at java.io.ObjectInputStream$BlockDataInputStream.skipBlockData(ObjectInputStream.java:2285)

at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1795)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1519)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)

at jdbm.btree.BPage.readExternal(BPage.java:718)

at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1686)

at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1644)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)

at jdbm.recman.RecordManager.byteArrayToObject(RecordManager.java:294)

at jdbm.recman.RecordManager.fetchObject(RecordManager.java:236)

at jdbm.helper.ObjectCache.fetchObject(ObjectCache.java:104)

at jdbm.btree.BTree.getRoot(BTree.java:452)

at jdbm.btree.BTree.browse(BTree.java:395)

at com.novell.nds.dirxml.engine.WorkManager.getFirstFromBTree(WorkManager.java:222)

at com.novell.nds.dirxml.engine.WorkManager.getWork(WorkManager.java:340)

at com.novell.nds.dirxml.engine.Driver.processWork(Driver.java:984)

at com.novell.nds.dirxml.engine.DriverEntry.processWork(DriverEntry.java:911)

at com.novell.nds.dirxml.engine.DriverEntry.eventLoop(DriverEntry.java:659)

at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:505)

at java.lang.Thread.run(Thread.java:534)

.

Resolution

In the SYS:\_NETWARE directory (the same place where the cache files are kept)there should be two files dx*.lg and dx*.db where * is the entry id ofthe driver object in decimal form. In order to translate the appropriate entry ID into hexidecimal form see the following TID:

Which TAO file in the NetWare directory corresponds with the DirXML Driver (TID:3514553)

If you shut down the driver and then delete (or rename, copy to new location) thesetwo files you should be able to come up without the error. To delete, copy, or rename files in the _NETWARE directory, use TOOLBOX.NLM, CPQFM.NLM or JCMD.NLM. (On NetWare 6.5 servers you may use TBX.NLM if it was installed by default.)

Also, ifyoudisable and reeanable the driver these will be deleted and recreated. However, be mindful if you disable and reenable the driver, it will cause a resync to occur on all objects.

Either one of these could cause some things to get lost, primarilyanything that was written back from the publisher channel to theapplication that hadn't yet completed.


Additional Information

Notes:

Using TOOLBOX.NLM on a NetWare server requires the use of the -NL switch. This allows you to access the local SYS:_NETWARE directory, but you will not be able to access resources external to the server.
Warning: Use great care when accessing the SYS:_NETWARE directory. A misstep can cause irreversible damage.

On a Linux server the dx*.db and dx*.lg files are in /var/nds/dib.

For info, the dx_*.db and the dx*.lg files are for the eDirectory driver, the *jdbc files are for the jdbc driver and the lap_*.db/lg/tmp. are for the ldap driver.

Formerly known as TID# 10094972