@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeUTF(metadata.toJson()); out.writeObject(finalPath == null ? null : finalPath.toUri()); out.writeObject(numRows); // writeObject and readObject have handling for null objects out.writeObject(fileSize); }
@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeUTF(metadata.toJson()); out.writeObject(finalPath == null ? null : finalPath.toUri()); out.writeObject(numRows); // writeObject and readObject have handling for null objects out.writeObject(fileSize); }
/** * Test formatter persistence * * @throws IOException Signals that an I/O exception has occurred. */ @Test public void testFormatterPersistence() throws IOException, ClassNotFoundException { Configuration conf = new Configuration(); setConf(conf); testFormatter(conf, "UTF8", LensConfConstants.RESULT_SET_PARENT_DIR_DEFAULT, ".csv", getMockedResultSet()); // Write formatter to stream ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { new ObjectOutputStream(outputStream).writeObject(formatter); } finally { outputStream.close(); } // Create another formatter from the stream ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); WrappedFileFormatter newFormatter = createFormatter(); try { newFormatter=(WrappedFileFormatter)new ObjectInputStream(inputStream).readObject(); } finally { inputStream.close(); } Assert.assertEquals(formatter.getFinalOutputPath(), newFormatter.getFinalOutputPath()); Assert.assertEquals(formatter.getFileSize(), newFormatter.getFileSize()); Assert.assertEquals(formatter.getNumRows(), newFormatter.getNumRows()); Assert.assertEquals(formatter.getMetadata().toJson(), newFormatter.getMetadata().toJson()); }
private void persistQuery(FinishedQuery finished) throws SQLException { FinishedLensQuery finishedQuery = new FinishedLensQuery(finished.getCtx()); if (finished.ctx.getStatus().getStatus() == SUCCESSFUL) { if (finished.ctx.getStatus().isResultSetAvailable()) { try { LensResultSet set = finished.getResultset(); if (set != null && PersistentResultSet.class.isAssignableFrom(set.getClass())) { LensResultSetMetadata metadata = set.getMetadata(); String outputPath = set.getOutputPath(); Long fileSize = ((PersistentResultSet) set).getFileSize(); Integer rows = set.size(); finishedQuery.setResult(outputPath); finishedQuery.setMetadata(metadata.toJson()); finishedQuery.setRows(rows); finishedQuery.setFileSize(fileSize); } } catch (Exception e) { log.error("Couldn't obtain result set info for the query: {}. Going ahead with perstsiting the query", finished.getQueryHandle(), e); } } } lensServerDao.insertFinishedQuery(finishedQuery); log.info("Saved query {} to DB", finishedQuery.getHandle()); } }