Skip to content

Commit d721f3f

Browse files
committed
Fixup StrutsConverterFactory
It should delegate back to ObjectFactory#buildBean instead of directly calling Container#inject, otherwise overrides of buildBean in subclasses of ObjectFactory e.g. SpringObjectFactory are skipped; meaning that TypeConverters cannot make use of Spring dependency injection Fixes: https://issues.apache.org/jira/projects/WW/issues/WW-5524
1 parent aaa4984 commit d721f3f

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

core/src/main/java/org/apache/struts2/factory/StrutsConverterFactory.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,30 @@
1818
*/
1919
package org.apache.struts2.factory;
2020

21+
import org.apache.logging.log4j.LogManager;
22+
import org.apache.logging.log4j.Logger;
23+
import org.apache.struts2.ObjectFactory;
2124
import org.apache.struts2.conversion.TypeConverter;
22-
import org.apache.struts2.inject.Container;
2325
import org.apache.struts2.inject.Inject;
24-
import org.apache.logging.log4j.Logger;
25-
import org.apache.logging.log4j.LogManager;
2626

2727
import java.util.Map;
2828

2929
/**
3030
* Default implementation
3131
*/
3232
public class StrutsConverterFactory implements ConverterFactory {
33-
3433
private static final Logger LOG = LogManager.getLogger(StrutsConverterFactory.class);
3534

36-
private Container container;
35+
private ObjectFactory objectFactory;
3736

3837
@Inject
39-
public void setContainer(Container container) {
40-
this.container = container;
38+
public void setObjectFactory(ObjectFactory objectFactory) {
39+
this.objectFactory = objectFactory;
4140
}
4241

42+
@Override
4343
public TypeConverter buildConverter(Class<? extends TypeConverter> converterClass, Map<String, Object> extraContext) throws Exception {
4444
LOG.debug("Creating converter of type [{}]", converterClass.getCanonicalName());
45-
return container.inject(converterClass);
45+
return (TypeConverter)objectFactory.buildBean(converterClass, extraContext);
4646
}
47-
4847
}

0 commit comments

Comments
 (0)