public static Serializable getObject(byte[] data) {
        if (data == null) {
            return null;
        }
        ObjectInputStream readS;
        Serializable c;
        try {
            readS = new ObjectInputStream(new ByteArrayInputStream(data));
            c = (Serializable) readS.readObject();
        } catch (ClassNotFoundException e) {
            return null;
        } catch (StreamCorruptedException e) {
            return new String(data);
        } catch (IOException e) {
            if (data.length < 5){ //@TODO какая-то магия, 3-буквенные слова вываливались с IOE
                return new String(data);
            }else{
                return null;
            }
        }
        if (c instanceof byte[]) {
            return new String((byte[]) c);
        } else {
            return c;
        }
    }