You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2012/02/03 13:35:37 UTC
svn commit: r1240137 -
/felix/trunk/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/ExplodingOutputtingInputStream.java
Author: marrs
Date: Fri Feb 3 12:35:36 2012
New Revision: 1240137
URL: http://svn.apache.org/viewvc?rev=1240137&view=rev
Log:
FELIX-3336 Included a fix and some code that seems to solve the issue even though I'm not sure why. Committing this so others can review it.
Modified:
felix/trunk/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/ExplodingOutputtingInputStream.java
Modified: felix/trunk/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/ExplodingOutputtingInputStream.java
URL: http://svn.apache.org/viewvc/felix/trunk/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/ExplodingOutputtingInputStream.java?rev=1240137&r1=1240136&r2=1240137&view=diff
==============================================================================
--- felix/trunk/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/ExplodingOutputtingInputStream.java (original)
+++ felix/trunk/deploymentadmin/deploymentadmin/src/main/java/org/apache/felix/deploymentadmin/ExplodingOutputtingInputStream.java Fri Feb 3 12:35:36 2012
@@ -34,8 +34,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.jar.Attributes;
-import java.util.jar.Manifest;
import java.util.jar.Attributes.Name;
+import java.util.jar.Manifest;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
@@ -73,7 +73,7 @@ class ExplodingOutputtingInputStream ext
super(inputStream, output);
m_contentDir = root;
m_indexFile = index;
- m_input = new PipedInputStream(output);
+ m_input = new PipedInputStream(output /*, 8 FELIX-3336: if you provide such a small buffer, the error is reproducible (see below) */);
m_task = new Thread(this, "Apache Felix DeploymentAdmin - ExplodingOutputtingInputStream");
m_task.start();
}
@@ -123,18 +123,22 @@ class ExplodingOutputtingInputStream ext
// TODO: log this
}
finally {
- if (input != null) {
- try {
- input.close();
- }
- catch (IOException e) {
- // Not much we can do
- }
- }
+ // FELIX 3336: removed closing of the input stream here, I'm quite sure that was plain wrong
if (writer != null) {
writer.close();
}
}
+ // FELIX-3336: if you include this code, the issue is gone
+ try {
+ byte[] bb = new byte[512];
+ int c = m_input.read(bb);
+ while (c != -1) {
+ c = m_input.read(bb);
+ }
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ }
}