[vassalengine-svn] SF.net SVN: vassalengine: [2769] VASSAL-src/branches/uckelman-caching/src/ VASSA
Brought to you by:
rodneykinney,
uckelman
From: <uck...@us...> - 2007-12-27 23:25:24
|
Revision: 2769 http://vassalengine.svn.sourceforge.net/vassalengine/?rev=2769&view=rev Author: uckelman Date: 2007-12-27 15:25:27 -0800 (Thu, 27 Dec 2007) Log Message: ----------- Streams cleanup. Modified Paths: -------------- VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/BonesDiceServer.java VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/DieServer.java VASSAL-src/branches/uckelman-caching/src/VASSAL/chat/peer2peer/UnitTest.java VASSAL-src/branches/uckelman-caching/src/VASSAL/tools/ZipUpdater.java Modified: VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/BonesDiceServer.java =================================================================== --- VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/BonesDiceServer.java 2007-12-27 22:21:18 UTC (rev 2768) +++ VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/BonesDiceServer.java 2007-12-27 23:25:27 UTC (rev 2769) @@ -1,3 +1,21 @@ +/* + * $Id$ + * + * Copyright (c) 2007 Joel Uckelman + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License (LGPL) as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, copies are available + * at http://www.opensource.org. + */ package VASSAL.build.module.dice; @@ -2,2 +20,3 @@ import java.io.BufferedReader; +import java.io.InputStream; import java.io.IOException; @@ -17,87 +36,103 @@ public class BonesDiceServer extends DieServer { - public BonesDiceServer() { - name = "Bones"; - description = "Bones Dice Server"; - emailOnly = false; - maxRolls = 0; - maxEmails = 0; - serverURL = "http://dice.nomic.net/cgi-bin/randroll.pl"; - passwdRequired = false; - canDoSeparateDice = true; - } + public BonesDiceServer() { + name = "Bones"; + description = "Bones Dice Server"; + emailOnly = false; + maxRolls = 0; + maxEmails = 0; + serverURL = "http://dice.nomic.net/cgi-bin/randroll.pl"; + passwdRequired = false; + canDoSeparateDice = true; + } - public String[] buildInternetRollString(RollSet toss) { - DieRoll[] rolls = toss.getDieRolls(); - StringBuilder query = new StringBuilder("req="); + public String[] buildInternetRollString(RollSet toss) { + DieRoll[] rolls = toss.getDieRolls(); + StringBuilder query = new StringBuilder("req="); - // format is "{{ xdy + n }}" - for (int i = 0; i < rolls.length; ++i) { - query.append("{{") - .append(rolls[i].getNumDice()) - .append("D") - .append(rolls[i].getNumSides()); + // format is "{{ xdy + n }}" + for (int i = 0; i < rolls.length; ++i) { + query.append("{{") + .append(rolls[i].getNumDice()) + .append("D") + .append(rolls[i].getNumSides()); - if (rolls[i].getPlus() != 0) { - query.append("+").append(rolls[i].getPlus()); - } + if (rolls[i].getPlus() != 0) { + query.append("+").append(rolls[i].getPlus()); + } - query.append("}}\n"); - } + query.append("}}\n"); + } - try { - return new String[] { new URI("http", - "dice.nomic.net", - "/cgi-bin/randroll.pl", - query.toString(), - null).toURL().toString() }; + try { + return new String[] { new URI("http", + "dice.nomic.net", + "/cgi-bin/randroll.pl", + query.toString(), + null).toURL().toString() }; -// return new String[] { URLEncoder.encode(query.toString(), "UTF-8") }; - } - catch (MalformedURLException e) { - // should never happen - } - catch (URISyntaxException e) { - // should never happen - } +// return new String[] { URLEncoder.encode(query.toString(), "UTF-8") }; + } + catch (MalformedURLException e) { + // should never happen + } + catch (URISyntaxException e) { + // should never happen + } - return null; - } + return null; + } - public void parseInternetRollString(RollSet rollSet, Vector results) { - Iterator line = results.iterator(); + public void parseInternetRollString(RollSet rollSet, Vector results) { + Iterator line = results.iterator(); - for (int i = 0; i < rollSet.dieRolls.length; ++i) { - StringTokenizer st = new StringTokenizer((String) line.next(), " "); + for (int i = 0; i < rollSet.dieRolls.length; ++i) { + StringTokenizer st = new StringTokenizer((String) line.next(), " "); - for (int j = 0; j < rollSet.dieRolls[i].getNumDice(); ++j) { - rollSet.dieRolls[i].setResult(j, Integer.parseInt(st.nextToken())); - } - } - } + for (int j = 0; j < rollSet.dieRolls[i].getNumDice(); ++j) { + rollSet.dieRolls[i].setResult(j, Integer.parseInt(st.nextToken())); + } + } + } - public void roll(RollSet mr, FormattedString format) { - super.doInternetRoll(mr, format); - } + public void roll(RollSet mr, FormattedString format) { + super.doInternetRoll(mr, format); + } - public void doIRoll(RollSet toss) throws IOException { - String[] rollString = buildInternetRollString(toss); - Vector returnString = new Vector(); + public void doIRoll(RollSet toss) throws IOException { + String[] rollString = buildInternetRollString(toss); + Vector returnString = new Vector(); - URL url = new URL(rollString[0]); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("GET"); - connection.connect(); + URL url = new URL(rollString[0]); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("GET"); + connection.connect(); - BufferedReader in = new BufferedReader( - new InputStreamReader(connection.getInputStream())); + InputStream is = null; + try { + is = connection.getInputStream(); + InputStreamReader isr = null; + try { + isr = new InputStreamReader(is); + BufferedReader in = null; + try { + in = new BufferedReader(isr); + String line; + while ((line = in.readLine()) != null) returnString.add(line); + } + finally { + if (in != null) in.close(); + } + } + finally { + if (isr != null) isr.close(); + } + } + finally { + if (is != null) is.close(); + } - String line; - while ((line = in.readLine()) != null) returnString.add(line); - - in.close(); - - parseInternetRollString(toss, returnString); - } + parseInternetRollString(toss, returnString); + } } Modified: VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/DieServer.java =================================================================== --- VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/DieServer.java 2007-12-27 22:21:18 UTC (rev 2768) +++ VASSAL-src/branches/uckelman-caching/src/VASSAL/build/module/dice/DieServer.java 2007-12-27 23:25:27 UTC (rev 2769) @@ -2,7 +2,9 @@ import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; +import java.io.OutputStream; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; @@ -134,7 +136,8 @@ * The text reported after the results of the roll; * @deprecated */ - @Deprecated protected String getReportSuffix() { + @Deprecated + protected String getReportSuffix() { return " *** <" + GameModule.getGameModule().getChatter().getHandle() + ">"; } @@ -248,36 +251,63 @@ } public void doIRoll(RollSet toss) throws IOException { - - String[] rollString = buildInternetRollString(toss); - ArrayList<String> returnString = new ArrayList<String>(); + final String[] rollString = buildInternetRollString(toss); + final ArrayList<String> returnString = new ArrayList<String>(); // rollString[0] = // "number1=2&type1=6&number2=2&type2=30&number3=2&type3=30" // + "&number4=0&type4=2&number5=0&type5=2&number6=0&type6=2&number7=0&type7=2" // + "&number8=0&type8=2&number9=0&type9=2&number10=0&type10=2" // + "&emails=&email=b.e...@uw...&password=IG42506&Submit=Throw+Dice"; - URL url = new URL(serverURL); + final URL url = new URL(serverURL); - URLConnection connection = url.openConnection(); + final URLConnection connection = url.openConnection(); connection.setDoOutput(true); - PrintWriter out = new PrintWriter(connection.getOutputStream()); - for (int i = 0; i < rollString.length; i++) { - out.println(rollString[i]); + OutputStream os = null; + try { + os = connection.getOutputStream(); + PrintWriter out = null; + try { + out = new PrintWriter(os); + for (String s : rollString) { + out.println(s); + } + } + finally { + if (out != null) out.close(); + } } + finally { + if (os != null) os.close(); + } - out.close(); + InputStream is = null; + try { + is = connection.getInputStream(); + InputStreamReader isr = null; + try { + isr = new InputStreamReader(is); + BufferedReader in = null; + try { + in = new BufferedReader(isr); - BufferedReader in = - new BufferedReader(new InputStreamReader(connection.getInputStream())); + String inputLine; - String inputLine; + while ((inputLine = in.readLine()) != null) + returnString.add(inputLine); + } + finally { + if (in != null) in.close(); + } + } + finally { + if (isr != null) isr.close(); + } + } + finally { + if (is != null) is.close(); + } - while ((inputLine = in.readLine()) != null) - returnString.add(inputLine); - - in.close(); - parseInternetRollString(toss, new Vector(returnString)); } Modified: VASSAL-src/branches/uckelman-caching/src/VASSAL/chat/peer2peer/UnitTest.java =================================================================== --- VASSAL-src/branches/uckelman-caching/src/VASSAL/chat/peer2peer/UnitTest.java 2007-12-27 22:21:18 UTC (rev 2768) +++ VASSAL-src/branches/uckelman-caching/src/VASSAL/chat/peer2peer/UnitTest.java 2007-12-27 23:25:27 UTC (rev 2769) @@ -1,6 +1,8 @@ package VASSAL.chat.peer2peer; +import java.io.InputStream; import java.io.IOException; +import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Properties; @@ -74,16 +76,41 @@ PeerInfo info = new PeerInfo("Server","localhost",5555); */ Socket s = new Socket("localhost",5555); //$NON-NLS-1$ - PeerReader reader = new PeerReader(s.getInputStream()); - System.err.println("Created reader "+reader); //$NON-NLS-1$ - PeerWriter writer = new PeerWriter(s.getOutputStream()); - System.err.println("Created writer"+writer); //$NON-NLS-1$ -// ActivePeer peer = new ActivePeer(myInfo,d, apm, ppm, info, reader, writer); -// peer.sendCHAT("A message"); - writer.writeLine("A message"); //$NON-NLS-1$ - Thread.sleep(2000); - reader.close(); - writer.close(); + + InputStream in = null; + try { + in = s.getInputStream(); + PeerReader reader = null; + try { + reader = new PeerReader(in); + System.err.println("Created reader "+reader); //$NON-NLS-1$ + OutputStream out = null; + try { + out = s.getOutputStream(); + PeerWriter writer = null; + try { + writer = new PeerWriter(s.getOutputStream()); + System.err.println("Created writer"+writer); //$NON-NLS-1$ +// ActivePeer peer = new ActivePeer(myInfo,d, apm, ppm, info, reader, writer); +// peer.sendCHAT("A message"); + writer.writeLine("A message"); //$NON-NLS-1$ + Thread.sleep(2000); + } + finally { + if (writer != null) writer.close(); + } + } + finally { + if (out != null) out.close(); + } + } + finally { + if (reader != null) reader.close(); + } + } + finally { + if (in != null) in.close(); + } } private static void startSocketReader(final int port) throws InterruptedException { @@ -97,15 +124,29 @@ lock.notifyAll(); } Socket s = server.accept(); - PeerReader reader = new PeerReader(s.getInputStream()); - while (true) { - String msg = reader.readLine(); - System.err.println("" + msg); //$NON-NLS-1$ - if (msg == null) { - break; + + InputStream in = null; + try { + in = s.getInputStream(); + PeerReader reader = null; + try { + reader = new PeerReader(in); + while (true) { + String msg = reader.readLine(); + System.err.println("" + msg); //$NON-NLS-1$ + if (msg == null) { + break; + } + } + System.err.println("Done"); //$NON-NLS-1$ } + finally { + if (reader != null) reader.close(); + } } - System.err.println("Done"); //$NON-NLS-1$ + finally { + if (in != null) in.close(); + } } catch (IOException e) { e.printStackTrace(); Modified: VASSAL-src/branches/uckelman-caching/src/VASSAL/tools/ZipUpdater.java =================================================================== --- VASSAL-src/branches/uckelman-caching/src/VASSAL/tools/ZipUpdater.java 2007-12-27 22:21:18 UTC (rev 2768) +++ VASSAL-src/branches/uckelman-caching/src/VASSAL/tools/ZipUpdater.java 2007-12-27 23:25:27 UTC (rev 2769) @@ -66,13 +66,20 @@ crc = entry.getCrc(); if (crc < 0) { CRC32 checksum = new CRC32(); - InputStream in = file.getInputStream(entry); - byte[] buffer = new byte[1024]; - int count; - while ((count = in.read(buffer)) > 0) { - checksum.update(buffer, 0, count); + + InputStream in = null; + try { + in = file.getInputStream(entry); + final byte[] buffer = new byte[1024]; + int count; + while ((count = in.read(buffer)) > 0) { + checksum.update(buffer, 0, count); + } + crc = checksum.getValue(); } - crc = checksum.getValue(); + finally { + if (in != null) in.close(); + } } } return crc; @@ -83,12 +90,18 @@ } private long replaceEntry(ZipOutputStream output, ZipEntry newEntry) throws IOException { - InputStream newContents = getClass().getResourceAsStream("/" + ENTRIES_DIR + newEntry.getName()); - if (newContents == null) { - throw new IOException("This updater was created with an original that differs from the file you're trying to update.\nLocal entry does not match original: "+newEntry.getName()); + InputStream newContents = null; + try { + newContents = getClass().getResourceAsStream("/" + ENTRIES_DIR + newEntry.getName()); + if (newContents == null) { + throw new IOException("This updater was created with an original that differs from the file you're trying to update.\nLocal entry does not match original: "+newEntry.getName()); + } + else { + return writeEntry(newContents, output, newEntry); + } } - else { - return writeEntry(newContents, output, newEntry); + finally { + if (newContents != null) newContents.close(); } } @@ -113,37 +126,60 @@ public void write(File destination) throws IOException { checkSums = new Properties(); - checkSums.load(ZipUpdater.class.getResourceAsStream("/" + CHECKSUM_RESOURCE)); + InputStream in = null; + try { + in = ZipUpdater.class.getResourceAsStream("/" + CHECKSUM_RESOURCE); + checkSums.load(in); + } + finally { + if (in != null) in.close(); + } + oldZipFile = new ZipFile(oldFile.getPath()); - File tempFile = File.createTempFile("VSL", ".zip"); - ZipOutputStream output = new ZipOutputStream(new FileOutputStream(tempFile)); - for (Enumeration e = checkSums.keys(); e.hasMoreElements();) { - String entryName = (String) e.nextElement(); - long targetSum; + final File tempFile = File.createTempFile("VSL", ".zip"); + FileOutputStream fos = null; + try { + fos = new FileOutputStream(tempFile); + ZipOutputStream output = null; try { - targetSum = Long.parseLong(checkSums.getProperty(entryName, "<none>")); - } - catch (NumberFormatException invalid) { - throw new IOException("Invalid checksum " + checkSums.getProperty(entryName, "<none>") + " for entry " + entryName); - } - ZipEntry entry = oldZipFile.getEntry(entryName); - ZipEntry newEntry = new ZipEntry(entryName); - newEntry.setMethod(entry != null ? entry.getMethod() : ZipEntry.DEFLATED); - if (targetSum == getCrc(oldZipFile, entry)) { - if (targetSum != copyEntry(output, newEntry)) { - throw new IOException("Checksum mismatch for entry " + entry.getName()); + output = new ZipOutputStream(fos); + + for (Enumeration e = checkSums.keys(); e.hasMoreElements();) { + String entryName = (String) e.nextElement(); + long targetSum; + try { + targetSum = + Long.parseLong(checkSums.getProperty(entryName, "<none>")); + } + catch (NumberFormatException invalid) { + throw new IOException("Invalid checksum " + checkSums.getProperty(entryName, "<none>") + " for entry " + entryName); + } + ZipEntry entry = oldZipFile.getEntry(entryName); + ZipEntry newEntry = new ZipEntry(entryName); + newEntry.setMethod(entry != null ? entry.getMethod() : ZipEntry.DEFLATED); + if (targetSum == getCrc(oldZipFile, entry)) { + if (targetSum != copyEntry(output, newEntry)) { + throw new IOException("Checksum mismatch for entry " + entry.getName()); + } + } + else { + if (targetSum != replaceEntry(output, newEntry)) { + throw new IOException("Checksum mismatch for entry " + entry.getName()); + } + } } } - else { - if (targetSum != replaceEntry(output, newEntry)) { - throw new IOException("Checksum mismatch for entry " + entry.getName()); - } + finally { + if (output != null) output.close(); } } + finally { + if (fos != null) fos.close(); + } + oldZipFile.close(); - output.close(); if (destination.getName().equals(oldFile.getName())) { String updatedName = destination.getName(); @@ -174,53 +210,98 @@ public void createUpdater(File newFile, File updaterFile) throws IOException { if (!updaterFile.getName().endsWith(".jar")) { - String newName = updaterFile.getName().replace('.','_')+".jar"; + final String newName = updaterFile.getName().replace('.','_')+".jar"; updaterFile = new File(updaterFile.getParentFile(),newName); } checkSums = new Properties(); oldZipFile = new ZipFile(oldFile); - String inputArchiveName = oldFile.getName(); - ZipFile goal = new ZipFile(newFile); - JarOutputStream out = new JarOutputStream(new FileOutputStream(updaterFile)); - for (Enumeration e = goal.entries(); e.hasMoreElements();) { - ZipEntry entry = (ZipEntry) e.nextElement(); - long goalCrc = getCrc(goal, entry); - long inputCrc = getCrc(oldZipFile, oldZipFile.getEntry(entry.getName())); - if (goalCrc != inputCrc) { - ZipEntry outputEntry = new ZipEntry(ENTRIES_DIR + entry.getName()); - outputEntry.setMethod(entry.getMethod()); - writeEntry(goal.getInputStream(entry), out, outputEntry); - } - checkSums.put(entry.getName(), goalCrc + ""); - } + final String inputArchiveName = oldFile.getName(); + final ZipFile goal = new ZipFile(newFile); - ZipEntry manifestEntry = new ZipEntry("META-INF/MANIFEST.MF"); - manifestEntry.setMethod(ZipEntry.DEFLATED); - StringBuffer buffer = new StringBuffer(); - buffer.append("Manifest-Version: 1.0\n") - .append("Main-Class: VASSAL.tools.ZipUpdater\n"); - writeEntry(new ByteArrayInputStream(buffer.toString().getBytes("UTF-8")), out, manifestEntry); + FileOutputStream fos = null; + try { + fos = new FileOutputStream(updaterFile); + JarOutputStream out = null; + try { + out = new JarOutputStream(fos); + + for (Enumeration e = goal.entries(); e.hasMoreElements();) { + final ZipEntry entry = (ZipEntry) e.nextElement(); + final long goalCrc = getCrc(goal, entry); + final long inputCrc = getCrc(oldZipFile, + oldZipFile.getEntry(entry.getName())); + if (goalCrc != inputCrc) { + final ZipEntry outputEntry = + new ZipEntry(ENTRIES_DIR + entry.getName()); + outputEntry.setMethod(entry.getMethod()); + + InputStream gis = null; + try { + gis = goal.getInputStream(entry); + writeEntry(gis, out, outputEntry); + } + finally { + if (gis != null) gis.close(); + } + } + checkSums.put(entry.getName(), goalCrc + ""); + } - ZipEntry nameEntry = new ZipEntry(TARGET_ARCHIVE); - nameEntry.setMethod(ZipEntry.DEFLATED); - writeEntry(new ByteArrayInputStream(inputArchiveName.getBytes("UTF-8")), out, nameEntry); + final ZipEntry manifestEntry = new ZipEntry("META-INF/MANIFEST.MF"); + manifestEntry.setMethod(ZipEntry.DEFLATED); + final StringBuffer buffer = new StringBuffer(); + buffer.append("Manifest-Version: 1.0\n") + .append("Main-Class: VASSAL.tools.ZipUpdater\n"); + writeEntry( + new ByteArrayInputStream(buffer.toString().getBytes("UTF-8")), + out, + manifestEntry); - ZipEntry updatedEntry = new ZipEntry(UPDATED_ARCHIVE_NAME); - updatedEntry.setMethod(ZipEntry.DEFLATED); - writeEntry(new ByteArrayInputStream(newFile.getName().getBytes("UTF-8")), out, updatedEntry); + final ZipEntry nameEntry = new ZipEntry(TARGET_ARCHIVE); + nameEntry.setMethod(ZipEntry.DEFLATED); + writeEntry( + new ByteArrayInputStream(inputArchiveName.getBytes("UTF-8")), + out, + nameEntry); - ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); - checkSums.store(byteOut, null); - ZipEntry sumEntry = new ZipEntry(CHECKSUM_RESOURCE); - sumEntry.setMethod(ZipEntry.DEFLATED); - writeEntry(new ByteArrayInputStream(byteOut.toByteArray()), out, sumEntry); + final ZipEntry updatedEntry = new ZipEntry(UPDATED_ARCHIVE_NAME); + updatedEntry.setMethod(ZipEntry.DEFLATED); + writeEntry( + new ByteArrayInputStream(newFile.getName().getBytes("UTF-8")), + out, + updatedEntry); - String className = getClass().getName().replace('.', '/') + ".class"; - ZipEntry classEntry = new ZipEntry(className); - classEntry.setMethod(ZipEntry.DEFLATED); - writeEntry(getClass().getResourceAsStream("/" + className), out, classEntry); + final ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); + checkSums.store(byteOut, null); + final ZipEntry sumEntry = new ZipEntry(CHECKSUM_RESOURCE); + sumEntry.setMethod(ZipEntry.DEFLATED); + writeEntry( + new ByteArrayInputStream(byteOut.toByteArray()), + out, + sumEntry); - out.close(); + final String className = + getClass().getName().replace('.', '/') + ".class"; + final ZipEntry classEntry = new ZipEntry(className); + classEntry.setMethod(ZipEntry.DEFLATED); + InputStream is = null; + try { + is = getClass().getResourceAsStream("/" + className); + if (is == null) + throw new IOException("Resource not found: " + className); + writeEntry(is, out, classEntry); + } + finally { + if (is != null) is.close(); + } + } + finally { + if (out != null) out.close(); + } + } + finally { + if (fos != null) fos.close(); + } } private String fileName; @@ -247,12 +328,56 @@ updater.createUpdater(new File(goal)); } else { - BufferedReader r = new BufferedReader(new InputStreamReader(ZipUpdater.class.getResourceAsStream("/" + TARGET_ARCHIVE))); - oldArchiveName = r.readLine(); - r = new BufferedReader(new InputStreamReader(ZipUpdater.class.getResourceAsStream("/" + UPDATED_ARCHIVE_NAME))); - String newArchiveName = r.readLine(); - ZipUpdater updater = new ZipUpdater(new File(oldArchiveName)); - updater.write(new File(newArchiveName)); + InputStream is = null; + try { + is = ZipUpdater.class.getResourceAsStream("/" + TARGET_ARCHIVE); + if (is == null) + throw new IOException("Resource not found: " + TARGET_ARCHIVE); + InputStreamReader isr = null; + try { + isr = new InputStreamReader(is); + BufferedReader r = null; + try { + r = new BufferedReader(isr); + oldArchiveName = r.readLine(); + } + finally { + if (r != null) r.close(); + } + } + finally { + if (isr != null) isr.close(); + } + } + finally { + if (is != null) is.close(); + } + + is = null; + try { + is = ZipUpdater.class.getResourceAsStream("/" + UPDATED_ARCHIVE_NAME); + InputStreamReader isr = null; + try { + isr = new InputStreamReader(is); + BufferedReader r = null; + try { + r = new BufferedReader(isr); + final String newArchiveName = r.readLine(); + final ZipUpdater updater = + new ZipUpdater(new File(oldArchiveName)); + updater.write(new File(newArchiveName)); + } + finally { + if (r != null) r.close(); + } + } + finally { + if (isr != null) isr.close(); + } + } + finally { + if (is != null) is.close(); + } } } catch (final IOException e) { @@ -265,5 +390,4 @@ } } } - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |