1 Reply Latest reply on Dec 21, 2005 7:33 PM by atulksh

    java.io.StreamCorruptedException accessing Keystore

    atulksh

      Hi,
      I am getting java.io.StreamCorruptedException when I try to access a keystore file. The keystore was generated using JDK 1.2.2 (old application) and I am trying to access the same code that ran in Weblogic 5.1 under JDK 1.2.2 in JBoss 4.0.2 using JDK 1.4.2. The JCE jar version that I am using with JDK 1.2.2 is JCE 1.2.

      I did a test where I tried to invoke an independant java program which loads the keystore under JDK 1.4.2 and it worked absolutely fine. The code that I used in this small program is the same exact one that gets invoked inside the web application.

      The exception I am getting is -

      java.io.StreamCorruptedException
      at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1372)
      at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:607)
      at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:778)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1528)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
      at com.sun.crypto.provider.JceKeyStore.engineLoad(DashoA12275)
      at java.security.KeyStore.load(KeyStore.java:1150)

      The code that is being used is -

      Provider sunJce = new com.sun.crypto.provider.SunJCE();
      Security.addProvider(sunJce);
      KeyStore ks = KeyStore.getInstance("JCEKS", "SunJCE");
      FileInputStream is = new FileInputStream(keyStoreFile);
      ks.load(is,args[1].toCharArray());

      What can be the problem. Please help. I am really stuck here.

      Atul.

        • 1. Re: java.io.StreamCorruptedException accessing Keystore
          atulksh

          I myself found the problem. In my build.xml the ant task to copy the keystore to the proper location had filtering="true" for tokens. This was somehow messing up the keystore and it was getting modified. Removing the filtering solved the problem. So the keystore was getting corrupt and the exception was perfectly valid.

          Atul.