Fixes a race condition while trying to reset the accessibility state of Field objects during serialization. It turns out that this was not necessary because reflection will return a copy of this state when Class.getDeclaredFields() is called.
Also, changed the visibility of the SerializationUtil class to prevent the field instances from leaking out beyond the RPC system.
Found by: tobyr
Review by: tobyr (deskcheck)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1940 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java b/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java
index c080e53..4596cd5 100644
--- a/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java
+++ b/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Google Inc.
+ * Copyright 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -31,7 +31,7 @@
/**
* Serialization utility class used by the server-side RPC code.
*/
-public class SerializabilityUtil {
+class SerializabilityUtil {
public static final String DEFAULT_ENCODING = "UTF-8";
diff --git a/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamReader.java b/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamReader.java
index b71323d..1886551 100644
--- a/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamReader.java
+++ b/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamReader.java
@@ -444,11 +444,6 @@
}
declField.set(instance, value);
-
- if (needsAccessOverride) {
- // Restore access restrictions
- declField.setAccessible(isAccessible);
- }
}
Class<?> superClass = instanceClass.getSuperclass();
diff --git a/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamWriter.java b/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamWriter.java
index 231e454..3a8ad9b 100644
--- a/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamWriter.java
+++ b/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamWriter.java
@@ -606,11 +606,6 @@
} catch (IllegalAccessException e) {
throw new SerializationException(e);
}
-
- if (needsAccessOverride) {
- // Restore the access restrictions
- declField.setAccessible(isAccessible);
- }
}
Class<?> superClass = instanceClass.getSuperclass();