re PR libgcj/17081 (Deserializing java.net.URI fails)

2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/17081
	* java/net/URI.java (string): New field. Make all other fields
	transient.
	(readObject): Implemented.
	(writeObject): Implemented.
	(URI): Set 'string'.

From-SVN: r86197
This commit is contained in:
Bryce McKinlay 2004-08-18 18:05:39 +00:00 committed by Bryce McKinlay
parent 260ba9ce68
commit bb0452b187
2 changed files with 41 additions and 17 deletions

View File

@ -1,3 +1,12 @@
2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
PR libgcj/17081
* java/net/URI.java (string): New field. Make all other fields
transient.
(readObject): Implemented.
(writeObject): Implemented.
(URI): Set 'string'.
2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
PR libgcj/17079

View File

@ -111,30 +111,44 @@ public final class URI implements Comparable, Serializable
* Index of fragment component in parsed URI.
*/
private static final int FRAGMENT_GROUP = 10;
private String scheme;
private String rawSchemeSpecificPart;
private String schemeSpecificPart;
private String rawAuthority;
private String authority;
private String rawUserInfo;
private String userInfo;
private String rawHost;
private String host;
private int port;
private String rawPath;
private String path;
private String rawQuery;
private String query;
private String rawFragment;
private String fragment;
private transient String scheme;
private transient String rawSchemeSpecificPart;
private transient String schemeSpecificPart;
private transient String rawAuthority;
private transient String authority;
private transient String rawUserInfo;
private transient String userInfo;
private transient String rawHost;
private transient String host;
private transient int port;
private transient String rawPath;
private transient String path;
private transient String rawQuery;
private transient String query;
private transient String rawFragment;
private transient String fragment;
private String string;
private void readObject(ObjectInputStream is)
throws ClassNotFoundException, IOException
{
this.string = (String) is.readObject();
try
{
parseURI(this.string);
}
catch (URISyntaxException x)
{
// Should not happen.
throw new RuntimeException(x);
}
}
private void writeObject(ObjectOutputStream is) throws IOException
private void writeObject(ObjectOutputStream os) throws IOException
{
if (string == null)
string = toString();
os.writeObject(string);
}
private static String getURIGroup(Matcher match, int group)
@ -362,6 +376,7 @@ public final class URI implements Comparable, Serializable
*/
public URI(String str) throws URISyntaxException
{
this.string = str;
parseURI(str);
}