summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2008-06-23 16:17:53 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2008-06-23 16:17:53 +0000
commitff6e6a7002b1cc773ce8fed5cd11add77823bafb (patch)
tree01a2f51e8188357c5f8e603769524396c665c86b /branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache
parent992ab88dec30e1351f3cd782b174bdf375d14930 (diff)
Merge the fix for TUSCANY-2388 from trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@670666 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache')
-rw-r--r--branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCache.java23
1 files changed, 13 insertions, 10 deletions
diff --git a/branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCache.java b/branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCache.java
index 8b527bf079..30ca226dc1 100644
--- a/branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCache.java
+++ b/branches/sca-java-1.3/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextCache.java
@@ -75,17 +75,21 @@ public class JAXBContextCache {
protected static final Set<Class<?>> BUILTIN_CLASSES_SET = new HashSet<Class<?>>(Arrays.asList(JAXB_BUILTIN_CLASSES));
+ /*
protected static Class<?>[] COMMON_ARRAY_CLASSES =
new Class[] {char[].class, short[].class, int[].class, long[].class, float[].class, double[].class,
String[].class
};
protected static final Set<Class<?>> COMMON_CLASSES_SET = new HashSet<Class<?>>(Arrays.asList(COMMON_ARRAY_CLASSES));
+ */
protected LRUCache<Object, JAXBContext> cache;
protected LRUCache<JAXBContext, Unmarshaller> upool;
protected LRUCache<JAXBContext, Marshaller> mpool;
- protected JAXBContext commonContext;
+
+ // protected JAXBContext commonContext;
+ protected JAXBContext defaultContext;
public JAXBContextCache() {
this(CACHE_SIZE, CACHE_SIZE, CACHE_SIZE);
@@ -95,12 +99,12 @@ public class JAXBContextCache {
cache = new LRUCache<Object, JAXBContext>(contextSize);
upool = new LRUCache<JAXBContext, Unmarshaller>(unmarshallerSize);
mpool = new LRUCache<JAXBContext, Marshaller>(marshallerSize);
- commonContext = getCommonJAXBContext();
+ defaultContext = getDefaultJAXBContext();
}
-
- public static JAXBContext getCommonJAXBContext() {
+
+ public static JAXBContext getDefaultJAXBContext() {
try {
- return JAXBContext.newInstance(COMMON_CLASSES_SET.toArray(new Class<?>[COMMON_CLASSES_SET.size()]));
+ return JAXBContext.newInstance();
} catch (JAXBException e) {
throw new IllegalArgumentException(e);
}
@@ -201,8 +205,8 @@ public class JAXBContextCache {
}
public JAXBContext getJAXBContext(Class<?> cls) throws JAXBException {
- if (COMMON_CLASSES_SET.contains(cls) || BUILTIN_CLASSES_SET.contains(cls)) {
- return commonContext;
+ if (BUILTIN_CLASSES_SET.contains(cls)) {
+ return defaultContext;
}
synchronized (cache) {
JAXBContext context = cache.get(cls);
@@ -253,9 +257,8 @@ public class JAXBContextCache {
classSet.remove(Image[].class);
}
- // Is the common one
- if (COMMON_CLASSES_SET.containsAll(classSet)) {
- return commonContext;
+ if(classSet.isEmpty()) {
+ return defaultContext;
}
// For single class