Changeset 3745


Ignore:
Timestamp:
Sep 17, 2007, 3:07:48 PM (14 years ago)
Author:
Nicklas Nordborg
Message:

Fixes #752: Configuration parameters not preserved when Plugin configuration copied

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4-stable/src/core/net/sf/basedb/core/PluginConfiguration.java

    r3679 r3745  
    467467
    468468    int newVersion = getNewParameterVersion();
     469    int copyFromVersion = copyFrom.getParameterVersion();
    469470    try
    470471    {
    471472      for (Map.Entry<VersionedParameter, ParameterValueData<?>> fromEntry : from.entrySet())
    472473      {
    473         VersionedParameter toName = new VersionedParameter(fromEntry.getKey().getName(), newVersion);
    474         ParameterValueData<?> fromParameter = fromEntry.getValue();
    475         Class<? extends ParameterValueData> dataClass = fromParameter.getClass();
    476         if (org.hibernate.proxy.HibernateProxy.class.isAssignableFrom(dataClass))
     474        VersionedParameter fromName = fromEntry.getKey();
     475        if (copyFromVersion == fromName.getVersion())
    477476        {
    478           // The 'fromParameter' is a proxy, we need the real data class
    479           dataClass =
    480             (Class<? extends ParameterValueData>)org.hibernate.Hibernate.getClass(fromParameter);
     477          VersionedParameter toName = new VersionedParameter(fromName.getName(), newVersion);
     478          ParameterValueData<?> fromParameter = fromEntry.getValue();
     479          Class<? extends ParameterValueData> dataClass = fromParameter.getClass();
     480          if (org.hibernate.proxy.HibernateProxy.class.isAssignableFrom(dataClass))
     481          {
     482            // The 'fromParameter' is a proxy, we need the real data class
     483            dataClass =
     484              (Class<? extends ParameterValueData>)org.hibernate.Hibernate.getClass(fromParameter);
     485          }
     486          ParameterValueData<?> toParameter = dataClass.newInstance();
     487          toParameter.setLabel(fromParameter.getLabel());
     488          toParameter.setDescription(fromParameter.getDescription());
     489          toParameter.replaceValues(fromParameter.getValues());
     490          to.put(toName, toParameter);
    481491        }
    482         ParameterValueData<?> toParameter = dataClass.newInstance();
    483         toParameter.setLabel(fromParameter.getLabel());
    484         toParameter.setDescription(fromParameter.getDescription());
    485         toParameter.replaceValues(fromParameter.getValues());
    486         to.put(toName, toParameter);
    487492      }
    488493    }
Note: See TracChangeset for help on using the changeset viewer.