PMC approved fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=260931.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/CMNodeNamedMapAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/CMNodeNamedMapAdapter.java
index 0f9542b..1235398 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/CMNodeNamedMapAdapter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/CMNodeNamedMapAdapter.java
@@ -10,10 +10,6 @@
*******************************************************************************/
package org.eclipse.jst.jsf.designtime.internal.view.model.jsp;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -36,7 +32,7 @@
*
*/
public class CMNodeNamedMapAdapter implements
- Map<String, ITagAttributeHandler>, Serializable
+ Map<String, ITagAttributeHandler>
{
/**
* serializable id
@@ -44,7 +40,7 @@
private static final long serialVersionUID = -4188412823197830484L;
private transient final TLDElementDeclaration _tldElement;
private transient final IAttributeAdvisor _advisor;
- private transient AtomicBoolean _isInitialized = new AtomicBoolean(false);
+ private transient final AtomicBoolean _isInitialized = new AtomicBoolean(false);
private final Map<String, ITagAttributeHandler> _cache;
/**
@@ -164,16 +160,4 @@
{
throw new UnsupportedOperationException("Cannot modify map"); //$NON-NLS-1$
}
-
- private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException
- {
- in.defaultReadObject();
- _isInitialized = new AtomicBoolean(true);
- }
-
- private void writeObject(final ObjectOutputStream out) throws IOException
- {
- ensureAllAttributes();
- out.defaultWriteObject();
- }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java
index 6924dbf..a634685 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java
@@ -10,7 +10,9 @@
*******************************************************************************/
package org.eclipse.jst.jsf.designtime.internal.view.model.jsp;
+import java.io.IOException;
import java.io.Serializable;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
@@ -143,6 +145,13 @@
, _adapter);
}
+ @SuppressWarnings("unused")
+ private void readObject(java.io.ObjectInputStream in)
+ throws IOException, ClassNotFoundException
+ {
+ throw new UnsupportedOperationException("This object should be serialized; writeReplace"); //$NON-NLS-1$
+ }
+
@Override
public Map<String, ? extends ITagAttributeHandler> getAttributes()
{
@@ -179,7 +188,8 @@
_name = name;
_tagHandlerClassName = tagHandlerClassName;
_uri = uri;
- _tagAttributes = tagAttributes;
+ // copy the map, because we don't if it is simply delta
+ _tagAttributes = new HashMap(tagAttributes);
}
@Override