diff --git a/jdk/src/share/classes/java/beans/Encoder.java b/jdk/src/share/classes/java/beans/Encoder.java index 62cd8dfb518..b8728132a5d 100644 --- a/jdk/src/share/classes/java/beans/Encoder.java +++ b/jdk/src/share/classes/java/beans/Encoder.java @@ -195,7 +195,13 @@ public class Encoder { */ public PersistenceDelegate getPersistenceDelegate(Class type) { PersistenceDelegate pd = this.finder.find(type); - return (pd != null) ? pd : MetaData.getPersistenceDelegate(type); + if (pd == null) { + pd = MetaData.getPersistenceDelegate(type); + if (pd != null) { + this.finder.register(type, pd); + } + } + return pd; } /**