You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2007/02/12 09:07:38 UTC
svn commit: r506363 - in
/harmony/enhanced/classlib/trunk/modules/pack200/src:
main/java/org/apache/harmony/pack200/
test/java/org/apache/harmony/pack200/tests/
test/resources/org/apache/harmony/pack200/tests/
Author: hindessm
Date: Mon Feb 12 00:07:38 2007
New Revision: 506363
URL: http://svn.apache.org/viewvc?view=rev&rev=506363
Log:
Applied pack200 patches from "[#HARMONY-3153] [classlib][pack200] Support for GZip compressed files automatically if GZip magic header found".
Added:
harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/JustResources.pack.gz (with props)
Modified:
harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java
harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/SegmentTest.java
Modified: harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java?view=diff&rev=506363&r1=506362&r2=506363
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java (original)
+++ harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java Mon Feb 12 00:07:38 2007
@@ -146,6 +146,17 @@
public static Segment parse(InputStream in) throws IOException,
Pack200Exception {
Segment segment = new Segment();
+ // See if file is GZip compressed
+ if (in.markSupported()) {
+ in.mark(2);
+ if (((in.read() & 0xFF) | (in.read() & 0xFF) << 8) == GZIPInputStream.GZIP_MAGIC) {
+ in.reset();
+ in = new GZIPInputStream(in);
+ } else {
+ in.reset();
+ }
+
+ }
segment.parseSegment(in);
return segment;
}
@@ -796,18 +807,19 @@
// look through each method
int codeBands = 0;
AttributeLayout layout = attributeDefinitionMap.getAttributeLayout(
- AttributeLayout.ATTRIBUTE_CODE,
- AttributeLayout.CONTEXT_METHOD);
+ AttributeLayout.ATTRIBUTE_CODE, AttributeLayout.CONTEXT_METHOD);
for (int i = 0; i < classCount; i++) {
for (int j = 0; j < methodFlags[i].length; j++) {
long flag = methodFlags[i][j];
- if (layout.matches(flag))
+ if (layout.matches(flag))
codeBands++;
}
}
if (codeBands > 0)
- throw new Error("Can't handle non-abstract, non-native methods/initializers at the moment (found " + codeBands + " code bands)");
+ throw new Error(
+ "Can't handle non-abstract, non-native methods/initializers at the moment (found "
+ + codeBands + " code bands)");
debug("unimplemented code_headers");
debug("unimplemented code_max_stack");
debug("unimplemented code_max_na_locals");
Modified: harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/SegmentTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/SegmentTest.java?view=diff&rev=506363&r1=506362&r2=506363
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/SegmentTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/SegmentTest.java Mon Feb 12 00:07:38 2007
@@ -15,9 +15,11 @@
* limitations under the License.
*/
package org.apache.harmony.pack200.tests;
-//NOTE: Do not use generics in this code; it needs to run on JVMs < 1.5
-//NOTE: Do not extract strings as messages; this code is still a work-in-progress
-//NOTE: Also, don't get rid of 'else' statements for the hell of it ...
+
+// NOTE: Do not use generics in this code; it needs to run on JVMs < 1.5
+// NOTE: Do not extract strings as messages; this code is still a
+// work-in-progress
+// NOTE: Also, don't get rid of 'else' statements for the hell of it ...
import org.apache.harmony.pack200.Segment;
import junit.framework.TestCase;
@@ -27,10 +29,6 @@
* @version $Revision: $
*/
public class SegmentTest extends TestCase {
- /**
- * @param args
- * @throws Exception
- */
// Commented on request in HARMONY-2246
// Will be uncommented later
// public void testHelloWorld() throws Exception {
@@ -38,12 +36,20 @@
// .getResourceAsStream("/org/apache/harmony/pack200/tests/HelloWorld.pack")));
// }
/**
- * @param args
* @throws Exception
*/
public void testJustResources() throws Exception {
- assertNotNull(Segment.parse(Segment.class
- .getResourceAsStream("/org/apache/harmony/pack200/tests/JustResources.pack")));
+ assertNotNull(Segment
+ .parse(Segment.class
+ .getResourceAsStream("/org/apache/harmony/pack200/tests/JustResources.pack")));
+ }
+ /**
+ * @throws Exception
+ */
+ public void testJustResourcesGZip() throws Exception {
+ assertNotNull(Segment
+ .parse(Segment.class
+ .getResourceAsStream("/org/apache/harmony/pack200/tests/JustResources.pack.gz")));
}
}
Added: harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/JustResources.pack.gz
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/JustResources.pack.gz?view=auto&rev=506363
==============================================================================
Binary file - no diff available.
Propchange: harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/JustResources.pack.gz
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream