Examples of ObjectStreamClass


Examples of java.io.ObjectStreamClass

        this.noArgConstructor = noArgConstructor;
        this.objectInputConstructor = objectInputConstructor;
        this.readResolve = readResolve;
        this.writeReplace = writeReplace;
        nonInitConstructor = lookupNonInitConstructor(subject);
        final ObjectStreamClass objectStreamClass = ObjectStreamClass.lookup(subject);
        effectiveSerialVersionUID = objectStreamClass == null ? 0L : objectStreamClass.getSerialVersionUID(); // todo find a better solution
        final HashMap<String, SerializableField> fieldsByName = new HashMap<String, SerializableField>();
        for (SerializableField serializableField : fields = getSerializableFields(subject)) {
            fieldsByName.put(serializableField.getName(), serializableField);
        }
        this.fieldsByName = fieldsByName;
View Full Code Here

Examples of java.io.ObjectStreamClass

                }
            }
            catch (SecurityException ex){
            }

            ObjectStreamClass objStreamClass;
            ClassMap[] mapping=reader.readMagicNumberMapping();
            if(mapping != null) {
                Short m;
                for(int i=0; i < mapping.length; i++) {
                    m=new Short(mapping[i].getMagicNumber());
View Full Code Here

Examples of java.io.ObjectStreamClass

        else
            return i.shortValue();
    }

    public ObjectStreamClass getObjectStreamClassFromMagicNumber(short magic_number) {
        ObjectStreamClass retval=null;
        retval=streamMapId.get(magic_number);
        return retval;
    }
View Full Code Here

Examples of java.io.ObjectStreamClass

        }
    }


    protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
        ObjectStreamClass retval;
        short magic_num=super.readShort();

        if(conf == null || magic_num == -1) {
            return super.readClassDescriptor();
        }
View Full Code Here

Examples of java.io.ObjectStreamClass

        return super.resolveClass(desc);
    }

    @Override
    protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
        final ObjectStreamClass objectStreamClass = super.readClassDescriptor();
        if (OLD_CLASS_NAME_COLUMN_TYPE.equals(objectStreamClass.getName())) {
            final ObjectStreamClass result = ObjectStreamClass.lookup(LegacyColumnType.class);
            return result;
        }
        return objectStreamClass;
    }
View Full Code Here

