diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..81a1664
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5d35ec..5827753 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build.gradle b/build.gradle
index 2a5c5d0..467b362 100644
--- a/build.gradle
+++ b/build.gradle
@@ -24,7 +24,7 @@ ext.mainArtifact = 'multidexlib2'
ext.artifactName = mainArtifact
sourceCompatibility = '1.7'
-def jdk = findProperty('JDK7_HOME') ?: '/usr/lib/jvm/java-7-openjdk-amd64'
+def jdk = findProperty('JDK7_HOME') as String ?: '/usr/lib/jvm/java-7-openjdk-amd64'
def jdk_rt = new File(jdk, 'jre/lib/rt.jar')
if (jdk_rt.exists()) compileJava.options.bootstrapClasspath = files(jdk_rt)
diff --git a/src/main/java/lanchon/multidexlib2/DexFileNameComparator.java b/src/main/java/lanchon/multidexlib2/DexFileNameComparator.java
index 76cff22..12ccf14 100644
--- a/src/main/java/lanchon/multidexlib2/DexFileNameComparator.java
+++ b/src/main/java/lanchon/multidexlib2/DexFileNameComparator.java
@@ -28,7 +28,7 @@ public class DexFileNameComparator implements Comparator {
boolean rv = (ri >= 0);
if (lv != rv) return lv ? -1 : 1;
if (!lv) return l.compareTo(r);
- return li < ri ? -1 : (li > ri ? 1 : 0);
+ return Integer.compare(li, ri);
}
public DexFileNamer getNamer() {
diff --git a/src/main/java/lanchon/multidexlib2/DexIO.java b/src/main/java/lanchon/multidexlib2/DexIO.java
index 8c115f3..65edab4 100644
--- a/src/main/java/lanchon/multidexlib2/DexIO.java
+++ b/src/main/java/lanchon/multidexlib2/DexIO.java
@@ -74,6 +74,7 @@ public class DexIO {
minimalMainDex = false;
}
Object lock = new Object();
+ //noinspection SynchronizationOnLocalVariableOrMethodParameter
synchronized (lock) { // avoid multiple synchronizations in single-threaded mode
writeMultiDexDirectoryCommon(directory, nameIterator, Iterators.peekingIterator(classes.iterator()),
minMainDexClassCount, minimalMainDex, dexFile.getOpcodes(), maxDexPoolSize, logger, lock);
@@ -94,6 +95,7 @@ public class DexIO {
final BatchedIterator batchedIterator =
new BatchedIterator<>(classIterator, lock, PER_THREAD_BATCH_SIZE);
if (i != 0 && !batchedIterator.hasNext()) break;
+ //noinspection Convert2Lambda
callables.add(new Callable() {
@Override
public Void call() throws IOException {
@@ -148,11 +150,14 @@ public class DexIO {
fileClassCount++;
}
File file;
+ //noinspection SynchronizationOnLocalVariableOrMethodParameter
synchronized (lock) {
String name = nameIterator.next();
file = new File(directory, name);
if (logger != null) logger.log(directory, name, fileClassCount);
- if (classIterator instanceof BatchedIterator) ((BatchedIterator) classIterator).preloadBatch();
+ if (classIterator instanceof BatchedIterator) {
+ ((BatchedIterator>) classIterator).preloadBatch();
+ }
}
dexPool.writeTo(new FileDataStore(file));
minMainDexClassCount = 0;
diff --git a/src/main/java/lanchon/multidexlib2/MultiDexContainerBackedDexFile.java b/src/main/java/lanchon/multidexlib2/MultiDexContainerBackedDexFile.java
index 4a172d0..2ac74a4 100644
--- a/src/main/java/lanchon/multidexlib2/MultiDexContainerBackedDexFile.java
+++ b/src/main/java/lanchon/multidexlib2/MultiDexContainerBackedDexFile.java
@@ -30,6 +30,7 @@ public class MultiDexContainerBackedDexFile implements DexFil
List entryNames = container.getDexEntryNames();
if (entryNames.size() == 1) {
String entryName = entryNames.get(0);
+ //noinspection ConstantConditions
T entryDex = container.getEntry(entryName).getDexFile();
classes = Collections.unmodifiableSet(entryDex.getClasses());
opcodes = entryDex.getOpcodes();
@@ -37,6 +38,7 @@ public class MultiDexContainerBackedDexFile implements DexFil
LinkedHashSet accumulatedClasses = new LinkedHashSet<>();
Opcodes resolvedOpcodes = null;
for (String entryName : entryNames) {
+ //noinspection ConstantConditions
T entryDex = container.getEntry(entryName).getDexFile();
for (ClassDef entryClass : entryDex.getClasses()) {
if (!accumulatedClasses.add(entryClass)) throw new DuplicateTypeException(entryClass.getType());
diff --git a/src/main/java/lanchon/multidexlib2/MultiDexIO.java b/src/main/java/lanchon/multidexlib2/MultiDexIO.java
index 1f5426f..dbfead3 100644
--- a/src/main/java/lanchon/multidexlib2/MultiDexIO.java
+++ b/src/main/java/lanchon/multidexlib2/MultiDexIO.java
@@ -48,6 +48,7 @@ public class MultiDexIO {
MultiDexContainer container = readMultiDexContainer(file, namer, opcodes);
if (logger != null) {
for (String name : container.getDexEntryNames()) {
+ //noinspection ConstantConditions
logger.log(file, name, container.getEntry(name).getDexFile().getClasses().size());
}
}
diff --git a/src/main/java/lanchon/multidexlib2/RawDexIO.java b/src/main/java/lanchon/multidexlib2/RawDexIO.java
index 5daa470..99247de 100644
--- a/src/main/java/lanchon/multidexlib2/RawDexIO.java
+++ b/src/main/java/lanchon/multidexlib2/RawDexIO.java
@@ -43,6 +43,7 @@ public class RawDexIO {
return readRawDexFile(inputStream, file.length(), opcodes);
}
*/
+ //noinspection UnstableApiUsage
byte[] buf = Files.toByteArray(file);
return readRawDexFile(buf, 0, opcodes);
}