org.eclipse.persistence.sdo.helper.DataObjectInputStream Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eclipselink Show documentation
Show all versions of eclipselink Show documentation
EclipseLink build based upon Git transaction f2b9fc5
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
/* $Header: DataObjectInputStream.java 22-nov-2006.16:27:02 mfobrien Exp $ */
/*
DESCRIPTION
This class wraps the ObjectInputStream with a HelperContext instance in order to preserve state and
make the InputStream context aware.
NOTES
Implementor is ExternalizableDelegator
MODIFIED (MM/DD/YY)
mfobrien 11/22/06 - Creation
*/
/**
* @version $Header: DataObjectInputStream.java 22-nov-2006.16:27:02 mfobrien Exp $
* @author mfobrien
* @since 11.1
*/
package org.eclipse.persistence.sdo.helper;
import java.io.*;
import java.util.Arrays;
import commonj.sdo.helper.HelperContext;
import commonj.sdo.impl.HelperProvider;
import org.eclipse.persistence.internal.localization.LoggingLocalization;
import org.eclipse.persistence.logging.AbstractSessionLog;
import org.eclipse.persistence.sdo.SDOConstants;
public class DataObjectInputStream extends ObjectInputStream {
private HelperContext aHelperContext;
/**
* Constructor for single static context clients
* @throws IOException
*/
public DataObjectInputStream() throws IOException {
super();
// default to static context
aHelperContext = HelperProvider.getDefaultContext();
}
/**
* Constructor for single static context clients
* @param in
* @throws IOException
*/
public DataObjectInputStream(InputStream in) throws IOException {
super(in);
// default to static context
aHelperContext = HelperProvider.getDefaultContext();
}
/**
* Constructor for general use by multi-threaded clients
* @param in
* @param aContext
* @throws IOException
*/
public DataObjectInputStream(InputStream in, HelperContext aContext) throws IOException {
super(in);
// set a static or dynamic-instance context
aHelperContext = aContext;
}
public HelperContext getHelperContext() {
return aHelperContext;
}
public void setHelperContext(HelperContext helperContext) {
aHelperContext = helperContext;
}
@Override
protected Class> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
if (!SDOConstants.ALLOWED_DESERIALIZATION_CLASS_NAMES.contains(desc.getName())) {
AbstractSessionLog.getLog().log(AbstractSessionLog.SEVERE, "sdo_error_deserialization", new Object[] {desc.getName()});
throw new InvalidClassException(LoggingLocalization.buildMessage("sdo_error_deserialization", new Object[] {desc.getName()}));
}
return super.resolveClass(desc);
}
}