private void processExecuteMethod(final Object[] args, ClassLoader localClassLoader) throws IOException, ClassNotFoundException { // commomClassLoader if (args.length == 1) { localClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); } else if (args.length == 2 && args[1] instanceof ProcessDefinitionUUID) { // processClassLoader localClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader((ProcessDefinitionUUID) args[1]); } Thread.currentThread().setContextClassLoader(localClassLoader); args[0] = ((RESTCommand<?>) args[0]).getCommand(); }
private DocumentContent getDocumentContent(final String documentId) throws DocumentNotFoundException { DocumentContent documentContent = null; final ClassLoader ori = Thread.currentThread().getContextClassLoader(); try { // it's necessary to set the Classloader to avoid exception while using // the Studio // java.lang.IllegalArgumentException: interface // org.hibernate.engine.jdbc.WrappedBlob is not visible from class loader final CommonClassLoader commonClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); Thread.currentThread().setContextClassLoader(commonClassLoader); documentContent = getDbSession().getDocumentContent(Long.valueOf(documentId)); } finally { if (ori != null) { Thread.currentThread().setContextClassLoader(ori); } } if (documentContent == null) { throw new DocumentNotFoundException(documentId); } return documentContent; }
private Object getObjectFromXML(final String xmlRepresentation, final ProcessDefinitionUUID processUUID) { final XStream xstream = XStreamUtil.getDefaultXstream(); Object result = null; ClassLoader localClassLoader = null; try { result = xstream.fromXML(xmlRepresentation); } catch (final Exception e) { // try with ProcessClassLoader localClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader(processUUID); Thread.currentThread().setContextClassLoader(localClassLoader); try { result = xstream.fromXML(xmlRepresentation); } catch (final Exception ex) { // try with CommonClassLoader localClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); Thread.currentThread().setContextClassLoader(localClassLoader); result = xstream.fromXML(xmlRepresentation); } } return result; }
classLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Executing a command. commonClassLoader found: " + classLoader);
@Override public DocumentVersion storeDocumentContent(final DocumentVersion document, final byte[] documentContent) throws DocumentationCreationException { final ClassLoader ori = Thread.currentThread().getContextClassLoader(); try { // it's necessary to set the class loader to avoid exception while using the Studio // java.lang.IllegalArgumentException: interface org.hibernate.engine.jdbc.BlobImplementer is not visible from class loader final CommonClassLoader commonClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); Thread.currentThread().setContextClassLoader(commonClassLoader); final DocumentContentImpl content = new DocumentContentImpl(documentContent); getDbSession().save(content); document.setContentStorageId(content.getId()); return document; } finally { if (ori != null) { Thread.currentThread().setContextClassLoader(ori); } } }
private Object getObjectFromRESTObject(final RESTObject restObject, final ProcessDefinitionUUID processUUID) throws IOException, ClassNotFoundException { Object result = null; ClassLoader localClassLoader = null; try { result = restObject.getObject(); } catch (final ClassNotFoundException e) { // try with ProcessClassLoader localClassLoader = EnvTool.getClassDataLoader().getProcessClassLoader(processUUID); Thread.currentThread().setContextClassLoader(localClassLoader); try { result = restObject.getObject(); } catch (final ClassNotFoundException ex) { // try with CommonClassLoader localClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); Thread.currentThread().setContextClassLoader(localClassLoader); result = restObject.getObject(); } } return result; }