TaggedComponentHelper.java (read): Use read_octet_array(), not read().
2007-04-16 Andrew Haley <aph@redhat.com> * org/omg/IOP/TaggedComponentHelper.java (read): Use read_octet_array(), not read(). (write): Use write_octet_array(), not write(). * org/omg/PortableServer/Servant.java (_get_delegate): Throw if no delegate has been set. * javax/management/ObjectName.java serialVersionUID: Declare. Make all fields transient. (parse): Break out from constructor. (writeObject, readObject): New methods. From-SVN: r123864
This commit is contained in:
parent
8dd58f012c
commit
2f69f684f3
4 changed files with 88 additions and 29 deletions
|
@ -1,3 +1,17 @@
|
|||
2007-04-16 Andrew Haley <aph@redhat.com>
|
||||
|
||||
* org/omg/IOP/TaggedComponentHelper.java (read): Use
|
||||
read_octet_array(), not read().
|
||||
(write): Use write_octet_array(), not write().
|
||||
|
||||
* org/omg/PortableServer/Servant.java (_get_delegate): Throw if no
|
||||
delegate has been set.
|
||||
|
||||
* javax/management/ObjectName.java serialVersionUID: Declare.
|
||||
Make all fields transient.
|
||||
(parse): Break out from constructor.
|
||||
(writeObject, readObject): New methods.
|
||||
|
||||
2007-04-02 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* gnu/classpath/jdwp/event/ThreadStartEvent.java (Event):
|
||||
|
|
|
@ -45,6 +45,11 @@ import java.util.Iterator;
|
|||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InvalidObjectException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* An {@link ObjectName} instance represents the name of a management
|
||||
|
@ -97,30 +102,32 @@ public class ObjectName
|
|||
implements Serializable, QueryExp
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = 1081892073854801359L;
|
||||
|
||||
/**
|
||||
* The domain of the name.
|
||||
*/
|
||||
private String domain;
|
||||
private transient String domain;
|
||||
|
||||
/**
|
||||
* The properties, as key-value pairs.
|
||||
*/
|
||||
private TreeMap<String,String> properties = new TreeMap<String,String>();
|
||||
private transient TreeMap<String,String> properties;
|
||||
|
||||
/**
|
||||
* The properties as a string (stored for ordering).
|
||||
*/
|
||||
private String propertyListString;
|
||||
private transient String propertyListString;
|
||||
|
||||
/**
|
||||
* True if this object name is a property pattern.
|
||||
*/
|
||||
private boolean propertyPattern;
|
||||
private transient boolean propertyPattern;
|
||||
|
||||
/**
|
||||
* The management server associated with this object name.
|
||||
*/
|
||||
private MBeanServer server;
|
||||
private transient MBeanServer server;
|
||||
|
||||
/**
|
||||
* Constructs an {@link ObjectName} instance from the given string,
|
||||
|
@ -145,12 +152,23 @@ public class ObjectName
|
|||
{
|
||||
if (name.length() == 0)
|
||||
name = "*:*";
|
||||
parse(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the name in the same form as the constructor. Used by
|
||||
* readObject().
|
||||
*/
|
||||
|
||||
private void parse(String name)
|
||||
throws MalformedObjectNameException
|
||||
{
|
||||
int domainSep = name.indexOf(':');
|
||||
if (domainSep == -1)
|
||||
throw new MalformedObjectNameException("No domain separator was found.");
|
||||
domain = name.substring(0, domainSep);
|
||||
String rest = name.substring(domainSep + 1);
|
||||
properties = new TreeMap<String,String>();
|
||||
if (rest.equals("*"))
|
||||
propertyPattern = true;
|
||||
else
|
||||
|
@ -199,6 +217,7 @@ public class ObjectName
|
|||
throws MalformedObjectNameException
|
||||
{
|
||||
this.domain = domain;
|
||||
properties = new TreeMap<String,String>();
|
||||
properties.put(key, value);
|
||||
checkComponents();
|
||||
}
|
||||
|
@ -221,6 +240,7 @@ public class ObjectName
|
|||
throws MalformedObjectNameException
|
||||
{
|
||||
this.domain = domain;
|
||||
this.properties = new TreeMap<String,String>();
|
||||
this.properties.putAll(properties);
|
||||
checkComponents();
|
||||
}
|
||||
|
@ -741,6 +761,46 @@ public class ObjectName
|
|||
return getCanonicalName();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Serialization methods. The serialized form is the same as the
|
||||
* string parsed by the constructor.
|
||||
*/
|
||||
|
||||
private void writeObject(ObjectOutputStream out)
|
||||
throws IOException
|
||||
{
|
||||
out.defaultWriteObject();
|
||||
StringBuffer buffer = new StringBuffer(getDomain());
|
||||
buffer.append(':');
|
||||
String properties = getKeyPropertyListString();
|
||||
buffer.append(properties);
|
||||
if (isPropertyPattern())
|
||||
{
|
||||
if (properties.length() == 0)
|
||||
buffer.append("*");
|
||||
else
|
||||
buffer.append(",*");
|
||||
}
|
||||
out.writeObject(buffer.toString());
|
||||
}
|
||||
|
||||
private void readObject(ObjectInputStream in)
|
||||
throws IOException, ClassNotFoundException
|
||||
{
|
||||
in.defaultReadObject();
|
||||
String objectName = (String)in.readObject();
|
||||
try
|
||||
{
|
||||
parse(objectName);
|
||||
}
|
||||
catch (MalformedObjectNameException x)
|
||||
{
|
||||
throw new InvalidObjectException(x.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Unquotes the supplied string. The quotation marks are removed as
|
||||
* are the backslashes preceding the escaped characters ('"', '?',
|
||||
|
|
|
@ -136,18 +136,9 @@ public abstract class TaggedComponentHelper
|
|||
{
|
||||
TaggedComponent value = new TaggedComponent();
|
||||
value.tag = input.read_long();
|
||||
value.component_data = new byte[input.read_long()];
|
||||
try
|
||||
{
|
||||
input.read(value.component_data);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
MARSHAL m = new MARSHAL();
|
||||
m.minor = Minor.Encapsulation;
|
||||
m.initCause(e);
|
||||
throw m;
|
||||
}
|
||||
int length = input.read_long();
|
||||
value.component_data = new byte[length];
|
||||
input.read_octet_array(value.component_data, 0, length);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@ -163,17 +154,6 @@ public abstract class TaggedComponentHelper
|
|||
{
|
||||
output.write_long(value.tag);
|
||||
output.write_long(value.component_data.length);
|
||||
|
||||
try
|
||||
{
|
||||
output.write(value.component_data);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
MARSHAL m = new MARSHAL();
|
||||
m.minor = Minor.Encapsulation;
|
||||
m.initCause(e);
|
||||
throw m;
|
||||
}
|
||||
output.write_octet_array(value.component_data, 0, value.component_data.length);
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ exception statement from your version. */
|
|||
package org.omg.PortableServer;
|
||||
|
||||
import org.omg.CORBA.BAD_OPERATION;
|
||||
import org.omg.CORBA.BAD_INV_ORDER;
|
||||
import org.omg.CORBA.NO_IMPLEMENT;
|
||||
import org.omg.CORBA.OBJECT_NOT_EXIST;
|
||||
import org.omg.CORBA.ORB;
|
||||
|
@ -109,6 +110,10 @@ public abstract class Servant
|
|||
*/
|
||||
public final Delegate _get_delegate()
|
||||
{
|
||||
if (delegate == null) {
|
||||
throw new BAD_INV_ORDER
|
||||
("The Servant has not been associated with an ORBinstance");
|
||||
}
|
||||
return delegate;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue