Author: bimargulies
Date: Thu May 8 18:37:42 2008
New Revision: 654662
URL: http://svn.apache.org/viewvc?rev=654662&view=rev
Log:
Fix to CXF-1569, I think.
Modified:
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/MapsTest.java
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.aegis.xml
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.java
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTestImpl.java
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
Modified:
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/MapsTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/MapsTest.java?rev=654662&r1=654661&r2=654662&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/MapsTest.java
(original)
+++
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/MapsTest.java
Thu May 8 18:37:42 2008
@@ -37,7 +37,6 @@
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -70,12 +69,7 @@
clientInterface = (MapTest)proxyFac.create();
}
- @Ignore
@Test
- /**
- * Until some issues in CXF-1051 are resolved, it's not clear what to test
in here.
- *
- */
public void testMapWsdl() throws WSDLException {
@SuppressWarnings("unused")
//Document wsdl = getWSDLDocument("MapTestService");
Modified:
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.aegis.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.aegis.xml?rev=654662&r1=654661&r2=654662&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.aegis.xml
(original)
+++
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.aegis.xml
Thu May 8 18:37:42 2008
@@ -20,10 +20,13 @@
<mappings>
<mapping>
<method name="getMapStringToLong">
- <return-type valueType='java.lang.Integer'
typeName="mstl" />
+ <return-type typeName="mstl" />
+ </method>
+ <method name="getRawMapStringToInteger">
+ <return-type valueType="java.lang.Integer"/>
</method>
<method name="getMapLongToString">
- <return-type typeName="mslt" />
+ <return-type typeName="mlts" />
</method>
</mapping>
</mappings>
\ No newline at end of file
Modified:
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.java?rev=654662&r1=654661&r2=654662&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.java
(original)
+++
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTest.java
Thu May 8 18:37:42 2008
@@ -34,6 +34,7 @@
ObjectWithAMap returnObjectWithAMap();
void takeMap(ObjectWithAMap map);
Map<String, Long> getMapStringToLong();
+ Map getRawMapStringToInteger();
Map<Long, String> getMapLongToString();
ObjectWithAMapNs2 returnObjectWithAMapNs2();
Modified:
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTestImpl.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTestImpl.java?rev=654662&r1=654661&r2=654662&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTestImpl.java
(original)
+++
cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/map/fortest/MapTestImpl.java
Thu May 8 18:37:42 2008
@@ -61,4 +61,11 @@
public void takeMapNs2(ObjectWithAMapNs2 map) {
}
+ @SuppressWarnings("unchecked")
+ public Map getRawMapStringToInteger() {
+ Map r = new HashMap();
+ r.put("key", new Integer(12));
+ return r;
+ }
+
}
Modified:
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java?rev=654662&r1=654661&r2=654662&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
(original)
+++
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
Thu May 8 18:37:42 2008
@@ -445,8 +445,10 @@
packageLoaders.put(pkgName, jcls.getClassLoader());
String objectFactoryClassName = pkgName + "." +
"ObjectFactory";
Class<?> ofactory = null;
- CachedClassOrNull cachedFactory =
- OBJECT_FACTORY_CACHE.get(objectFactoryClassName);
+ CachedClassOrNull cachedFactory = null;
+ synchronized (OBJECT_FACTORY_CACHE) {
+ cachedFactory =
OBJECT_FACTORY_CACHE.get(objectFactoryClassName);
+ }
if (cachedFactory != null) {
ofactory = cachedFactory.getCachedClass();
}
@@ -455,11 +457,9 @@
ofactory = Class.forName(objectFactoryClassName,
false, jcls
.getClassLoader());
objectFactories.add(ofactory);
- OBJECT_FACTORY_CACHE.put(objectFactoryClassName,
- new
CachedClassOrNull(ofactory));
+ addToObjectFactoryCache(objectFactoryClassName,
ofactory);
} catch (ClassNotFoundException e) {
- OBJECT_FACTORY_CACHE.put(objectFactoryClassName,
- new CachedClassOrNull(null));
+ addToObjectFactoryCache(objectFactoryClassName, null);
}
} else {
objectFactories.add(ofactory);
@@ -532,12 +532,19 @@
cachedContextAndSchemas = new CachedContextAndSchemas(ctx);
JAXBCONTEXT_CACHE.put(classes, cachedContextAndSchemas);
}
+ cachedContextAndSchemas = JAXBCONTEXT_CACHE.get(classes);
}
- cachedContextAndSchemas = JAXBCONTEXT_CACHE.get(classes);
return cachedContextAndSchemas.getContext();
}
+ private void addToObjectFactoryCache(String objectFactoryClassName,
Class<?> ofactory) {
+ synchronized (OBJECT_FACTORY_CACHE) {
+ OBJECT_FACTORY_CACHE.put(objectFactoryClassName,
+ new CachedClassOrNull(ofactory));
+ }
+ }
+
private void addWsAddressingTypes(Set<Class<?>> classes) {
if (classes.contains(ObjectFactory.class)) {
// ws-addressing is used, lets add the specific types