Merge "Issue #626 update WMOHeaderRemover to remove any extra bytes before wmo header found from WMOHeaderFinder." into development
Former-commit-id: 2075d2f125613cf2c69cb3d4166020ed7d9fb175
This commit is contained in:
commit
9268dee274
1 changed files with 18 additions and 13 deletions
|
@ -48,25 +48,30 @@ public class WMOHeaderRemover {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A header we can remove was found. Will discard any data before header
|
||||||
byte[] headerBytes = header.getBytes();
|
byte[] headerBytes = header.getBytes();
|
||||||
|
|
||||||
boolean equal = false;
|
// Must be data after header
|
||||||
// Do < since there should be something after the header
|
int endLength = data.length - headerBytes.length;
|
||||||
if (headerBytes.length < data.length) {
|
for (int i = 0; i < endLength; ++i) {
|
||||||
equal = true;
|
if (data[i] == headerBytes[0]) {
|
||||||
for (int i = 0; i < headerBytes.length; ++i) {
|
// First byte matches
|
||||||
if (headerBytes[i] != data[i]) {
|
int tmpI = i;
|
||||||
equal = false;
|
for (int j = 0; j < headerBytes.length; ++j, ++tmpI) {
|
||||||
|
if (data[tmpI] != headerBytes[j]) {
|
||||||
|
tmpI = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tmpI > 0) {
|
||||||
|
// Copy data and break
|
||||||
|
byte[] newData = new byte[data.length - tmpI];
|
||||||
|
System.arraycopy(data, tmpI, newData, 0, newData.length);
|
||||||
|
data = newData;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (equal) {
|
|
||||||
byte[] newData = new byte[data.length - headerBytes.length];
|
|
||||||
System.arraycopy(data, headerBytes.length, newData, 0,
|
|
||||||
newData.length);
|
|
||||||
data = newData;
|
|
||||||
}
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue