Author: remm
Date: Thu Dec 13 14:27:51 2012
New Revision: 1421310
URL: http://svn.apache.org/viewvc?rev=1421310&view=rev
Log:
Avoid replacement creating a duplicate.
Modified:
tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
Modified:
tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java?rev=1421310&r1=1421309&r2=1421310&view=diff
==============================================================================
---
tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
(original)
+++
tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
Thu Dec 13 14:27:51 2012
@@ -93,9 +93,6 @@ public class ConnectorStoreAppender exte
for (Iterator propertyIterator = propertyKeys.iterator();
propertyIterator
.hasNext();) {
String key = (String) propertyIterator.next();
- if (replacements.get(key) != null) {
- key = (String) replacements.get(key);
- }
Object value = (Object) IntrospectionUtils.getProperty(bean, key);
if (desc.isTransientAttribute(key)) {
@@ -158,12 +155,28 @@ public class ConnectorStoreAppender exte
continue;
propertyKeys.add(descriptors[i].getName());
}
- for (Iterator propertyIterator = protocolHandler.getAttributeNames();
propertyIterator
- .hasNext();) {
- Object key = propertyIterator.next();
- if (propertyKeys.contains(key))
- continue;
- propertyKeys.add(key);
+ // Add the properties of the protocol handler
+ descriptors = Introspector.getBeanInfo(
+ protocolHandler.getClass()).getPropertyDescriptors();
+ if (descriptors == null) {
+ descriptors = new PropertyDescriptor[0];
+ }
+ for (int i = 0; i < descriptors.length; i++) {
+ if (descriptors[i] instanceof IndexedPropertyDescriptor) {
+ continue; // Indexed properties are not persisted
+ }
+ if (!isPersistable(descriptors[i].getPropertyType())
+ || (descriptors[i].getReadMethod() == null)
+ || (descriptors[i].getWriteMethod() == null)) {
+ continue; // Must be a read-write primitive or String
+ }
+ String key = descriptors[i].getName();
+ if (replacements.get(key) != null) {
+ key = (String) replacements.get(key);
+ }
+ if (!propertyKeys.contains(key)) {
+ propertyKeys.add(key);
+ }
}
return propertyKeys;
}
Modified:
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java?rev=1421310&r1=1421309&r2=1421310&view=diff
==============================================================================
---
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
(original)
+++
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
Thu Dec 13 14:27:51 2012
@@ -90,12 +90,9 @@ public class ConnectorStoreAppender exte
List propertyKeys = getPropertyKeys((Connector) bean);
// Create blank instance
Object bean2 = defaultInstance(bean);
- for (Iterator propertyIterator = propertyKeys.iterator();
propertyIterator
- .hasNext();) {
+ Iterator propertyIterator = propertyKeys.iterator();
+ while (propertyIterator.hasNext()) {
String key = (String) propertyIterator.next();
- if (replacements.get(key) != null) {
- key = (String) replacements.get(key);
- }
Object value = (Object) IntrospectionUtils.getProperty(bean, key);
if (desc.isTransientAttribute(key)) {
@@ -116,8 +113,9 @@ public class ConnectorStoreAppender exte
// The property has its default value
continue;
}
- if (isPrintValue(bean, bean2, key, desc))
+ if (isPrintValue(bean, bean2, key, desc)) {
printValue(writer, indent, key, value);
+ }
}
String protocol = ((Connector) bean).getProtocol();
if (protocol != null && !"HTTP/1.1".equals(protocol))
@@ -173,8 +171,12 @@ public class ConnectorStoreAppender exte
|| (descriptors[i].getWriteMethod() == null)) {
continue; // Must be a read-write primitive or String
}
- if (!propertyKeys.contains(descriptors[i].getName())) {
- propertyKeys.add(descriptors[i].getName());
+ String key = descriptors[i].getName();
+ if (replacements.get(key) != null) {
+ key = (String) replacements.get(key);
+ }
+ if (!propertyKeys.contains(key)) {
+ propertyKeys.add(key);
}
}
return propertyKeys;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]