Browse Source

Set "potentialNullReference" to "error" level and fixed all issues

There should be no functional change, the logic updated only to make
code simple so that compiler can understand what is going for. Removed
all @SuppressWarnings("null") annotations since they cannot be used if
"org.eclipse.jdt.core.compiler.problem.potentialNullReference" option is
set to the "error" level.

Bug: 470647
Change-Id: Ie93c249fa46e792198d362e531d5cbabaf41fdc4
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
stable-4.1
Andrey Loskutov 9 years ago
parent
commit
b5941c74e5
  1. 2
      org.eclipse.jgit/.settings/org.eclipse.jdt.core.prefs
  2. 1
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java
  3. 18
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java
  4. 19
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
  5. 3
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java

2
org.eclipse.jgit/.settings/org.eclipse.jdt.core.prefs

@ -71,7 +71,7 @@ org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=ignore
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning

1
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheTree.java vendored

@ -478,6 +478,7 @@ public class DirCacheTree {
// The entry is contained in this subtree.
//
assert(st != null);
st.validate(cache, cCnt, cIdx, pathOff + st.nameLength() + 1);
cIdx += st.entrySpan;
entrySpan += st.entrySpan;

18
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java

@ -533,7 +533,6 @@ public final class DfsPackFile {
return ByteBuffer.wrap(copyBuf, 0, bs);
}
@SuppressWarnings("null")
void copyAsIs(PackOutputStream out, DfsObjectToPack src,
boolean validate, DfsReader ctx) throws IOException,
StoredObjectRepresentationNotAvailableException {
@ -567,22 +566,26 @@ public final class DfsPackFile {
c = buf[headerCnt++] & 0xff;
} while ((c & 128) != 0);
if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, headerCnt);
crc2.update(buf, 0, headerCnt);
}
} else if (typeCode == Constants.OBJ_REF_DELTA) {
if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, headerCnt);
crc2.update(buf, 0, headerCnt);
}
readFully(src.offset + headerCnt, buf, 0, 20, ctx);
if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, 20);
crc2.update(buf, 0, 20);
}
headerCnt += 20;
} else if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, headerCnt);
crc2.update(buf, 0, headerCnt);
}
@ -599,6 +602,7 @@ public final class DfsPackFile {
quickCopy = ctx.quickCopy(this, dataOffset, dataLength);
if (validate && idx(ctx).hasCRC32Support()) {
assert(crc1 != null);
// Index has the CRC32 code cached, validate the object.
//
expectedCRC = idx(ctx).findCRC32(src);
@ -622,6 +626,7 @@ public final class DfsPackFile {
Long.valueOf(src.offset), getPackName()));
}
} else if (validate) {
assert(crc1 != null);
// We don't have a CRC32 code in the index, so compute it
// now while inflating the raw data to get zlib to tell us
// whether or not the data is safe.
@ -709,19 +714,24 @@ public final class DfsPackFile {
while (cnt > 0) {
final int n = (int) Math.min(cnt, buf.length);
readFully(pos, buf, 0, n, ctx);
if (validate)
if (validate) {
assert(crc2 != null);
crc2.update(buf, 0, n);
}
out.write(buf, 0, n);
pos += n;
cnt -= n;
}
if (validate && crc2.getValue() != expectedCRC) {
if (validate) {
assert(crc2 != null);
if (crc2.getValue() != expectedCRC) {
throw new CorruptObjectException(MessageFormat.format(
JGitText.get().objectAtHasBadZlibStream,
Long.valueOf(src.offset), getPackName()));
}
}
}
}
boolean invalid() {
return invalid;
@ -837,7 +847,6 @@ public final class DfsPackFile {
return buf.position();
}
@SuppressWarnings("null")
ObjectLoader load(DfsReader ctx, long pos)
throws IOException {
try {
@ -934,6 +943,7 @@ public final class DfsPackFile {
if (data == null)
throw new LargeObjectException();
assert(delta != null);
do {
// Cache only the base immediately before desired object.
if (cached)

19
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java

@ -366,7 +366,6 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
}
}
@SuppressWarnings("null")
private void copyAsIs2(PackOutputStream out, LocalObjectToPack src,
boolean validate, WindowCursor curs) throws IOException,
StoredObjectRepresentationNotAvailableException {
@ -393,22 +392,26 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
c = buf[headerCnt++] & 0xff;
} while ((c & 128) != 0);
if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, headerCnt);
crc2.update(buf, 0, headerCnt);
}
} else if (typeCode == Constants.OBJ_REF_DELTA) {
if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, headerCnt);
crc2.update(buf, 0, headerCnt);
}
readFully(src.offset + headerCnt, buf, 0, 20, curs);
if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, 20);
crc2.update(buf, 0, 20);
}
headerCnt += 20;
} else if (validate) {
assert(crc1 != null && crc2 != null);
crc1.update(buf, 0, headerCnt);
crc2.update(buf, 0, headerCnt);
}
@ -425,6 +428,7 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
quickCopy = curs.quickCopy(this, dataOffset, dataLength);
if (validate && idx().hasCRC32Support()) {
assert(crc1 != null);
// Index has the CRC32 code cached, validate the object.
//
expectedCRC = idx().findCRC32(src);
@ -457,6 +461,7 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
if (quickCopy != null) {
quickCopy.check(inf, tmp, dataOffset, (int) dataLength);
} else {
assert(crc1 != null);
long pos = dataOffset;
long cnt = dataLength;
while (cnt > 0) {
@ -476,6 +481,7 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
JGitText.get().shortCompressedStreamAt,
Long.valueOf(src.offset)));
}
assert(crc1 != null);
expectedCRC = crc1.getValue();
} else {
expectedCRC = -1;
@ -535,19 +541,24 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
while (cnt > 0) {
final int n = (int) Math.min(cnt, buf.length);
readFully(pos, buf, 0, n, curs);
if (validate)
if (validate) {
assert(crc2 != null);
crc2.update(buf, 0, n);
}
out.write(buf, 0, n);
pos += n;
cnt -= n;
}
if (validate && crc2.getValue() != expectedCRC) {
if (validate) {
assert(crc2 != null);
if (crc2.getValue() != expectedCRC) {
throw new CorruptObjectException(MessageFormat.format(
JGitText.get().objectAtHasBadZlibStream,
Long.valueOf(src.offset), getPackFile()));
}
}
}
}
boolean invalid() {
return invalid;
@ -712,7 +723,6 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
, getPackFile()));
}
@SuppressWarnings("null")
ObjectLoader load(final WindowCursor curs, long pos)
throws IOException, LargeObjectException {
try {
@ -811,6 +821,7 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> {
if (data == null)
throw new IOException(JGitText.get().inMemoryBufferLimitExceeded);
assert(delta != null);
do {
// Cache only the base immediately before desired object.
if (cached)

3
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java

@ -881,7 +881,6 @@ public class RefDirectory extends RefDatabase {
return n;
}
@SuppressWarnings("null")
private LooseRef scanRef(LooseRef ref, String name) throws IOException {
final File path = fileFor(name);
FileSnapshot currentSnapshot = null;
@ -920,6 +919,7 @@ public class RefDirectory extends RefDatabase {
final String target = RawParseUtils.decode(buf, 5, n);
if (ref != null && ref.isSymbolic()
&& ref.getTarget().getName().equals(target)) {
assert(currentSnapshot != null);
currentSnapshot.setClean(otherSnapshot);
return ref;
}
@ -934,6 +934,7 @@ public class RefDirectory extends RefDatabase {
id = ObjectId.fromString(buf, 0);
if (ref != null && !ref.isSymbolic()
&& ref.getTarget().getObjectId().equals(id)) {
assert(currentSnapshot != null);
currentSnapshot.setClean(otherSnapshot);
return ref;
}

Loading…
Cancel
Save