/** Tries to open the log. Called from inside _logLock */ private void openLog() { closeLogStream(); WriteStream os = _os; _os = null; IoUtil.close(os); Path path = getPath(); if (path == null) { path = getPath(CurrentTime.getCurrentTime()); } Path parent = path.getParent(); try { if (!parent.isDirectory()) { if (!parent.mkdirs()) { /* XXX: logWarning(L.l("Can't create log directory {0}.\n", parent)); */ } } } catch (Exception e) { logWarning(L.l("Can't create log directory {0}.\n Exception={1}", parent, e), e); } Exception exn = null; for (int i = 0; i < 3 && _os == null; i++) { try { _os = path.openAppend(); } catch (IOException e) { exn = e; } } String pathName = path.getPath(); try { if (pathName.endsWith(".gz")) { _zipOut = _os; _os = Vfs.openWrite(new GZIPOutputStream(_zipOut)); } else if (pathName.endsWith(".zip")) { throw new ConfigException("Can't support .zip in path-format"); } } catch (Exception e) { if (exn == null) exn = e; } if (exn != null) logWarning( L.l( "Can't create log for {0}.\n User={1} Exception={2}", path, System.getProperty("user.name"), exn), exn); }
private Class generateProxy() { try { JavaClassLoader jLoader = new JavaClassLoader(_cl.getClassLoader()); JavaClass jClass = new JavaClass(jLoader); jClass.setAccessFlags(Modifier.PUBLIC); ConstantPool cp = jClass.getConstantPool(); jClass.setWrite(true); jClass.setMajor(49); jClass.setMinor(0); String superClassName = _cl.getName().replace('.', '/'); String thisClassName = superClassName + "$BeanProxy"; jClass.setSuperClass(superClassName); jClass.setThisClass(thisClassName); jClass.addInterface("java/io/Serializable"); jClass.addInterface("com/caucho/config/inject/HandleAware"); generateConstructors(jClass, superClassName); generateWriteReplace(jClass); generateSetHandle(jClass); ByteArrayOutputStream bos = new ByteArrayOutputStream(); WriteStream out = Vfs.openWrite(bos); jClass.write(out); out.close(); byte[] buffer = bos.toByteArray(); if (false) { String userName = System.getProperty("user.name"); out = Vfs.lookup("file:/tmp/" + userName + "/qa/temp.class").openWrite(); out.write(buffer, 0, buffer.length); out.close(); } String cleanName = thisClassName.replace('/', '.'); _proxyClass = (Class<X>) new ProxyClassLoader().loadClass(cleanName, buffer); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } return _proxyClass; }
protected void writeResponse(OutputStream out, Object result) throws IOException, RestException { WriteStream ws = Vfs.openWrite(out); try { XMLStreamWriterImpl writer = new XMLStreamWriterImpl(ws); _marshaller.marshal(result, writer); } catch (JAXBException e) { throw new RuntimeException(e); } finally { ws.close(); } }
@Override public int doCommand(WatchdogArgs args, WatchdogClient client, WebAppDeployClient deployClient) { String fileName = args.getDefaultArg(); if (fileName == null) { throw new ConfigException(L.l("Cannot find a filename in command line")); } CommitBuilder commit = createCommitBuilder(args); try { WriteStream out = Vfs.openWrite(System.out); deployClient.getFile(commit.getId(), fileName, out); out.flush(); } catch (IOException e) { throw ConfigException.create(e); } return 0; }