My work around was navigate to 'pack200' folder and run 'svn update -r PREV' and rebuild that module. I had to do that twice though, so I suppose the exclude is more efficient.
-Nathan On Wed, Jun 4, 2008 at 6:11 AM, Mark Hindess <[EMAIL PROTECTED]> wrote: > > I'm sure Sian isn't planning to break the build again ;-) but, for > future reference, because pack200 is compiled quite separately from the > core modules (with their cyclic dependencies) a workaround is just to > build with: > > ant -Dexclude.moduleI=pack200 > > -Mark. > > In message <[EMAIL PROTECTED]>, Oliver Deakin writes: > > > > Just rebuilt after your latest commit and it's completed successfully. > > > > Regards, > > Oliver > > > > Sian January wrote: > > > Actually ignore that - it looks like I have a later version of bcel in > my > > > workspace that has some extra classes in. I'll check in a fix asap. > > > > > > > > > On 04/06/2008, Sian January <[EMAIL PROTECTED]> wrote: > > > > > >> Hi Nathan, > > >> > > >> It works for me, but I had to do a 'clean' first. Would you mind > trying > > >> this? > > >> > > >> Thanks, > > >> > > >> Sian > > >> > > >> > > >> On 04/06/2008, Nathan Beyer <[EMAIL PROTECTED]> wrote: > > >> > > >>> This revision or one related to it broke something. I'm getting > compile > > >>> errors in Segment about unresolvable types. > > >>> > > >>> On Tue, Jun 3, 2008 at 9:17 AM, <[EMAIL PROTECTED]> wrote: > > >>> > > >>> > > >>>> Author: sjanuary > > >>>> Date: Tue Jun 3 07:17:00 2008 > > >>>> New Revision: 662810 > > >>>> > > >>>> URL: http://svn.apache.org/viewvc?rev=662810&view=rev > > >>>> Log: > > >>>> Pack200 segment header and supporting encode methods > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/BHSDCodec.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/BandSet.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/CPClass.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/Codec.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/CpBands.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/PopulationCodec.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/RunCodec.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/Segment.java > > >>>> > > >>>> > > >>>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apach > > e/harmony/pack200/SegmentHeader.java > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/BHSDCodec.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/BHSDCodec.java?rev=662810&r1=662 > > 809&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/BHSDCodec.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/BHSDCodec.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -308,6 +308,10 @@ > > >>>> return bytes; > > >>>> } > > >>>> > > >>>> + public byte[] encode(long value) throws Pack200Exception { > > >>>> + return encode(value, 0); > > >>>> + } > > >>>> + > > >>>> /** > > >>>> * Returns true if this codec is a delta codec > > >>>> * > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/BandSet.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/BandSet.java?rev=662810&r1=66280 > > 9&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/BandSet.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/BandSet.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -22,11 +22,14 @@ > > >>>> > > >>>> public abstract class BandSet { > > >>>> > > >>>> - public abstract void pack(OutputStream out) throws IOException; > > >>>> + public abstract void pack(OutputStream out) throws IOException, > > >>>> Pack200Exception; > > >>>> > > >>>> - protected byte[] encodeScalar(int[] band) { > > >>>> - // TODO Auto-generated method stub > > >>>> - return null; > > >>>> + public byte[] encodeScalar(int[] band, BHSDCodec codec) throws > > >>>> Pack200Exception { > > >>>> + return codec.encode(band); > > >>>> + } > > >>>> + > > >>>> + public byte[] encodeScalar(int value, BHSDCodec codec) throws > > >>>> Pack200Exception { > > >>>> + return codec.encode(value); > > >>>> } > > >>>> > > >>>> } > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/CPClass.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/CPClass.java?rev=662810&r1=66280 > > 9&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/CPClass.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/CPClass.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -17,7 +17,7 @@ > > >>>> package org.apache.harmony.pack200; > > >>>> > > >>>> > > >>>> -public class CPClass { > > >>>> +public class CPClass implements Comparable { > > >>>> > > >>>> > > >>>> private final String className; > > >>>> @@ -26,4 +26,8 @@ > > >>>> this.className = className; > > >>>> } > > >>>> > > >>>> + public int compareTo(Object arg0) { > > >>>> + return className.compareTo(((CPClass)arg0).className); > > >>>> + } > > >>>> + > > >>>> } > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/Codec.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/Codec.java?rev=662810&r1=662809& > > r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/Codec.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/Codec.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -103,6 +103,30 @@ > > >>>> Pack200Exception; > > >>>> > > >>>> /** > > >>>> + * Encode a single value into a sequence of bytes. > > >>>> + * > > >>>> + * @param value > > >>>> + * the value to encode > > >>>> + * @param last > > >>>> + * the previous value encoded (for delta encodings) > > >>>> + * @return the encoded bytes > > >>>> + * @throws Pack200Exception > > >>>> + */ > > >>>> + public abstract byte[] encode(long value, long last) > > >>>> + throws Pack200Exception; > > >>>> + > > >>>> + /** > > >>>> + * Encode a single value into a sequence of bytes. Note that > this > > >>>> method can > > >>>> + * only be used for non-delta encodings. > > >>>> + * > > >>>> + * @param value > > >>>> + * the value to encode > > >>>> + * @return the encoded bytes > > >>>> + * @throws Pack200Exception > > >>>> + */ > > >>>> + public abstract byte[] encode(long value) throws > Pack200Exception; > > >>>> + > > >>>> + /** > > >>>> * Decode a sequence of bytes from the given input stream, > returning > > >>>> the > > >>>> * value as a long. If this encoding is a delta encoding (d=1) > then > > >>>> > > >>> the > > >>> > > >>>> * previous value must be passed in as a parameter. If it is a > > >>>> non-delta > > >>>> @@ -250,4 +274,29 @@ > > >>>> } > > >>>> return result; > > >>>> } > > >>>> + > > >>>> + /** > > >>>> + * Encode a sequence of integers into a byte array > > >>>> + * > > >>>> + * @param ints > > >>>> + * the values to encode > > >>>> + * @return byte[] encoded bytes > > >>>> + * @throws Pack200Exception > > >>>> + * if there is a problem encoding any of the values > > >>>> + */ > > >>>> + public byte[] encode(int[] ints) throws Pack200Exception { > > >>>> + int total = 0; > > >>>> + byte[][] bytes = new byte[ints.length][]; > > >>>> + for (int i = 0; i < ints.length; i++) { > > >>>> + bytes[i] = encode(ints[i]); > > >>>> + total += bytes[i].length; > > >>>> + } > > >>>> + byte[] encoded = new byte[total]; > > >>>> + int index = 0; > > >>>> + for (int i = 0; i < bytes.length; i++) { > > >>>> + System.arraycopy(bytes[i], 0, encoded, index, > > >>>> bytes[i].length); > > >>>> + index += bytes[i].length; > > >>>> + } > > >>>> + return encoded; > > >>>> + } > > >>>> } > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/CpBands.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/CpBands.java?rev=662810&r1=66280 > > 9&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/CpBands.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/CpBands.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -129,17 +129,21 @@ > > >>>> public void addConstantNameAndType(ConstantNameAndType constant) > { > > >>>> String name = constant.getName(currentConstantPool); > > >>>> String signature = > constant.getSignature(currentConstantPool); > > >>>> - cp_Signature.add(signature); > > >>>> - CPNameAndType nameAndType = new CPNameAndType(name, > > >>>> - signature); > > >>>> - stringsToCpNameAndType.put(name + ":" + signature, > > >>>> > > >>> nameAndType); > > >>> > > >>>> - cp_Descr.add(nameAndType); > > >>>> + String descr = name + ":" + signature; > > >>>> + if(stringsToCpNameAndType.get(descr) != null) { > > >>>> + cp_Signature.add(signature); > > >>>> + CPNameAndType nameAndType = new CPNameAndType(name, > > >>>> + signature); > > >>>> + stringsToCpNameAndType.put(descr, nameAndType); > > >>>> + cp_Descr.add(nameAndType); > > >>>> + } > > >>>> } > > >>>> > > >>>> public void addConstantString(ConstantString constant) { > > >>>> String string = constant.getBytes(currentConstantPool); > > >>>> - if(stringsToCpString.get(string) == null) { > > >>>> - CPString cpString = new CPString(string); > > >>>> + CPString cpString = (CPString) > stringsToCpString.get(string); > > >>>> + if(cpString == null) { > > >>>> + cpString = new CPString(string); > > >>>> cp_String.add(cpString); > > >>>> stringsToCpString.put(string, cpString); > > >>>> } > > >>>> @@ -159,18 +163,25 @@ > > >>>> } > > >>>> > > >>>> public CPClass getCPClass(String className) { > > >>>> - if(stringsToCpClass.get(className) == null) { > > >>>> - throw new RuntimeException("null"); > > >>>> + CPClass cpClass = (CPClass) > stringsToCpClass.get(className); > > >>>> + if(cpClass == null) { > > >>>> + cpClass = new CPClass(className); > > >>>> + cp_Class.add(cpClass); > > >>>> + stringsToCpClass.put(className, cpClass); > > >>>> } > > >>>> - return (CPClass) stringsToCpClass.get(className); > > >>>> + return cpClass; > > >>>> } > > >>>> > > >>>> public CPNameAndType getCPNameAndType(String name, String > signature) > > >>>> > > >>> { > > >>> > > >>>> - String str = name + ":" + signature; > > >>>> - if(stringsToCpNameAndType.get(str) == null) { > > >>>> - throw new RuntimeException("null"); > > >>>> + String descr = name + ":" + signature; > > >>>> + CPNameAndType nameAndType = (CPNameAndType) > > >>>> stringsToCpNameAndType.get(descr); > > >>>> + if (nameAndType == null) { > > >>>> + cp_Signature.add(signature); > > >>>> + nameAndType = new CPNameAndType(name, signature); > > >>>> + stringsToCpNameAndType.put(descr, nameAndType); > > >>>> + cp_Descr.add(nameAndType); > > >>>> } > > >>>> - return (CPNameAndType) stringsToCpNameAndType.get(str); > > >>>> + return nameAndType; > > >>>> } > > >>>> > > >>>> } > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/PopulationCodec.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/PopulationCodec.java?rev=662810& > > r1=662809&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/PopulationCodec.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/PopulationCodec.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -137,4 +137,14 @@ > > >>>> public Codec getUnvafouredCodec() { > > >>>> return unvafouredCodec; > > >>>> } > > >>>> + > > >>>> + public byte[] encode(long value, long last) throws > Pack200Exception > > >>>> > > >>> { > > >>> > > >>>> + // TODO Auto-generated method stub > > >>>> + return null; > > >>>> + } > > >>>> + > > >>>> + public byte[] encode(long value) throws Pack200Exception { > > >>>> + // TODO Auto-generated method stub > > >>>> + return null; > > >>>> + } > > >>>> } > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/RunCodec.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/RunCodec.java?rev=662810&r1=6628 > > 09&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/RunCodec.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/RunCodec.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -125,4 +125,14 @@ > > >>>> return "RunCodec[k=" + k + ";aCodec=" + aCodec + "bCodec=" + > > >>>> > > >>> bCodec > > >>> > > >>>> + "]"; > > >>>> } > > >>>> + > > >>>> + public byte[] encode(long value, long last) throws > Pack200Exception > > >>>> > > >>> { > > >>> > > >>>> + // TODO Auto-generated method stub > > >>>> + return null; > > >>>> + } > > >>>> + > > >>>> + public byte[] encode(long value) throws Pack200Exception { > > >>>> + // TODO Auto-generated method stub > > >>>> + return null; > > >>>> + } > > >>>> } > > >>>> > > >>>> 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/pack > > > 200/src/main/java/org/apache/harmony/pack200/Segment.java?rev=662810&r1=66280 > > 9&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > 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 > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -75,7 +75,7 @@ > > >>>> private BcBands bcBands; > > >>>> private FileBands fileBands; > > >>>> > > >>>> - public void pack(List classes, OutputStream out) throws > IOException > > >>>> > > >>> { > > >>> > > >>>> + public void pack(List classes, OutputStream out) throws > > >>>> > > >>> IOException, > > >>> > > >>>> Pack200Exception { > > >>>> segmentHeader = new SegmentHeader(); > > >>>> cpBands = new CpBands(); > > >>>> attributeDefinitionBands = new AttributeDefinitionBands(); > > >>>> > > >>>> Modified: > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/SegmentHeader.java > > >>> > > >>>> URL: > > >>>> > > >>>> > > >>> > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack > > > 200/src/main/java/org/apache/harmony/pack200/SegmentHeader.java?rev=662810&r1 > > =662809&r2=662810&view=diff > > >>> > > >>>> > > >>> > ========================================================================= > > ===== > > >>> > > >>>> --- > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/SegmentHeader.java > > >>> > > >>>> (original) > > >>>> +++ > > >>>> > > >>>> > > >>> > harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/ > > harmony/pack200/SegmentHeader.java > > >>> > > >>>> Tue Jun 3 07:17:00 2008 > > >>>> @@ -19,79 +19,298 @@ > > >>>> import java.io.IOException; > > >>>> import java.io.OutputStream; > > >>>> > > >>>> - > > >>>> +/** > > >>>> + * SegmentHeader is the header band of a [EMAIL PROTECTED] Segment} > > >>>> + */ > > >>>> public class SegmentHeader extends BandSet { > > >>>> > > >>>> private static final int[] magic = { 0xCA, 0xFE, 0xD0, 0x0D }; > > >>>> + private static final int archive_minver = 7; > > >>>> + private static final int archive_majver = 150; > > >>>> + > > >>>> + private int archive_options; > > >>>> + > > >>>> + private int cp_Utf8_count; > > >>>> + private int cp_Int_count; > > >>>> + private int cp_Float_count; > > >>>> + private int cp_Long_count; > > >>>> + private int cp_Double_count; > > >>>> + private int cp_String_count; > > >>>> + private int cp_Class_count; > > >>>> + private int cp_Signature_count; > > >>>> + private int cp_Descr_count; > > >>>> + private int cp_Field_count; > > >>>> + private int cp_Method_count; > > >>>> + private int cp_Imethod_count; > > >>>> + > > >>>> + private int attribute_definition_count; > > >>>> + private final byte[] band_headers = new byte[0]; > > >>>> + > > >>>> + private boolean have_all_code_flags; > > >>>> + > > >>>> + private int archive_size_hi; > > >>>> + private int archive_size_lo; > > >>>> + private int archive_next_count; > > >>>> + private int archive_modtime; > > >>>> + private int file_count; > > >>>> + > > >>>> + private boolean deflate_hint; > > >>>> + private boolean have_file_modtime; > > >>>> + private boolean have_file_options; > > >>>> + private boolean have_file_size_hi; > > >>>> + private boolean have_class_flags_hi; > > >>>> + private boolean have_field_flags_hi; > > >>>> + private boolean have_method_flags_hi; > > >>>> + private boolean have_code_flags_hi; > > >>>> + > > >>>> + private int ic_count; > > >>>> + private int default_class_minver; > > >>>> + private int default_class_majver; > > >>>> + private int class_count; > > >>>> + > > >>>> + /** > > >>>> + * Encode and write the SegmentHeader bands to the OutputStream > > >>>> + */ > > >>>> + public void pack(OutputStream out) throws IOException, > > >>>> Pack200Exception { > > >>>> + out.write(encodeScalar(magic, Codec.BYTE1)); > > >>>> + out.write(encodeScalar(archive_minver, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(archive_majver, Codec.UNSIGNED5)); > > >>>> + calculateArchiveOptions(); > > >>>> + out.write(encodeScalar(archive_options, Codec.UNSIGNED5)); > > >>>> + writeArchiveFileCounts(out); > > >>>> + writeArchiveSpecialCounts(out); > > >>>> + writeCpCounts(out); > > >>>> + writeClassCounts(out); > > >>>> + if (band_headers.length > 0) { > > >>>> + out.write(band_headers); > > >>>> + } > > >>>> + } > > >>>> + > > >>>> + private void calculateArchiveOptions() { > > >>>> + if(attribute_definition_count > 0 || band_headers.length > > 0) { > > >>>> + archive_options |= 1; > > >>>> + } > > >>>> + if(cp_Int_count > 0 || cp_Float_count > 0 || cp_Long_count > > 0 > > >>>> > > >>> || > > >>> > > >>>> cp_Double_count > 0) { > > >>>> + archive_options |= (1 << 1); > > >>>> + } > > >>>> + if(have_all_code_flags) { > > >>>> + archive_options |= (1 << 2); > > >>>> + } > > >>>> + if(file_count > 0) { > > >>>> + archive_options |= (1 << 4); > > >>>> + } > > >>>> + if(deflate_hint) { > > >>>> + archive_options |= (1 << 5); > > >>>> + } > > >>>> + if(have_file_modtime) { > > >>>> + archive_options |= (1 << 6); > > >>>> + } > > >>>> + if(have_file_options) { > > >>>> + archive_options |= (1 << 7); > > >>>> + } > > >>>> + if(have_file_size_hi) { > > >>>> + archive_options |= (1 << 8); > > >>>> + } > > >>>> + if(have_class_flags_hi) { > > >>>> + archive_options |= (1 << 9); > > >>>> + } > > >>>> + if(have_field_flags_hi) { > > >>>> + archive_options |= (1 << 10); > > >>>> + } > > >>>> + if(have_method_flags_hi) { > > >>>> + archive_options |= (1 << 11); > > >>>> + } > > >>>> + if(have_code_flags_hi) { > > >>>> + archive_options |= (1 << 12); > > >>>> + } > > >>>> + } > > >>>> + > > >>>> + public void setCp_Utf8_count(int count) { > > >>>> + cp_Utf8_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Int_count(int count) { > > >>>> + cp_Int_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Float_count(int count) { > > >>>> + cp_Float_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Long_count(int count) { > > >>>> + cp_Long_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Double_count(int count) { > > >>>> + cp_Double_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_String_count(int count) { > > >>>> + cp_String_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Class_count(int count) { > > >>>> + cp_Class_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Signature_count(int count) { > > >>>> + cp_Signature_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Descr_count(int count) { > > >>>> + cp_Descr_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Field_count(int count) { > > >>>> + cp_Field_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Method_count(int count) { > > >>>> + cp_Method_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setCp_Imethod_count(int count) { > > >>>> + cp_Imethod_count = count; > > >>>> + } > > >>>> + > > >>>> + public void setAttributeDefinition_count(int count) { > > >>>> + attribute_definition_count = count; > > >>>> + } > > >>>> > > >>>> - private int cpUtf8Count; > > >>>> - private int cpIntCount; > > >>>> - private int cpFloatCount; > > >>>> - private int cpLongCount; > > >>>> - private int cpDoubleCount; > > >>>> - private int cpStringCount; > > >>>> - private int cpClassCount; > > >>>> - private int cpSignatureCount; > > >>>> - private int cpDescrCount; > > >>>> - private int cpFieldCount; > > >>>> - private int cpMethodCount; > > >>>> - private int cpImethodCount; > > >>>> - private int attributeDefinitionCount; > > >>>> > > >>>> - public void pack(OutputStream out) throws IOException { > > >>>> - out.write(encodeScalar(magic)); > > >>>> + public void setAttribute_definition_count(int > > >>>> attribute_definition_count) { > > >>>> + this.attribute_definition_count = > attribute_definition_count; > > >>>> } > > >>>> > > >>>> - public void setCpUtf8Count(int count) { > > >>>> - cpUtf8Count = count; > > >>>> + > > >>>> + public void setHave_all_code_flags(boolean have_all_code_flags) > { > > >>>> + this.have_all_code_flags = have_all_code_flags; > > >>>> } > > >>>> > > >>>> - public void setCpIntCount(int count) { > > >>>> - cpIntCount = count; > > >>>> + > > >>>> + public void setArchive_size_hi(int archive_size_hi) { > > >>>> + this.archive_size_hi = archive_size_hi; > > >>>> } > > >>>> > > >>>> - public void setCpFloatCount(int count) { > > >>>> - cpFloatCount = count; > > >>>> + > > >>>> + public void setArchive_size_lo(int archive_size_lo) { > > >>>> + this.archive_size_lo = archive_size_lo; > > >>>> } > > >>>> > > >>>> - public void setCpLongCount(int count) { > > >>>> - cpLongCount = count; > > >>>> + > > >>>> + public void setArchive_next_count(int archive_next_count) { > > >>>> + this.archive_next_count = archive_next_count; > > >>>> } > > >>>> > > >>>> - public void setCpDoubleCount(int count) { > > >>>> - cpDoubleCount = count; > > >>>> + > > >>>> + public void setArchive_modtime(int archive_modtime) { > > >>>> + this.archive_modtime = archive_modtime; > > >>>> } > > >>>> > > >>>> - public void setCpStringCount(int count) { > > >>>> - cpStringCount = count; > > >>>> + > > >>>> + public void setFile_count(int file_count) { > > >>>> + this.file_count = file_count; > > >>>> } > > >>>> > > >>>> - public void setCpClassCount(int count) { > > >>>> - cpClassCount = count; > > >>>> + > > >>>> + public void setDeflate_hint(boolean deflate_hint) { > > >>>> + this.deflate_hint = deflate_hint; > > >>>> } > > >>>> > > >>>> - public void setCpSignatureCount(int count) { > > >>>> - cpSignatureCount = count; > > >>>> + > > >>>> + public void setHave_file_modtime(boolean have_file_modtime) { > > >>>> + this.have_file_modtime = have_file_modtime; > > >>>> } > > >>>> > > >>>> - public void setCpDescrCount(int count) { > > >>>> - cpDescrCount = count; > > >>>> + > > >>>> + public void setHave_file_options(boolean have_file_options) { > > >>>> + this.have_file_options = have_file_options; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setHave_file_size_hi(boolean have_file_size_hi) { > > >>>> + this.have_file_size_hi = have_file_size_hi; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setHave_class_flags_hi(boolean have_class_flags_hi) > { > > >>>> + this.have_class_flags_hi = have_class_flags_hi; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setHave_field_flags_hi(boolean have_field_flags_hi) > { > > >>>> + this.have_field_flags_hi = have_field_flags_hi; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setHave_method_flags_hi(boolean > have_method_flags_hi) { > > >>>> + this.have_method_flags_hi = have_method_flags_hi; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setHave_code_flags_hi(boolean have_code_flags_hi) { > > >>>> + this.have_code_flags_hi = have_code_flags_hi; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setIc_count(int ic_count) { > > >>>> + this.ic_count = ic_count; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setDefault_class_minver(int default_class_minver) { > > >>>> + this.default_class_minver = default_class_minver; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setDefault_class_majver(int default_class_majver) { > > >>>> + this.default_class_majver = default_class_majver; > > >>>> + } > > >>>> + > > >>>> + > > >>>> + public void setClass_count(int class_count) { > > >>>> + this.class_count = class_count; > > >>>> } > > >>>> > > >>>> - public void setCpFieldCount(int count) { > > >>>> - cpFieldCount = count; > > >>>> + private void writeCpCounts(OutputStream out) throws > IOException, > > >>>> Pack200Exception { > > >>>> + out.write(encodeScalar(cp_Utf8_count, Codec.UNSIGNED5)); > > >>>> + if((archive_options & (1 << 1)) != 0) { // have_cp_numbers > > >>>> + out.write(encodeScalar(cp_Int_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Float_count, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Long_count, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Double_count, > Codec.UNSIGNED5)); > > >>>> + } > > >>>> + out.write(encodeScalar(cp_String_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Class_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Signature_count, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Descr_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Field_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Method_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(cp_Imethod_count, Codec.UNSIGNED5)); > > >>>> } > > >>>> > > >>>> - public void setCpMethodCount(int count) { > > >>>> - cpMethodCount = count; > > >>>> + private void writeClassCounts(OutputStream out) throws > IOException, > > >>>> Pack200Exception { > > >>>> + out.write(encodeScalar(ic_count, Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(default_class_minver, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(default_class_majver, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(class_count, Codec.UNSIGNED5)); > > >>>> } > > >>>> > > >>>> - public void setCpImethodCount(int count) { > > >>>> - cpImethodCount = count; > > >>>> + private void writeArchiveSpecialCounts(OutputStream out) throws > > >>>> IOException, Pack200Exception { > > >>>> + if((archive_options & 1) > 0) { // have_special_formats > > >>>> + out.write(encodeScalar(band_headers.length, > > >>>> > > >>> Codec.UNSIGNED5)); > > >>> > > >>>> + out.write(encodeScalar(attribute_definition_count, > > >>>> Codec.UNSIGNED5)); > > >>>> + } > > >>>> } > > >>>> > > >>>> - public void setAttributeDefinitionCount(int count) { > > >>>> - attributeDefinitionCount = count; > > >>>> + private void writeArchiveFileCounts(OutputStream out) throws > > >>>> IOException, Pack200Exception { > > >>>> + if((archive_options & (1 << 4)) > 0) { // have_file_headers > > >>>> + out.write(encodeScalar(archive_size_hi, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(archive_size_lo, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(archive_next_count, > > >>>> > > >>> Codec.UNSIGNED5)); > > >>> > > >>>> + out.write(encodeScalar(archive_modtime, > Codec.UNSIGNED5)); > > >>>> + out.write(encodeScalar(file_count, Codec.UNSIGNED5)); > > >>>> + } > > >>>> } > > >>>> > > >>>> -} > > >>>> +} > > >>>> \ No newline at end of file > > >>>> > > >>>> > > >>>> > > >>>> > > >> > > >> -- > > >> Unless stated otherwise above: > > >> IBM United Kingdom Limited - Registered in England and Wales with > number > > >> 741598. > > >> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU > > >> > > > > > > > > > > > > > > > > > > > -- > > Oliver Deakin > > Unless stated otherwise above: > > IBM United Kingdom Limited - Registered in England and Wales with number > 7415 > > 98. > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > 3AU > > > >