Examples of java.io.ObjectStreamClass

            }

            @Override
            public void writeFieldsToStream(final Map<String, Object> fields) {
                final Class<?> currentType = currentTypeRef[0];
                final ObjectStreamClass objectStreamClass = ObjectStreamClass.lookup(currentType);

                writer.startNode(ELEMENT_DEFAULT);
                for (final String name : fields.keySet()) {
                    if (!mapper.shouldSerializeMember(currentType, name)) {
                        continue;
                    }
                    final ObjectStreamField field = objectStreamClass.getField(name);
                    final Object value = fields.get(name);
                    if (field == null) {
                        throw new ObjectAccessException("Class "
                            + value.getClass().getName()
                            + " may not write a field named '"
                            + name
                            + "'");
                    }
                    if (value != null) {
                        ExtendedHierarchicalStreamWriterHelper.startNode(writer, mapper.serializedMember(source
                            .getClass(), name), value.getClass());
                        if (field.getType() != value.getClass() && !field.getType().isPrimitive()) {
                            final String attributeName = mapper.aliasForSystemAttribute(ATTRIBUTE_CLASS);
                            if (attributeName != null) {
                                writer.addAttribute(attributeName, mapper.serializedClass(value.getClass()));
                            }
                        }
                        context.convertAnother(value);
                        writer.endNode();
                    }
                }
                writer.endNode();
            }

            @Override
            public void defaultWriteObject() {
                boolean writtenDefaultFields = false;

                final Class<?> currentType = currentTypeRef[0];
                final ObjectStreamClass objectStreamClass = ObjectStreamClass.lookup(currentType);
                if (objectStreamClass == null) {
                    return;
                }

                for (final ObjectStreamField field : objectStreamClass.getFields()) {
                    final Object value = readField(field, currentType, source);
                    if (value != null) {
                        if (!writtenClassWrapper[0]) {
                            writer.startNode(mapper.serializedClass(currentType));
                            writtenClassWrapper[0] = true;
View Full Code Here

Examples of java.io.ObjectStreamClass

                        fields.put(name, value);
                        reader.moveUp();
                    }
                } else if (reader.getNodeName().equals(ELEMENT_DEFAULT)) {
                    // New format introduced in XStream 1.1.1
                    final ObjectStreamClass objectStreamClass = ObjectStreamClass.lookup(currentType[0]);
                    while (reader.hasMoreChildren()) {
                        reader.moveDown();
                        final String name = mapper.realMember(currentType[0], reader.getNodeName());
                        if (mapper.shouldSerializeMember(currentType[0], name)) {
                            final String classAttribute = HierarchicalStreams.readClassAttribute(reader, mapper);
                            Class<?> type;
                            if (classAttribute != null) {
                                type = mapper.realClass(classAttribute);
                            } else {
                                final ObjectStreamField field = objectStreamClass.getField(name);
                                if (field == null) {
                                    throw new MissingFieldException(currentType[0].getName(), name);
                                }
                                type = field.getType();
                            }
View Full Code Here

Examples of java.io.ObjectStreamClass

  public void test (TestHarness harness)
  {
    Class pc = Proxy.getProxyClass(this.getClass().getClassLoader(),
           new Class[] { Comparable.class });
    ObjectStreamClass osc = ObjectStreamClass.lookup (pc);

    harness.check(osc.getSerialVersionUID(), 0, "zero serialVersionUID");
    ObjectStreamField[] osfs = osc.getFields();
    harness.check(osfs != null && osfs.length == 0, "zero ObjectStreamFields");
    harness.check(osc.getField("any"), null, "getField(any) returns null");
    harness.check(osc.getField("h"), null, "getField(h) returns null");
  }
View Full Code Here

Examples of java.io.ObjectStreamClass

public class Test implements Testlet
{
  public void testLookup (Class cl, boolean is_null)
  {
    ObjectStreamClass osc = ObjectStreamClass.lookup (cl);
    harness.check (is_null ? osc == null : osc != null);
  }
View Full Code Here

Examples of java.io.ObjectStreamClass

    {
      throw new WicketNotSerializableException(
          toPrettyPrintedStack(obj.getClass().getName()), exception);
    }

    ObjectStreamClass desc;
    for (;;)
    {
      try
      {
        desc = (ObjectStreamClass)LOOKUP_METHOD.invoke(null, new Object[] { cls,
            Boolean.TRUE });
        Class repCl;
        if (!((Boolean)HAS_WRITE_REPLACE_METHOD_METHOD.invoke(desc, null)).booleanValue() ||
            (obj = INVOKE_WRITE_REPLACE_METHOD.invoke(desc, new Object[] { obj })) == null ||
            (repCl = obj.getClass()) == cls)
        {
          break;
        }
        cls = repCl;
      }
      catch (IllegalAccessException e)
      {
        throw new RuntimeException(e);
      }
      catch (InvocationTargetException e)
      {
        throw new RuntimeException(e);
      }
    }

    if (cls.isPrimitive())
    {
      // skip
    }
    else if (cls.isArray())
    {
      checked.put(obj, null);
      Class ccl = cls.getComponentType();
      if (!(ccl.isPrimitive()))
      {
        Object[] objs = (Object[])obj;
        for (int i = 0; i < objs.length; i++)
        {
          String arrayPos = "[" + i + "]";
          simpleName = arrayPos;
          fieldDescription += arrayPos;
          check(objs[i]);
        }
      }
    }
    else if (obj instanceof Externalizable && (!Proxy.isProxyClass(cls)))
    {
      Externalizable extObj = (Externalizable)obj;
      try
      {
        extObj.writeExternal(new ObjectOutputAdaptor()
        {
          private int count = 0;

          public void writeObject(Object streamObj) throws IOException
          {
            // Check for circular reference.
            if (checked.containsKey(streamObj))
            {
              return;
            }

            checked.put(streamObj, null);
            String arrayPos = "[write:" + count++ + "]";
            simpleName = arrayPos;
            fieldDescription += arrayPos;

            check(streamObj);
          }
        });
      }
      catch (Exception e)
      {
        if (e instanceof WicketNotSerializableException)
        {
          throw (WicketNotSerializableException)e;
        }
        log.warn("error delegating to Externalizable : " + e.getMessage() + ", path: " +
            currentPath());
      }
    }
    else
    {
      Method writeObjectMethod = null;
      Object o = writeObjectMethodCache.get(cls);
      if (o != null)
      {
        if (o instanceof Method)
        {
          writeObjectMethod = (Method)o;
        }
      }
      else
      {
        try
        {
          writeObjectMethod = cls.getDeclaredMethod("writeObject",
              new Class[] { java.io.ObjectOutputStream.class });
        }
        catch (SecurityException e)
        {
          // we can't access/ set accessible to true
          writeObjectMethodCache.put(cls, Boolean.FALSE);
        }
        catch (NoSuchMethodException e)
        {
          // cls doesn't have that method
          writeObjectMethodCache.put(cls, Boolean.FALSE);
        }
      }

      final Object original = obj;
      if (writeObjectMethod != null)
      {
        class InterceptingObjectOutputStream extends ObjectOutputStream
        {
          private int counter;

          InterceptingObjectOutputStream() throws IOException
          {
            super(DUMMY_OUTPUT_STREAM);
            enableReplaceObject(true);
          }

          protected Object replaceObject(Object streamObj) throws IOException
          {
            if (streamObj == original)
            {
              return streamObj;
            }

            counter++;
            // Check for circular reference.
            if (checked.containsKey(streamObj))
            {
              return null;
            }

            checked.put(original, null);
            String arrayPos = "[write:" + counter + "]";
            simpleName = arrayPos;
            fieldDescription += arrayPos;
            check(streamObj);
            return streamObj;
          }
        }
        try
        {
          InterceptingObjectOutputStream ioos = new InterceptingObjectOutputStream();
          ioos.writeObject(obj);
        }
        catch (Exception e)
        {
          if (e instanceof WicketNotSerializableException)
          {
            throw (WicketNotSerializableException)e;
          }
          log.warn("error delegating to writeObject : " + e.getMessage() + ", path: " +
              currentPath());
        }
      }
      else
      {
        Object[] slots;
        try
        {
          slots = (Object[])GET_CLASS_DATA_LAYOUT_METHOD.invoke(desc, null);
        }
        catch (Exception e)
        {
          throw new RuntimeException(e);
        }
        for (int i = 0; i < slots.length; i++)
        {
          ObjectStreamClass slotDesc;
          try
          {
            Field descField = slots[i].getClass().getDeclaredField("desc");
            descField.setAccessible(true);
            slotDesc = (ObjectStreamClass)descField.get(slots[i]);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.