@Override public JAXBContext getContext(Class<?> type) { JAXBContext jaxbContext = jaxbContextCache.get(type); if (jaxbContext == null) { log.debug("JAXB instance to be created for {}", type); try { if (type.equals(LensAPIResult.class)) { ErrorCollection errorCollection = new ErrorCollectionFactory().createErrorCollection(); Set<Class> classesToBeBound = Sets.newHashSet(errorCollection.getErrorPayloadClasses()); log.debug("classesToBeBound:{}", classesToBeBound); classesToBeBound.add(type); Class[] classesToBeBoundArray = classesToBeBound.toArray(new Class[classesToBeBound.size()]); jaxbContext = new LensJAXBContext(classesToBeBoundArray); } else { jaxbContext = new LensJAXBContext(type); } jaxbContextCache.put(type, jaxbContext); } catch (JAXBException | ClassNotFoundException e) { log.error("JAXBContext not initialized for " + type, e); } } return jaxbContext; } }
@Override public JAXBContext getContext(Class<?> type) { JAXBContext jaxbContext = jaxbContextCache.get(type); if (jaxbContext == null) { log.debug("JAXB instance to be created for {}", type); try { if (type.equals(LensAPIResult.class)) { ErrorCollection errorCollection = new ErrorCollectionFactory().createErrorCollection(); Set<Class> classesToBeBound = Sets.newHashSet(errorCollection.getErrorPayloadClasses()); log.debug("classesToBeBound:{}", classesToBeBound); classesToBeBound.add(type); Class[] classesToBeBoundArray = classesToBeBound.toArray(new Class[classesToBeBound.size()]); jaxbContext = new LensJAXBContext(classesToBeBoundArray); } else { jaxbContext = new LensJAXBContext(type); } jaxbContextCache.put(type, jaxbContext); } catch (JAXBException | ClassNotFoundException e) { log.error("JAXBContext not initialized for " + type, e); } } return jaxbContext; } }