SpotBugs (4.8.6)
Analysis for
library (spotbugsDebug)
SpotBugs Analysis generated at: Thu, 24 Apr 2025 04:31:53 +0000
Package |
Code Size |
Bugs |
High Prio Bugs |
Medium Prio Bugs |
Low Prio Bugs |
Exp. Bugs |
Ratio |
Overall
(26 packages),
(158 classes)
|
8265 |
164 |
8 |
156 |
|
|
|
com.owncloud.android.lib.common |
750 |
15 |
|
15 |
|
|
|
com.owncloud.android.lib.common.accounts |
193 |
11 |
|
11 |
|
|
|
com.owncloud.android.lib.common.network |
1205 |
35 |
|
35 |
|
|
|
com.owncloud.android.lib.common.operations |
777 |
25 |
2 |
23 |
|
|
|
com.owncloud.android.lib.common.utils |
230 |
7 |
2 |
5 |
|
|
|
com.owncloud.android.lib.resources.activities.models |
40 |
1 |
|
1 |
|
|
|
com.owncloud.android.lib.resources.files |
1300 |
22 |
1 |
21 |
|
|
|
com.owncloud.android.lib.resources.files.model |
80 |
3 |
|
3 |
|
|
|
com.owncloud.android.lib.resources.notifications.models |
112 |
15 |
|
15 |
|
|
|
com.owncloud.android.lib.resources.shares |
846 |
11 |
2 |
9 |
|
|
|
com.owncloud.android.lib.resources.status |
665 |
10 |
1 |
9 |
|
|
|
com.owncloud.android.lib.resources.trashbin.model |
114 |
5 |
|
5 |
|
|
|
com.owncloud.android.lib.resources.users |
683 |
4 |
|
4 |
|
|
|
Analyzed Files:
- /home/runner/work/android-library/android-library/library/build/intermediates/javac/debug
Used Libraries:
- /usr/local/lib/android/sdk/platforms/android-35/android.jar
- /usr/local/lib/android/sdk/build-tools/35.0.0/core-lambda-stubs.jar
- /home/runner/work/android-library/android-library/library/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.github.bitfireAT/dav4jvm/2.2.1/b1641ae3edfd9edb4ffda38ddf69a89ddf4fdf5a/dav4jvm-2.2.1.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/5.0.0-alpha.14/c59864766ffc0d0dd4394ec0af5e3b60bf83d10f/okhttp-5.0.0-alpha.14.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/annotations/3.0.1/fc019a2216218990d64dfe756e7aa20f0069dea2/annotations-3.0.1.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-parcelize-runtime/2.1.20/ba29f2425f154492d8309d76f4b8b0cbd7a677d2/kotlin-parcelize-runtime-2.1.20.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.apache.jackrabbit/jackrabbit-webdav/2.13.5/ff11e117c80c6ee49b9cebc3e0c8131b94f21b6a/jackrabbit-webdav-2.13.5.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.13.1/853ce06c11316b33a8eae5e9095da096a9528b8f/gson-2.13.1.jar
- /home/runner/.gradle/caches/8.13/transforms/a3af82945fc33d5beac3bc3a6b93b4c7/transformed/core-ktx-1.12.0-api.jar
- /home/runner/.gradle/caches/8.13/transforms/1585b2d3aedb7aa36e7ba80583ba6c78/transformed/core-1.12.0-api.jar
- /home/runner/.gradle/caches/8.13/transforms/f0053e1271f62b74054975eab00359a1/transformed/lifecycle-runtime-2.3.1-api.jar
- /home/runner/.gradle/caches/8.13/transforms/81c6174c9c2c68711b9f4cd6f6e589ad/transformed/versionedparcelable-1.1.1-api.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.3.1/fc466261d52f4433863642fb40d12441ae274a98/lifecycle-common-2.3.1.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.0.0/42858b26cafdaa69b6149f45dfc2894007bc2c7a/collection-1.0.0.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-android-extensions-runtime/2.1.20/ec77767ee41cee5f7fd31ae93c0c56985d481a56/kotlin-android-extensions-runtime-2.1.20.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-jvm/1.9.1/b17951747e38bf3986a24431b9ba0d039958aa5f/annotation-jvm-1.9.1.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/2.1.20/72672df5e83231744c00550955b10acb71ed49d6/kotlin-stdlib-jdk7-2.1.20.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio-jvm/3.9.0/eaa4f7858a1e80908b1a2e861e662edd7c6cbbb5/okio-jvm-3.9.0.jar
- /home/runner/.gradle/caches/8.13/transforms/ba8352f5deba8a5507c69c59651aab19/transformed/annotation-experimental-1.3.0-api.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/2.1.20/aa8ca79cd50578314f6d1180c47cbe14c0fee567/kotlin-stdlib-2.1.20.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/2.1.20/1372ceab395defca310ff460dc219364d9df0a2e/kotlin-stdlib-jdk8-2.1.20.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/33.4.0-jre/b19b82d0a09dd29efb86e51954558e5db34972e/guava-33.4.0-android.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcpkix-jdk18on/1.80/5277dfaaef2e92ce1d802499599a0ca7488f86e6/bcpkix-jdk18on-1.80.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.slf4j/jcl-over-slf4j/1.7.4/b7c1efe9a78b315b6be624e6f6f944788c6be6c0/jcl-over-slf4j-1.7.4.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.4/b080da16832c1240acbf3f59f338a8e713705c0c/slf4j-api-1.7.4.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.2/397f4731a9f9b6eb1907e224911c77ea3aa27a8b/commons-codec-1.2.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.38.0/fc0ae991433e8590ba51cd558421478318a74c8c/error_prone_annotations-2.38.0.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.2/c4a06a64e650562f30b7bf9aaec1bfed43aca12b/failureaccess-1.0.2.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/3.43.0/9425eee39e56b116d2b998b7c2cebcbd11a3c98b/checker-qual-3.43.0.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/3.0.0/7399e65dd7e9ff3404f4535b2f017093bdb134c7/j2objc-annotations-3.0.0.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcutil-jdk18on/1.80/b95726d1d49a0c65010c59a3e6640311d951bfd1/bcutil-jdk18on-1.80.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk18on/1.80/e22100b41042decf09cab914a5af8d2c57b5ac4a/bcprov-jdk18on-1.80.jar
- /home/runner/.gradle/caches/modules-2/files-2.1/net.jcip/jcip-annotations/1.0/afba4942caaeaf46aab0b976afd57cc7c181467e/jcip-annotations-1.0.jar
- /home/runner/work/android-library/android-library/library/build/tmp/kotlin-classes/debug
Analysis Errors:
- Missing ref classes for analysis:
- java.rmi.Remote
- javax.accessibility.Accessible
High Prio
Medium Prio
Low Prio
Exp.
High Prio
Medium Prio
Low Prio
Exp.
EI2 / EI_EXPOSE_REP2
This code stores a reference to an externally mutable object into the
internal representation of the object.
If instances
are accessed by untrusted code, and unchecked changes to
the mutable object would compromise security or other
important properties, you will need to do something different.
Storing a copy of the object is better approach in many situations.
Eq / EQ_GETCLASS_AND_CLASS_CONSTANT
This class has an equals method that will be broken if it is inherited by subclasses.
It compares a class literal with the class of the argument (e.g., in class Foo
it might check if Foo.class == o.getClass()
).
It is better to check if this.getClass() == o.getClass()
.
CLI / CLI_CONSTANT_LIST_INDEX
This method accesses an array or list using a constant integer index. Often,
this is a typo where a loop variable is intended to be used. If however, specific
list indices mean different specific things, then perhaps replacing the list with
a first-class object with meaningful accessors would make the code less brittle.
NP / NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE
The return value from a method is dereferenced without a null check,
and the return value of that method is one that should generally be checked
for null. This may lead to a NullPointerException
when the code is executed.
ENMI / ENMI_NULL_ENUM_VALUE
This method sets the value of an enum reference to null. An enum should never have a null value.
If there is a state where you do not know what the value of an enum should be, than that should be one of the
proper enum value. So add a MyEnum.UNKNOWN or such. This keeps the logic of switch statements, etc, much simpler.
REC / REC_CATCH_EXCEPTION
This method uses a try-catch block that catches Exception objects, but Exception is not
thrown within the try block, and RuntimeException is not explicitly caught. It is a common bug pattern to
say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception
each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well,
masking potential bugs.
A better approach is to either explicitly catch the specific exceptions that are thrown,
or to explicitly catch RuntimeException exception, rethrow it, and then catch all non-Runtime Exceptions, as shown below:
try {
...
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
... deal with all non-runtime exceptions ...
}
MS / MS_EXPOSE_REP
A public static method returns a reference to a mutable object or
an array that is part of the static state of the class.
Any code that calls this method can freely modify
the underlying array.
One fix is to return a copy of the array.
MDM / MDM_STRING_BYTES_ENCODING
The behavior of the String(byte[] bytes)
and String.getBytes()
is undefined if the string cannot be encoded in the platform's default charset. Instead, use the String(byte[] bytes, String encoding)
or String.getBytes(String encoding)
constructor which accepts the string's encoding as an argument. Be sure to specify the encoding used for the user's locale.
As per the Java specifications, "UTF-8", "US-ASCII", "UTF-16" and "ISO-8859-1" will all be valid encoding charsets. If you aren't sure, try "UTF-8".
New in Java 1.7, you can specify an encoding from StandardCharsets
, like StandardCharsets.UTF_8
. These are generally preferrable because you don't have to deal with UnsupportedEncodingException
.
RCN / RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
This method contains a redundant check of a known non-null value against
the constant null.
BED / BED_BOGUS_EXCEPTION_DECLARATION
This method declares that it throws a checked exception that it does not throw. As this method is
either a constructor, static method or private method, there is no reason for this method to declare
the exception in its throws clause, and just causes calling methods to unnecessarily handle an exception
that will never be thrown. The exception in question should be removed from the throws clause.
NAB / NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION
This method assigns a Boxed boolean constant to a primitive boolean variable, or assigns a primitive boolean
constant to a Boxed boolean variable. Use the correct constant for the variable desired. Use
boolean b = true;
boolean b = false;
or
Boolean b = Boolean.TRUE;
Boolean b = Boolean.FALSE;
Be aware that this boxing happens automatically when you might not expect it. For example,
Map statusMap = ...
public Boolean someMethod() {
statusMap.put("foo", true); //the "true" here is boxed
return false; //the "false" here is boxed
}
has two cases of this needless autoboxing. This can be made more efficient by simply substituting
in the constant values:
Map statusMap = ...
public Boolean someMethod() {
statusMap.put("foo", Boolean.TRUE);
return Boolean.FALSE;
}
SUA / SUA_SUSPICIOUS_UNINITIALIZED_ARRAY
This method returns an array that was allocated but apparently not initialized. It is
possible that the caller of this method will do the work of initializing this array, but
that is not a common pattern, and it is assumed that this array has just been forgotten to
be initialized.
ST / ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD
This instance method writes to a static field. This is tricky to get
correct if multiple instances are being manipulated,
and generally bad practice.
EI / EI_EXPOSE_REP
Returning a reference to a mutable object value stored in one of the object's fields
exposes the internal representation of the object.
If instances
are accessed by untrusted code, and unchecked changes to
the mutable object would compromise security or other
important properties, you will need to do something different.
Returning a new copy of the object is better approach in many situations.
FCCD / FCCD_FIND_CLASS_CIRCULAR_DEPENDENCY
This class has a circular dependency with other classes. This makes building these classes
difficult, as each is dependent on the other to build correctly. Consider using interfaces
to break the hard dependency. The dependency chain can be seen in the GUI version of FindBugs.
CE / CE_CLASS_ENVY
This method makes extensive use of methods from another class over methods of its own
class. Typically this means that the functionality that is accomplished by this method
most likely belongs with the class that is being used so liberally. Consider refactoring this
method to be contained in that class, and to accept all the parameters needed in the method signature.
ITU / ITU_INAPPROPRIATE_TOSTRING_USE
This method calls algorithmic operations on a String that was returned from a toString() method.
As these methods are for debugging/logging purposes, it shouldn't be the basis of core logic in your code.
CC / CC_CYCLOMATIC_COMPLEXITY
This method has a high cyclomatic complexity figure, which represents the number of branch
points. It is likely difficult to test, and is brittle to change. Consider refactoring this
method into several to reduce the risk.
IOI / IOI_USE_OF_FILE_STREAM_CONSTRUCTORS
This method creates and uses a java.io.FileInputStream or java.io.FileOutputStream object. Unfortunately both
of these classes implement a finalize method, which means that objects created will likely hang around until a
full garbage collection occurs, which will leave excessive garbage on the heap for longer, and potentially much
longer than expected. Java 7 introduced two ways to create streams for reading and writing files that do not have this concern.
You should consider switching from these above classes to
InputStream is = java.nio.file.Files.newInputStream(myfile.toPath());
OutputStream os = java.nio.file.Files.newOutputStream(myfile.toPath());
UP / UP_UNUSED_PARAMETER
This method defines parameters that are never used. As this method is either static or private,
and can't be derived from, it is safe to remove these parameters and simplify your method.
You should consider, while unlikely, that this method may be used reflectively, and thus you will
want to change that call as well. In this case, it is likely that once you remove the parameter,
there will be a chain of method calls that have spent time creating this parameter and passing it
down the line. All of this may be able to be removed.
PDP / PDP_POORLY_DEFINED_PARAMETER
This method defines parameters at a more abstract level than is actually needed to function correctly,
as the code casts these parameters to more concrete types. Since this method is not derivable, you should
just define the parameters with the type that is needed.
Dm / DM_DEFAULT_ENCODING
Found a call to a method which will perform a byte to String (or String to byte) conversion,
and will assume that the default platform encoding is suitable. This will cause the application
behavior to vary between platforms. Use an alternative API and specify a charset name or Charset
object explicitly.
SF / SF_SWITCH_NO_DEFAULT
This method contains a switch statement where default case is missing.
Usually you need to provide a default case.
Because the analysis only looks at the generated bytecode, this warning can be incorrect triggered if
the default case is at the end of the switch statement and the switch statement doesn't contain break statements for other
cases.
PA / PA_PUBLIC_PRIMITIVE_ATTRIBUTE
SEI CERT rule OBJ01-J requires that accessibility to fields must be limited.
Otherwise, the values of the fields may be manipulated from outside the class, which may be unexpected or
undesired behaviour.
In general, requiring that no fields are allowed to be public is overkill and unrealistic. Even
the rule mentions that final fields may be public. Besides final fields, there may be other
usages for public fields: some public fields may serve as "flags" that affect the behavior of
the class. Such flag fields are expected to be read by the current instance (or the current
class, in case of static fields), but written by others. If a field is both written by the
methods of the current instance (or the current class, in case of static fields) and from the
outside, the code is suspicious. Consider making these fields private and provide appropriate
setters, if necessary. Please note that constructors, initializers and finalizers are
exceptions, if only they write the field inside the class, the field is not considered as
written by the class itself.
DRE / DRE_DECLARED_RUNTIME_EXCEPTION
This method declares a RuntimeException derived class in its throws clause.
This may indicate a misunderstanding as to how unchecked exceptions are handled.
If it is felt that a RuntimeException is so prevalent that it should be declared for
documentation purposes, using javadoc's @throws clause is a better idea, as it doesn't
needless pollute the method signature,
BED / BED_HIERARCHICAL_EXCEPTION_DECLARATION
This method declares that it throws an exception that is the child of another exception that is
also declared to be thrown. Given that the parent exception is declared, there is no need for the child
exception to also be declared; it just adds confusion.
UTWR / UTWR_USE_TRY_WITH_RESOURCES
[
This method allocates and uses an auto closeable resource. However, it manually closes the resource in a finally block.
While this is correct management, it doesn't rely on the idiomatic way available to JDK 7 and above, allows for possible
subtle problems, and complicates the reading of code by developers expecting the use of try-with-resources.
Switch to using try with resources, as:
try (InputStream is = getAStream()) {
useTheStream(is);
}
SBSC / SBSC_USE_STRINGBUFFER_CONCATENATION
The method seems to be building a String using concatenation in a loop.
In each iteration, the String is converted to a StringBuffer/StringBuilder,
appended to, and converted back to a String.
This can lead to a cost quadratic in the number of iterations,
as the growing string is recopied in each iteration.
Better performance can be obtained by using
a StringBuffer (or StringBuilder in Java 5) explicitly.
For example:
// This is bad
String s = "";
for (int i = 0; i < field.length; ++i) {
s = s + field[i];
}
// This is better
StringBuffer buf = new StringBuffer();
for (int i = 0; i < field.length; ++i) {
buf.append(field[i]);
}
String s = buf.toString();
PCOA / PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS
This constructor makes a call to a non-final method. Since this method can be overridden, a subclass'
implementation will be executing against an object that has not been initialized at the subclass level.
You should mark all methods called from the constructor as final to avoid this problem.
JLM / JLM_JSR166_UTILCONCURRENT_MONITORENTER
This method performs synchronization on an object that is an instance of
a class from the java.util.concurrent package (or its subclasses). Instances
of these classes have their own concurrency control mechanisms that are orthogonal to
the synchronization provided by the Java keyword synchronized
. For example,
synchronizing on an AtomicBoolean
will not prevent other threads
from modifying the AtomicBoolean
.
Such code may be correct, but should be carefully reviewed and documented,
and may confuse people who have to maintain the code at a later date.
LEST / LEST_LOST_EXCEPTION_STACK_TRACE
This method catches an exception, and throws a different exception, without incorporating the
original exception. Doing so hides the original source of the exception, making debugging and fixing
these problems difficult. It is better to use the constructor of this new exception that takes an
original exception so that this detail can be passed along to the user. If this exception has no constructor
that takes an initial cause parameter, use the initCause method to initialize it instead.
catch (IOException e) {
throw new MySpecialException("Failed to open configuration", e);
}
ISB / ISB_TOSTRING_APPENDING
This method concatenates the output of a toString()
call into a StringBuffer
or StringBuilder
.
It is simpler just to pass the object you want to append to the append call, as that form
does not suffer the potential for NullPointerException
s, and is easier to read.
Keep in mind that Java compiles simple String
concatenation to use StringBuilder
s,
so you may see this bug even when you don't use StringBuilder
s explicitly.
Instead of:
StringBuilder builder = ...;
builder.append(someObj.toString());
...
System.out.println("Problem with the object :" + someObj.toString());
just do:
StringBuilder builder = ...
builder.append(someObj);
...
System.out.println("Problem with the object :" + someObj);
to avoid the possibility of
NullPointerException
s when someObj is
null
.
STT / STT_STRING_PARSING_A_FIELD
This method calls a parsing method (indexOf, lastIndexOf, startsWith, endsWith, substring, indexOf) on a String
that is a field, or comes from a collection that is a field. This implies that the String in question is holding
multiple parts of information inside the string, which would be more maintainable and type safe if that value was a
true collection or a first class object with fields, rather than a String.
CT / CT_CONSTRUCTOR_THROW
Classes that throw exceptions in their constructors are vulnerable to Finalizer attacks
A finalizer attack can be prevented, by declaring the class final, using an empty finalizer declared as final, or by a clever use of a private constructor.
See SEI CERT Rule OBJ-11
for more information.
LI / LI_LAZY_INIT_UPDATE_STATIC
This method contains an unsynchronized lazy initialization of a static field.
After the field is set, the object stored into that location is further updated or accessed.
The setting of the field is visible to other threads as soon as it is set. If the
further accesses in the method that set the field serve to initialize the object, then
you have a very serious multithreading bug, unless something else prevents
any other thread from accessing the stored object until it is fully initialized.
Even if you feel confident that the method is never called by multiple
threads, it might be better to not set the static field until the value
you are setting it to is fully populated/initialized.
PRMC / PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS
This method makes two consecutive calls to the same method, using the same constant
parameters, on the same instance, without any intervening changes to the objects. If this
method does not make changes to the object, which it appears it doesn't, then making
two calls is just a waste. These method calls could be combined by assigning the
result into a temporary variable, and using the variable the second time.
NOS / NOS_NON_OWNED_SYNCHRONIZATION
This method uses a synchronize block where the object that is being synchronized on,
is not owned by this current instance. This means that other instances may use this same
object for synchronization for their own purposes, causing synchronization confusion. It is
always cleaner and safer to only synchronize on private fields of this class. Note that 'this'
is not owned by the current instance, but is owned by whomever assigns it to a field of its
class. Synchronizing on 'this' is also not a good idea.
SS / SS_SHOULD_BE_STATIC
This class contains an instance final field that
is initialized to a compile-time static value.
Consider making the field static.
IMC / IMC_IMMATURE_CLASS_BAD_SERIALVERSIONUID
This serializable class defines a serialVersionUID that appears to be a computed value, however the value does not
match the computed value, and thus losses it's value as version indicator. Either create a custom value like 1, 2, 3, 4.. etc, or
recompute the serialVersionUID using your IDE.
USBR / USBR_UNNECESSARY_STORE_BEFORE_RETURN
This method stores the return result in a local variable, and then immediately
returns the local variable. It would be simpler just to return the value that is
assigned to the local variable, directly.
Instead of the following:
public float average(int[] arr) {
float sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
float ave = sum / arr.length;
return ave;
}
Simply change the method to return the result of the division:
public float average(int[] arr) {
float sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum / arr.length; //Change
}
RV / RV_RETURN_VALUE_IGNORED_BAD_PRACTICE
This method returns a value that is not checked. The return value should be checked
since it can indicate an unusual or unexpected function execution. For
example, the File.delete()
method returns false
if the file could not be successfully deleted (rather than
throwing an Exception).
If you don't check the result, you won't notice if the method invocation
signals unexpected behavior by returning an atypical return value.
OS / OS_OPEN_STREAM
The method creates an IO stream object, does not assign it to any
fields, pass it to other methods that might close it,
or return it, and does not appear to close
the stream on all paths out of the method. This may result in
a file descriptor leak. It is generally a good
idea to use a finally
block to ensure that streams are
closed.
In class com.owncloud.android.lib.common.OwnCloudAccount
In method new com.owncloud.android.lib.common.OwnCloudAccount(Account, Context)
At OwnCloudAccount.java:[line 52]
At OwnCloudAccount.java:[line 52]
Exception thrown in class com.owncloud.android.lib.common.OwnCloudAccount at new com.owncloud.android.lib.common.OwnCloudAccount(Account, Context) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.OwnCloudAccount
In method new com.owncloud.android.lib.common.OwnCloudAccount(Uri, OwnCloudCredentials)
At OwnCloudAccount.java:[line 81]
At OwnCloudAccount.java:[line 81]
Exception thrown in class com.owncloud.android.lib.common.OwnCloudAccount at new com.owncloud.android.lib.common.OwnCloudAccount(Uri, OwnCloudCredentials) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.OwnCloudAccount
In method com.owncloud.android.lib.common.OwnCloudAccount.getSavedAccount()
Field com.owncloud.android.lib.common.OwnCloudAccount.savedAccount
At OwnCloudAccount.java:[line 178]
com.owncloud.android.lib.common.OwnCloudAccount.getSavedAccount() may expose internal representation by returning OwnCloudAccount.savedAccount
In class com.owncloud.android.lib.common.OwnCloudAccount
In method new com.owncloud.android.lib.common.OwnCloudAccount(Account, Context)
Field com.owncloud.android.lib.common.OwnCloudAccount.savedAccount
Local variable named savedAccount
At OwnCloudAccount.java:[line 59]
new com.owncloud.android.lib.common.OwnCloudAccount(Account, Context) may expose internal representation by storing an externally mutable object into OwnCloudAccount.savedAccount
In class com.owncloud.android.lib.common.OwnCloudAccount$1
In method com.owncloud.android.lib.common.OwnCloudAccount$1.newArray(int)
At OwnCloudAccount.java:[line 161]
Method com.owncloud.android.lib.common.OwnCloudAccount$1.newArray(int) returns an array that appears not to be initialized
In class com.owncloud.android.lib.common.OwnCloudAnonymousCredentials$1
In method com.owncloud.android.lib.common.OwnCloudAnonymousCredentials$1.newArray(int)
At OwnCloudAnonymousCredentials.java:[line 73]
Method com.owncloud.android.lib.common.OwnCloudAnonymousCredentials$1.newArray(int) returns an array that appears not to be initialized
In class com.owncloud.android.lib.common.OwnCloudBasicCredentials$1
In method com.owncloud.android.lib.common.OwnCloudBasicCredentials$1.newArray(int)
At OwnCloudBasicCredentials.java:[line 96]
Method com.owncloud.android.lib.common.OwnCloudBasicCredentials$1.newArray(int) returns an array that appears not to be initialized
In class com.owncloud.android.lib.common.OwnCloudClient
In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context)
At OwnCloudClient.java:[line 77]
At OwnCloudClient.java:[line 77]
Exception thrown in class com.owncloud.android.lib.common.OwnCloudClient at new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.OwnCloudClient
In class com.owncloud.android.lib.common.OwnCloudCredentialsFactory
In class com.owncloud.android.lib.common.OwnCloudBasicCredentials
At OwnCloudClient.java:[lines 54-451]
Class com.owncloud.android.lib.common.OwnCloudClient has a circular dependency with other classes
In class com.owncloud.android.lib.common.OwnCloudClient
In method com.owncloud.android.lib.common.OwnCloudClient.getCookiesString()
At OwnCloudClient.java:[line 399]
Method com.owncloud.android.lib.common.OwnCloudClient.getCookiesString() concatenates the result of a toString() call
In class com.owncloud.android.lib.common.OwnCloudClient
In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context)
At OwnCloudClient.java:[line 93]
Method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context) needlessly boxes a boolean constant
In class com.owncloud.android.lib.common.OwnCloudClient
In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context)
At OwnCloudClient.java:[line 97]
Constructor new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context) makes call to non-final method
In class com.owncloud.android.lib.common.OwnCloudClient
In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context)
Field com.owncloud.android.lib.common.OwnCloudClient.sInstanceCounter
At OwnCloudClient.java:[line 82]
Write to static field com.owncloud.android.lib.common.OwnCloudClient.sInstanceCounter from instance method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, Context)
In class com.owncloud.android.lib.common.OwnCloudClientManagerFactory
In method com.owncloud.android.lib.common.OwnCloudClientManagerFactory.getDefaultSingleton()
Field com.owncloud.android.lib.common.OwnCloudClientManagerFactory.sDefaultSingleton
At OwnCloudClientManagerFactory.java:[line 23]
Public static com.owncloud.android.lib.common.OwnCloudClientManagerFactory.getDefaultSingleton() may expose internal representation by returning OwnCloudClientManagerFactory.sDefaultSingleton
In class com.owncloud.android.lib.common.OwnCloudCredentialsFactory
In method com.owncloud.android.lib.common.OwnCloudCredentialsFactory.getAnonymousCredentials()
Field com.owncloud.android.lib.common.OwnCloudCredentialsFactory.sAnonymousCredentials
At OwnCloudCredentialsFactory.java:[line 25]
Public static com.owncloud.android.lib.common.OwnCloudCredentialsFactory.getAnonymousCredentials() may expose internal representation by returning OwnCloudCredentialsFactory.sAnonymousCredentials
In class com.owncloud.android.lib.common.accounts.AccountUtils
In class com.owncloud.android.lib.common.OwnCloudCredentialsFactory
In class com.owncloud.android.lib.common.OwnCloudAnonymousCredentials
In class com.owncloud.android.lib.common.OwnCloudClient
In class com.owncloud.android.lib.common.OwnCloudClientManagerFactory
In class com.owncloud.android.lib.common.OwnCloudClientManager
In class com.owncloud.android.lib.common.OwnCloudAccount
At AccountUtils.java:[lines 33-241]
Class com.owncloud.android.lib.common.accounts.AccountUtils has a circular dependency with other classes
In class com.owncloud.android.lib.common.accounts.AccountUtils
In method com.owncloud.android.lib.common.accounts.AccountUtils.buildAccountName(Uri, String)
At AccountUtils.java:[line 151]
Method com.owncloud.android.lib.common.accounts.AccountUtils.buildAccountName(Uri, String) performs algorithmic operations on the result of a toString() call
In class com.owncloud.android.lib.common.accounts.AccountUtils
In method com.owncloud.android.lib.common.accounts.AccountUtils.buildAccountName(Uri, String)
At AccountUtils.java:[line 152]
Method com.owncloud.android.lib.common.accounts.AccountUtils.buildAccountName(Uri, String) performs algorithmic operations on the result of a toString() call
In class com.owncloud.android.lib.common.accounts.AccountUtils
In method com.owncloud.android.lib.common.accounts.AccountUtils.restoreCookies(Account, OwnCloudClient, Context)
Return value of com.owncloud.android.lib.common.OwnCloudClient.getBaseUri() of type android.net.Uri
Redundant null check at AccountUtils.java:[line 188]
Redundant nullcheck of com.owncloud.android.lib.common.OwnCloudClient.getBaseUri(), which is known to be non-null in com.owncloud.android.lib.common.accounts.AccountUtils.restoreCookies(Account, OwnCloudClient, Context)
In class com.owncloud.android.lib.common.accounts.AccountUtils
In method com.owncloud.android.lib.common.accounts.AccountUtils.getUsernameForAccount(Account)
At AccountUtils.java:[line 87]
This method com.owncloud.android.lib.common.accounts.AccountUtils.getUsernameForAccount(Account) parses a String that is a field
In class com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException
In method com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException.getFailedAccount()
Field com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException.mFailedAccount
At AccountUtils.java:[line 258]
com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException.getFailedAccount() may expose internal representation by returning AccountUtils$AccountNotFoundException.mFailedAccount
In class com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException
In method new com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException(Account, String, Throwable)
Field com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException.mFailedAccount
Local variable named failedAccount
At AccountUtils.java:[line 254]
new com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException(Account, String, Throwable) may expose internal representation by storing an externally mutable object into AccountUtils$AccountNotFoundException.mFailedAccount
In class com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException
Field com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException.serialVersionUID
In AccountUtils.java
Class com.owncloud.android.lib.common.accounts.AccountUtils$AccountNotFoundException defines a computed serialVersionUID that doesn't equate to the calculated value
In class com.owncloud.android.lib.common.accounts.ExternalLinksOperation
In method com.owncloud.android.lib.common.accounts.ExternalLinksOperation.run(OwnCloudClient)
At ExternalLinksOperation.java:[line 138]
Exception is caught when Exception is not thrown in com.owncloud.android.lib.common.accounts.ExternalLinksOperation.run(OwnCloudClient)
In class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory
In method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.createSocket(String, int, InetAddress, int, HttpConnectionParams)
Value java.net.UnknownHostException derives from java.io.IOException
At AdvancedSslSocketFactory.java:[lines 149-171]
Method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.createSocket(String, int, InetAddress, int, HttpConnectionParams) declares throwing two or more exceptions related by inheritance
In class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory
In method new com.owncloud.android.lib.common.network.AdvancedSslSocketFactory(SSLContext, AdvancedX509TrustManager, X509HostnameVerifier)
At AdvancedSslSocketFactory.java:[line 61]
At AdvancedSslSocketFactory.java:[line 61]
Exception thrown in class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory at new com.owncloud.android.lib.common.network.AdvancedSslSocketFactory(SSLContext, AdvancedX509TrustManager, X509HostnameVerifier) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory
In method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.equals(Object)
At AdvancedSslSocketFactory.java:[line 201]
com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.equals(Object) fails for subtypes
In class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory
In method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket)
At AdvancedSslSocketFactory.java:[line 235]
Value socket
Method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket) defines parameters more abstractly than needed to function properly
In class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory
In method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket)
Value Parameter 2: port
At AdvancedSslSocketFactory.java:[lines 231-313]
Static or private method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket) has unused parameters
In class com.owncloud.android.lib.common.network.AdvancedX509KeyManager
In method new com.owncloud.android.lib.common.network.AdvancedX509KeyManager(Context)
At AdvancedX509KeyManager.java:[line 110]
At AdvancedX509KeyManager.java:[line 110]
Exception thrown in class com.owncloud.android.lib.common.network.AdvancedX509KeyManager at new com.owncloud.android.lib.common.network.AdvancedX509KeyManager(Context) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.AdvancedX509KeyManager$AKMAlias
In method new com.owncloud.android.lib.common.network.AdvancedX509KeyManager$AKMAlias(String)
At AdvancedX509KeyManager.java:[line 690]
At AdvancedX509KeyManager.java:[line 690]
Exception thrown in class com.owncloud.android.lib.common.network.AdvancedX509KeyManager$AKMAlias at new com.owncloud.android.lib.common.network.AdvancedX509KeyManager$AKMAlias(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.AdvancedX509TrustManager
In method new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore)
At AdvancedX509TrustManager.java:[line 50]
Value java.security.cert.CertStoreException
Non derivable method new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore) declares throwing an exception that isn't thrown
In class com.owncloud.android.lib.common.network.AdvancedX509TrustManager
In method new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore)
At AdvancedX509TrustManager.java:[line 52]
At AdvancedX509TrustManager.java:[line 52]
Exception thrown in class com.owncloud.android.lib.common.network.AdvancedX509TrustManager at new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.AdvancedX509TrustManager
In method new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore)
Field com.owncloud.android.lib.common.network.AdvancedX509TrustManager.mKnownServersKeyStore
Local variable named knownServersKeyStore
At AdvancedX509TrustManager.java:[line 56]
new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore) may expose internal representation by storing an externally mutable object into AdvancedX509TrustManager.mKnownServersKeyStore
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.getCertPathValidatorException()
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mCertPathValidatorException
At CertificateCombinedException.java:[line 82]
com.owncloud.android.lib.common.network.CertificateCombinedException.getCertPathValidatorException() may expose internal representation by returning CertificateCombinedException.mCertPathValidatorException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.getCertificateExpiredException()
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mCertificateExpiredException
At CertificateCombinedException.java:[line 66]
com.owncloud.android.lib.common.network.CertificateCombinedException.getCertificateExpiredException() may expose internal representation by returning CertificateCombinedException.mCertificateExpiredException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.getCertificateNotYetValidException()
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mCertificateNotYetValidException
At CertificateCombinedException.java:[line 74]
com.owncloud.android.lib.common.network.CertificateCombinedException.getCertificateNotYetValidException() may expose internal representation by returning CertificateCombinedException.mCertificateNotYetValidException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.getOtherCertificateException()
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mOtherCertificateException
At CertificateCombinedException.java:[line 90]
com.owncloud.android.lib.common.network.CertificateCombinedException.getOtherCertificateException() may expose internal representation by returning CertificateCombinedException.mOtherCertificateException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.getServerCertificate()
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mServerCert
At CertificateCombinedException.java:[line 54]
com.owncloud.android.lib.common.network.CertificateCombinedException.getServerCertificate() may expose internal representation by returning CertificateCombinedException.mServerCert
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.getSslPeerUnverifiedException()
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mSslPeerUnverifiedException
At CertificateCombinedException.java:[line 98]
com.owncloud.android.lib.common.network.CertificateCombinedException.getSslPeerUnverifiedException() may expose internal representation by returning CertificateCombinedException.mSslPeerUnverifiedException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method new com.owncloud.android.lib.common.network.CertificateCombinedException(X509Certificate)
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mServerCert
Local variable named x509Certificate
At CertificateCombinedException.java:[line 50]
new com.owncloud.android.lib.common.network.CertificateCombinedException(X509Certificate) may expose internal representation by storing an externally mutable object into CertificateCombinedException.mServerCert
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.setCertPathValidatorException(CertPathValidatorException)
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mCertPathValidatorException
Local variable named c
At CertificateCombinedException.java:[line 86]
com.owncloud.android.lib.common.network.CertificateCombinedException.setCertPathValidatorException(CertPathValidatorException) may expose internal representation by storing an externally mutable object into CertificateCombinedException.mCertPathValidatorException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.setCertificateExpiredException(CertificateExpiredException)
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mCertificateExpiredException
Local variable named c
At CertificateCombinedException.java:[line 70]
com.owncloud.android.lib.common.network.CertificateCombinedException.setCertificateExpiredException(CertificateExpiredException) may expose internal representation by storing an externally mutable object into CertificateCombinedException.mCertificateExpiredException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.setCertificateNotYetException(CertificateNotYetValidException)
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mCertificateNotYetValidException
Local variable named c
At CertificateCombinedException.java:[line 78]
com.owncloud.android.lib.common.network.CertificateCombinedException.setCertificateNotYetException(CertificateNotYetValidException) may expose internal representation by storing an externally mutable object into CertificateCombinedException.mCertificateNotYetValidException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.setOtherCertificateException(CertificateException)
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mOtherCertificateException
Local variable named c
At CertificateCombinedException.java:[line 94]
com.owncloud.android.lib.common.network.CertificateCombinedException.setOtherCertificateException(CertificateException) may expose internal representation by storing an externally mutable object into CertificateCombinedException.mOtherCertificateException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
In method com.owncloud.android.lib.common.network.CertificateCombinedException.setSslPeerUnverifiedException(SSLPeerUnverifiedException)
Field com.owncloud.android.lib.common.network.CertificateCombinedException.mSslPeerUnverifiedException
Local variable named s
At CertificateCombinedException.java:[line 102]
com.owncloud.android.lib.common.network.CertificateCombinedException.setSslPeerUnverifiedException(SSLPeerUnverifiedException) may expose internal representation by storing an externally mutable object into CertificateCombinedException.mSslPeerUnverifiedException
In class com.owncloud.android.lib.common.network.CertificateCombinedException
Field com.owncloud.android.lib.common.network.CertificateCombinedException.serialVersionUID
In CertificateCombinedException.java
Class com.owncloud.android.lib.common.network.CertificateCombinedException defines a computed serialVersionUID that doesn't equate to the calculated value
In class com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity
In method new com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity(FileChannel, String, long, long, File)
At ChunkFromFileChannelRequestEntity.java:[line 46]
At ChunkFromFileChannelRequestEntity.java:[line 46]
Exception thrown in class com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity at new com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity(FileChannel, String, long, long, File) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity
In method new com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity(FileChannel, String, long, long, File)
Field com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity.mChannel
Local variable named channel
At ChunkFromFileChannelRequestEntity.java:[line 51]
new com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity(FileChannel, String, long, long, File) may expose internal representation by storing an externally mutable object into ChunkFromFileChannelRequestEntity.mChannel
In class com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity
In method com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity.writeRequest(OutputStream)
At ChunkFromFileChannelRequestEntity.java:[line 140]
Method com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity.writeRequest(OutputStream) throws alternative exception from catch block without history
In class com.owncloud.android.lib.common.network.FileRequestEntity
In method new com.owncloud.android.lib.common.network.FileRequestEntity(File, String)
At FileRequestEntity.java:[line 41]
At FileRequestEntity.java:[line 41]
Exception thrown in class com.owncloud.android.lib.common.network.FileRequestEntity at new com.owncloud.android.lib.common.network.FileRequestEntity(File, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.FileRequestEntity
In method com.owncloud.android.lib.common.network.FileRequestEntity.writeRequest(OutputStream)
At FileRequestEntity.java:[line 122]
Method com.owncloud.android.lib.common.network.FileRequestEntity.writeRequest(OutputStream) throws alternative exception from catch block without history
In class com.owncloud.android.lib.common.network.NetworkUtils
In method com.owncloud.android.lib.common.network.NetworkUtils.getKnownServersStore(Context)
At NetworkUtils.java:[line 162]
Method com.owncloud.android.lib.common.network.NetworkUtils.getKnownServersStore(Context) uses a FileInputStream or FileOutputStream constructor
In class com.owncloud.android.lib.common.network.NetworkUtils
In method com.owncloud.android.lib.common.network.NetworkUtils.getMultiThreadedConnManager()
On field com.owncloud.android.lib.common.network.NetworkUtils.mConnManager
At NetworkUtils.java:[lines 191-192]
Incorrect lazy initialization and update of static field com.owncloud.android.lib.common.network.NetworkUtils.mConnManager in com.owncloud.android.lib.common.network.NetworkUtils.getMultiThreadedConnManager()
In class com.owncloud.android.lib.common.network.NetworkUtils
In method com.owncloud.android.lib.common.network.NetworkUtils.getAdvancedSslSocketFactory(Context)
Field com.owncloud.android.lib.common.network.NetworkUtils.mAdvancedSslSocketFactory
At NetworkUtils.java:[line 116]
Public static com.owncloud.android.lib.common.network.NetworkUtils.getAdvancedSslSocketFactory(Context) may expose internal representation by returning NetworkUtils.mAdvancedSslSocketFactory
In class com.owncloud.android.lib.common.network.NetworkUtils
In method com.owncloud.android.lib.common.network.NetworkUtils.getKnownServersStore(Context)
Field com.owncloud.android.lib.common.network.NetworkUtils.mKnownServersStore
At NetworkUtils.java:[line 173]
Public static com.owncloud.android.lib.common.network.NetworkUtils.getKnownServersStore(Context) may expose internal representation by returning NetworkUtils.mKnownServersStore
In class com.owncloud.android.lib.common.network.NetworkUtils
In method com.owncloud.android.lib.common.network.NetworkUtils.getMultiThreadedConnManager()
Field com.owncloud.android.lib.common.network.NetworkUtils.mConnManager
At NetworkUtils.java:[line 196]
Public static com.owncloud.android.lib.common.network.NetworkUtils.getMultiThreadedConnManager() may expose internal representation by returning NetworkUtils.mConnManager
In class com.owncloud.android.lib.common.network.RedirectionPath
In method new com.owncloud.android.lib.common.network.RedirectionPath(int, int)
At RedirectionPath.java:[line 46]
At RedirectionPath.java:[line 46]
Exception thrown in class com.owncloud.android.lib.common.network.RedirectionPath at new com.owncloud.android.lib.common.network.RedirectionPath(int, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.network.WebdavUtils
In method com.owncloud.android.lib.common.network.WebdavUtils.parseResponseDate(String)
At WebdavUtils.java:[line 53]
Class com.owncloud.android.lib.common.network.WebdavUtils uses non owned variables to synchronize on
In class com.owncloud.android.lib.common.operations.ExceptionParser
In method new com.owncloud.android.lib.common.operations.ExceptionParser(InputStream)
At ExceptionParser.java:[line 67]
At ExceptionParser.java:[line 67]
Exception thrown in class com.owncloud.android.lib.common.operations.ExceptionParser at new com.owncloud.android.lib.common.operations.ExceptionParser(InputStream) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.common.operations.ExceptionParser
In method com.owncloud.android.lib.common.operations.ExceptionParser.skip(XmlPullParser)
At ExceptionParser.java:[lines 123-128]
Switch statement found in com.owncloud.android.lib.common.operations.ExceptionParser.skip(XmlPullParser) where default case is missing
In class com.owncloud.android.lib.common.operations.OperationCancelledException
Field com.owncloud.android.lib.common.operations.OperationCancelledException.serialVersionUID
In OperationCancelledException.java
Class com.owncloud.android.lib.common.operations.OperationCancelledException defines a computed serialVersionUID that doesn't equate to the calculated value
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.getClient()
Field com.owncloud.android.lib.common.operations.RemoteOperation.mClient
At RemoteOperation.java:[line 443]
com.owncloud.android.lib.common.operations.RemoteOperation.getClient() may expose internal representation by returning RemoteOperation.mClient
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mAccount
Local variable named account
At RemoteOperation.java:[line 123]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context) may expose internal representation by storing an externally mutable object into RemoteOperation.mAccount
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mAccount
Local variable named account
At RemoteOperation.java:[line 284]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler) may expose internal representation by storing an externally mutable object into RemoteOperation.mAccount
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mListenerHandler
Local variable named listenerHandler
At RemoteOperation.java:[line 292]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler) may expose internal representation by storing an externally mutable object into RemoteOperation.mListenerHandler
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler, Activity)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mAccount
Local variable named account
At RemoteOperation.java:[line 238]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler, Activity) may expose internal representation by storing an externally mutable object into RemoteOperation.mAccount
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler, Activity)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mCallerActivity
Local variable named callerActivity
At RemoteOperation.java:[line 240]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler, Activity) may expose internal representation by storing an externally mutable object into RemoteOperation.mCallerActivity
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler, Activity)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mListenerHandler
Local variable named listenerHandler
At RemoteOperation.java:[line 244]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(Account, Context, OnRemoteOperationListener, Handler, Activity) may expose internal representation by storing an externally mutable object into RemoteOperation.mListenerHandler
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(NextcloudClient)
Field com.owncloud.android.lib.common.operations.RemoteOperation.clientNew
Local variable named client
At RemoteOperation.java:[line 206]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(NextcloudClient) may expose internal representation by storing an externally mutable object into RemoteOperation.clientNew
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(OwnCloudClient)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mClient
Local variable named client
At RemoteOperation.java:[line 191]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(OwnCloudClient) may expose internal representation by storing an externally mutable object into RemoteOperation.mClient
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(OwnCloudClient, OnRemoteOperationListener, Handler)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mClient
Local variable named client
At RemoteOperation.java:[line 323]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(OwnCloudClient, OnRemoteOperationListener, Handler) may expose internal representation by storing an externally mutable object into RemoteOperation.mClient
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.execute(OwnCloudClient, OnRemoteOperationListener, Handler)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mListenerHandler
Local variable named listenerHandler
At RemoteOperation.java:[line 335]
com.owncloud.android.lib.common.operations.RemoteOperation.execute(OwnCloudClient, OnRemoteOperationListener, Handler) may expose internal representation by storing an externally mutable object into RemoteOperation.mListenerHandler
In class com.owncloud.android.lib.common.operations.RemoteOperation
In method com.owncloud.android.lib.common.operations.RemoteOperation.executeNextcloudClient(Account, Context)
Field com.owncloud.android.lib.common.operations.RemoteOperation.mAccount
Local variable named account
At RemoteOperation.java:[line 158]
com.owncloud.android.lib.common.operations.RemoteOperation.executeNextcloudClient(Account, Context) may expose internal representation by storing an externally mutable object into RemoteOperation.mAccount
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, String, int)
Called method String.getBytes()
At RemoteOperationResult.java:[line 238]
Found reliance on default encoding in new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, String, int): String.getBytes()
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, HttpMethod)
Called method String.getBytes()
At RemoteOperationResult.java:[line 340]
Found reliance on default encoding in new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, HttpMethod): String.getBytes()
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method com.owncloud.android.lib.common.operations.RemoteOperationResult.getAuthenticateHeaders()
Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mAuthenticateHeaders
At RemoteOperationResult.java:[line 812]
com.owncloud.android.lib.common.operations.RemoteOperationResult.getAuthenticateHeaders() may expose internal representation by returning RemoteOperationResult.mAuthenticateHeaders
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method com.owncloud.android.lib.common.operations.RemoteOperationResult.getData()
Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mData
At RemoteOperationResult.java:[line 521]
com.owncloud.android.lib.common.operations.RemoteOperationResult.getData() may expose internal representation by returning RemoteOperationResult.mData
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method com.owncloud.android.lib.common.operations.RemoteOperationResult.getException()
Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mException
At RemoteOperationResult.java:[line 561]
com.owncloud.android.lib.common.operations.RemoteOperationResult.getException() may expose internal representation by returning RemoteOperationResult.mException
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(Exception)
Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mException
Local variable named e
At RemoteOperationResult.java:[line 265]
new com.owncloud.android.lib.common.operations.RemoteOperationResult(Exception) may expose internal representation by storing an externally mutable object into RemoteOperationResult.mException
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method com.owncloud.android.lib.common.operations.RemoteOperationResult.setData(ArrayList)
Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mData
Local variable named files
At RemoteOperationResult.java:[line 490]
com.owncloud.android.lib.common.operations.RemoteOperationResult.setData(ArrayList) may expose internal representation by storing an externally mutable object into RemoteOperationResult.mData
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
Field com.owncloud.android.lib.common.operations.RemoteOperationResult.serialVersionUID
In RemoteOperationResult.java
Class com.owncloud.android.lib.common.operations.RemoteOperationResult defines a computed serialVersionUID that doesn't equate to the calculated value
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, String, int)
Called method String.getBytes()
At RemoteOperationResult.java:[line 238]
Method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, String, int) encodes String bytes without specifying the character encoding
In class com.owncloud.android.lib.common.operations.RemoteOperationResult
In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, HttpMethod)
Called method String.getBytes()
At RemoteOperationResult.java:[line 340]
Method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, HttpMethod) encodes String bytes without specifying the character encoding
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.appendLog(String)
At Log_OC.java:[line 315]
Method com.owncloud.android.lib.common.utils.Log_OC.appendLog(String) accesses list or array with constant index
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.appendLog(String)
Called method new java.io.FileWriter(File, boolean)
At Log_OC.java:[line 329]
Found reliance on default encoding in com.owncloud.android.lib.common.utils.Log_OC.appendLog(String): new java.io.FileWriter(File, boolean)
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.startLogging(Context)
Called method new java.io.FileWriter(File, boolean)
At Log_OC.java:[line 239]
Found reliance on default encoding in com.owncloud.android.lib.common.utils.Log_OC.startLogging(Context): new java.io.FileWriter(File, boolean)
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.getLogFileNames()
Field com.owncloud.android.lib.common.utils.Log_OC.mLogFileNames
At Log_OC.java:[line 353]
Public static com.owncloud.android.lib.common.utils.Log_OC.getLogFileNames() may expose internal representation by returning Log_OC.mLogFileNames
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.deleteHistoryLogging()
Value loaded from files
Dereferenced at Log_OC.java:[line 287]
Known null at Log_OC.java:[line 286]
Possible null pointer dereference in com.owncloud.android.lib.common.utils.Log_OC.deleteHistoryLogging() due to return value of called method
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.appendLog(String)
Called method java.io.File.renameTo(File)
At Log_OC.java:[line 317]
Exceptional return value of java.io.File.renameTo(File) ignored in com.owncloud.android.lib.common.utils.Log_OC.appendLog(String)
In class com.owncloud.android.lib.common.utils.Log_OC
In method com.owncloud.android.lib.common.utils.Log_OC.deleteHistoryLogging()
Called method java.io.File.delete()
At Log_OC.java:[line 288]
Exceptional return value of java.io.File.delete() ignored in com.owncloud.android.lib.common.utils.Log_OC.deleteHistoryLogging()
In class com.owncloud.android.lib.resources.activities.models.PreviewObjectAdapter
In method com.owncloud.android.lib.resources.activities.models.PreviewObjectAdapter.readObject(JsonReader)
At PreviewObjectAdapter.java:[lines 50-94]
Value com.owncloud.android.lib.resources.activities.models.PreviewObject
Method com.owncloud.android.lib.resources.activities.models.PreviewObjectAdapter.readObject(JsonReader) excessively uses methods of another class
In class com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation
Field com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.ASSEMBLE_TIME_MAX
At ChunkedFileUploadRemoteOperation.java:[line 48]
Unread field: com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.ASSEMBLE_TIME_MAX; should this field be static?
In class com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation
Field com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.ASSEMBLE_TIME_MIN
At ChunkedFileUploadRemoteOperation.java:[line 47]
Unread field: com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.ASSEMBLE_TIME_MIN; should this field be static?
In class com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation
Field com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.ASSEMBLE_TIME_PER_GB
At ChunkedFileUploadRemoteOperation.java:[line 49]
Unread field: com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.ASSEMBLE_TIME_PER_GB; should this field be static?
In class com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation
In method com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.uploadChunk(OwnCloudClient, Chunk)
At ChunkedFileUploadRemoteOperation.java:[line 312]
Method com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.uploadChunk(OwnCloudClient, Chunk) manually handles closing an auto-closeable resource
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
At DownloadFileRemoteOperation.java:[line 102]
Method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) uses a FileInputStream or FileOutputStream constructor
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
Type java.util.concurrent.atomic.AtomicBoolean
Value loaded from field com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.mCancellationRequested
At DownloadFileRemoteOperation.java:[line 113]
Synchronization performed on java.util.concurrent.atomic.AtomicBoolean in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
Need to close java.io.InputStream
At DownloadFileRemoteOperation.java:[line 101]
com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) may fail to close stream
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.run(OwnCloudClient)
At DownloadFileRemoteOperation.java:[line 72]
Value getTmpPath()Ljava/lang/String;
Method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.run(OwnCloudClient) appears to call the same method on the same object redundantly
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
Called method java.io.File.delete()
At DownloadFileRemoteOperation.java:[line 168]
Exceptional return value of java.io.File.delete() ignored in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.run(OwnCloudClient)
Called method java.io.File.mkdirs()
At DownloadFileRemoteOperation.java:[line 69]
Exceptional return value of java.io.File.mkdirs() ignored in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.run(OwnCloudClient)
In class com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File)
At DownloadFileRemoteOperation.java:[line 166]
Method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) manually handles closing an auto-closeable resource
In class com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation
In method com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation.getRedirectionPath()
Field com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation.mRedirectionPath
At ExistenceCheckRemoteOperation.java:[line 117]
com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation.getRedirectionPath() may expose internal representation by returning ExistenceCheckRemoteOperation.mRedirectionPath
In class com.owncloud.android.lib.resources.files.FileUtils
In method com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File)
Called method String.getBytes()
At FileUtils.java:[line 48]
Found reliance on default encoding in com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File): String.getBytes()
In class com.owncloud.android.lib.resources.files.FileUtils
In method com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File)
Called method String.getBytes()
At FileUtils.java:[line 48]
Method com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File) encodes String bytes without specifying the character encoding
In class com.owncloud.android.lib.resources.files.FileUtils
In method com.owncloud.android.lib.resources.files.FileUtils.getParentPath(String)
At FileUtils.java:[line 26]
Method com.owncloud.android.lib.resources.files.FileUtils.getParentPath(String) stores return result in local before immediately returning it
In class com.owncloud.android.lib.resources.files.NcSearchMethod
In method new com.owncloud.android.lib.resources.files.NcSearchMethod(String, SearchInfo, SearchRemoteOperation$SearchType, String, long, int, boolean, OCCapability, Long, Long)
At NcSearchMethod.java:[line 68]
At NcSearchMethod.java:[line 68]
Exception thrown in class com.owncloud.android.lib.resources.files.NcSearchMethod at new com.owncloud.android.lib.resources.files.NcSearchMethod(String, SearchInfo, SearchRemoteOperation$SearchType, String, long, int, boolean, OCCapability, Long, Long) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.resources.files.NcSearchMethod
In method new com.owncloud.android.lib.resources.files.NcSearchMethod(String, SearchInfo, SearchRemoteOperation$SearchType, String, long, int, boolean, OCCapability, Long, Long)
Field com.owncloud.android.lib.resources.files.NcSearchMethod.capability
Local variable named capability
At NcSearchMethod.java:[line 63]
new com.owncloud.android.lib.resources.files.NcSearchMethod(String, SearchInfo, SearchRemoteOperation$SearchType, String, long, int, boolean, OCCapability, Long, Long) may expose internal representation by storing an externally mutable object into NcSearchMethod.capability
In class com.owncloud.android.lib.resources.files.SearchRemoteOperation
In method new com.owncloud.android.lib.resources.files.SearchRemoteOperation(String, SearchRemoteOperation$SearchType, boolean, OCCapability)
Field com.owncloud.android.lib.resources.files.SearchRemoteOperation.capability
Local variable named capability
At SearchRemoteOperation.java:[line 65]
new com.owncloud.android.lib.resources.files.SearchRemoteOperation(String, SearchRemoteOperation$SearchType, boolean, OCCapability) may expose internal representation by storing an externally mutable object into SearchRemoteOperation.capability
In class com.owncloud.android.lib.resources.files.UploadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.getDataTransferListeners()
Field com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.dataTransferListeners
At UploadFileRemoteOperation.java:[line 232]
com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.getDataTransferListeners() may expose internal representation by returning UploadFileRemoteOperation.dataTransferListeners
In class com.owncloud.android.lib.resources.files.UploadFileRemoteOperation
In method new com.owncloud.android.lib.resources.files.UploadFileRemoteOperation()
At UploadFileRemoteOperation.java:[line 60]
Method new com.owncloud.android.lib.resources.files.UploadFileRemoteOperation() sets an enum reference to null
In class com.owncloud.android.lib.resources.files.UploadFileRemoteOperation
In method new com.owncloud.android.lib.resources.files.UploadFileRemoteOperation(String, String, String, long, boolean)
At UploadFileRemoteOperation.java:[line 60]
Method new com.owncloud.android.lib.resources.files.UploadFileRemoteOperation(String, String, String, long, boolean) sets an enum reference to null
In class com.owncloud.android.lib.resources.files.UploadFileRemoteOperation
In method com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.cancel(RemoteOperationResult$ResultCode)
Type java.util.concurrent.atomic.AtomicBoolean
Value loaded from field com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.cancellationRequested
At UploadFileRemoteOperation.java:[line 254]
Synchronization performed on java.util.concurrent.atomic.AtomicBoolean in com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.cancel(RemoteOperationResult$ResultCode)
In class com.owncloud.android.lib.resources.files.model.FileVersion
In method new com.owncloud.android.lib.resources.files.model.FileVersion(long, WebdavEntry)
At FileVersion.java:[line 99]
Constructor new com.owncloud.android.lib.resources.files.model.FileVersion(long, WebdavEntry) makes call to non-final method
In class com.owncloud.android.lib.resources.files.model.FileVersion
In method new com.owncloud.android.lib.resources.files.model.FileVersion(Parcel)
At FileVersion.java:[line 132]
Constructor new com.owncloud.android.lib.resources.files.model.FileVersion(Parcel) makes call to non-final method
In class com.owncloud.android.lib.resources.files.model.FileVersion$1
In method com.owncloud.android.lib.resources.files.model.FileVersion$1.newArray(int)
At FileVersion.java:[line 121]
Method com.owncloud.android.lib.resources.files.model.FileVersion$1.newArray(int) returns an array that appears not to be initialized
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.actions
At Notification.java:[line 115]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.actions is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.app
At Notification.java:[line 102]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.app is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.datetime
At Notification.java:[line 104]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.datetime is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.icon
At Notification.java:[line 114]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.icon is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.link
At Notification.java:[line 113]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.link is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.message
At Notification.java:[line 110]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.message is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.messageRich
At Notification.java:[line 111]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.messageRich is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.messageRichParameters
At Notification.java:[line 112]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.messageRichParameters is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.notificationId
At Notification.java:[line 101]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.notificationId is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.objectId
At Notification.java:[line 106]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.objectId is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.objectType
At Notification.java:[line 105]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.objectType is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.subject
At Notification.java:[line 107]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.subject is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.subjectRich
At Notification.java:[line 108]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.subjectRich is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.subjectRichParameters
At Notification.java:[line 109]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.subjectRichParameters is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.notifications.models.Notification
Field com.owncloud.android.lib.resources.notifications.models.Notification.user
At Notification.java:[line 103]
Primitive field com.owncloud.android.lib.resources.notifications.models.Notification.user is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
In class com.owncloud.android.lib.resources.shares.GetShareesRemoteOperation
In method com.owncloud.android.lib.resources.shares.GetShareesRemoteOperation.run(OwnCloudClient)
At GetShareesRemoteOperation.java:[line 216]
Exception is caught when Exception is not thrown in com.owncloud.android.lib.resources.shares.GetShareesRemoteOperation.run(OwnCloudClient)
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser
In method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String)
Called method String.getBytes()
At ShareToRemoteOperationResultParser.java:[line 56]
Found reliance on default encoding in com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String): String.getBytes()
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser
In method new com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser(ShareXMLParser)
Field com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.shareXmlParser
Local variable named shareXmlParser
At ShareToRemoteOperationResultParser.java:[line 35]
new com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser(ShareXMLParser) may expose internal representation by storing an externally mutable object into ShareToRemoteOperationResultParser.shareXmlParser
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser
In method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String)
Called method String.getBytes()
At ShareToRemoteOperationResultParser.java:[line 56]
Method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) encodes String bytes without specifying the character encoding
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser
In method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String)
Local variable stored in JVM register ?
Dereferenced at ShareToRemoteOperationResultParser.java:[line 72]
Known null at ShareToRemoteOperationResultParser.java:[line 72]
Possible null pointer dereference in com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) due to return value of called method
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser
In method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String)
Local variable stored in JVM register ?
Dereferenced at ShareToRemoteOperationResultParser.java:[line 73]
Known null at ShareToRemoteOperationResultParser.java:[line 73]
Possible null pointer dereference in com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) due to return value of called method
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser
In method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String)
Value loaded from shares
Return value of com.owncloud.android.lib.resources.shares.ShareXMLParser.parseXMLResponse(InputStream) of type java.util.ArrayList
Redundant null check at ShareToRemoteOperationResultParser.java:[line 66]
Redundant nullcheck of shares, which is known to be non-null in com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser
In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList)
At ShareXMLParser.java:[line 283]
Value 146
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) is excessively complex, with a cyclomatic complexity of 146
In class com.owncloud.android.lib.resources.shares.ShareXMLParser
In method com.owncloud.android.lib.resources.shares.ShareXMLParser.fixPathForFolder(OCShare)
Local variable stored in JVM register ?
Dereferenced at ShareXMLParser.java:[line 437]
Known null at ShareXMLParser.java:[line 437]
Possible null pointer dereference in com.owncloud.android.lib.resources.shares.ShareXMLParser.fixPathForFolder(OCShare) due to return value of called method
In class com.owncloud.android.lib.resources.shares.ShareXMLParser
In method com.owncloud.android.lib.resources.shares.ShareXMLParser.fixPathForFolder(OCShare)
Local variable stored in JVM register ?
Dereferenced at ShareXMLParser.java:[line 438]
Known null at ShareXMLParser.java:[line 438]
Possible null pointer dereference in com.owncloud.android.lib.resources.shares.ShareXMLParser.fixPathForFolder(OCShare) due to return value of called method
In class com.owncloud.android.lib.resources.shares.ShareXMLParser
In method com.owncloud.android.lib.resources.shares.ShareXMLParser.skip(XmlPullParser)
At ShareXMLParser.java:[lines 517-522]
Switch statement found in com.owncloud.android.lib.resources.shares.ShareXMLParser.skip(XmlPullParser) where default case is missing
In class com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
In method com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.parseResponse(String)
At GetCapabilitiesRemoteOperation.java:[line 321]
Value 126
Method com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.parseResponse(String) is excessively complex, with a cyclomatic complexity of 126
In class com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
In method new com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation(OCCapability)
Field com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.currentCapability
Local variable named currentCapability
At GetCapabilitiesRemoteOperation.java:[line 188]
new com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation(OCCapability) may expose internal representation by storing an externally mutable object into GetCapabilitiesRemoteOperation.currentCapability
In class com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
In method com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.run(NextcloudClient)
Local variable stored in JVM register ?
Method invoked at GetCapabilitiesRemoteOperation.java:[line 207]
Known null at GetCapabilitiesRemoteOperation.java:[line 207]
Possible null pointer dereference in com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.run(NextcloudClient) due to return value of called method
In class com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation
In method com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.run(NextcloudClient)
Value loaded from response
Return value of com.nextcloud.common.OkHttpMethodBase.getResponseBodyAsString() of type String
Redundant null check at GetCapabilitiesRemoteOperation.java:[line 237]
Redundant nullcheck of response, which is known to be non-null in com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation.run(NextcloudClient)
In class com.owncloud.android.lib.resources.status.GetStatusRemoteOperation
In method new com.owncloud.android.lib.resources.status.GetStatusRemoteOperation(Context)
Field com.owncloud.android.lib.resources.status.GetStatusRemoteOperation.mContext
Local variable named context
At GetStatusRemoteOperation.java:[line 60]
new com.owncloud.android.lib.resources.status.GetStatusRemoteOperation(Context) may expose internal representation by storing an externally mutable object into GetStatusRemoteOperation.mContext
In class com.owncloud.android.lib.resources.status.GetStatusRemoteOperation
In method com.owncloud.android.lib.resources.status.GetStatusRemoteOperation.run(OwnCloudClient)
At GetStatusRemoteOperation.java:[line 186]
Method com.owncloud.android.lib.resources.status.GetStatusRemoteOperation.run(OwnCloudClient) performs algorithmic operations on the result of a toString() call
In class com.owncloud.android.lib.resources.status.OwnCloudVersion
In method com.owncloud.android.lib.resources.status.OwnCloudVersion.getParsedVersion(String)
Value java.lang.NumberFormatException
At OwnCloudVersion.java:[lines 101-114]
Method com.owncloud.android.lib.resources.status.OwnCloudVersion.getParsedVersion(String) declares RuntimeException in throws clause
In class com.owncloud.android.lib.resources.status.OwnCloudVersion
In method com.owncloud.android.lib.resources.status.OwnCloudVersion.toString()
At OwnCloudVersion.java:[line 60]
com.owncloud.android.lib.resources.status.OwnCloudVersion.toString() concatenates strings using + in a loop
In class com.owncloud.android.lib.resources.status.OwnCloudVersion$1
In method com.owncloud.android.lib.resources.status.OwnCloudVersion$1.newArray(int)
At OwnCloudVersion.java:[line 145]
Method com.owncloud.android.lib.resources.status.OwnCloudVersion$1.newArray(int) returns an array that appears not to be initialized
In class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile
In method new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(WebdavEntry, String)
At TrashbinFile.java:[line 96]
At TrashbinFile.java:[line 96]
Exception thrown in class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile at new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(WebdavEntry, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
In class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile
Field com.owncloud.android.lib.resources.trashbin.model.TrashbinFile.serialVersionUID
In TrashbinFile.java
Class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile defines a computed serialVersionUID that doesn't equate to the calculated value
In class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile
In method new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(Parcel)
At TrashbinFile.java:[line 153]
Constructor new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(Parcel) makes call to non-final method
In class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile
In method new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(WebdavEntry, String)
At TrashbinFile.java:[line 102]
Constructor new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(WebdavEntry, String) makes call to non-final method
In class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile$1
In method com.owncloud.android.lib.resources.trashbin.model.TrashbinFile$1.newArray(int)
At TrashbinFile.java:[line 142]
Method com.owncloud.android.lib.resources.trashbin.model.TrashbinFile$1.newArray(int) returns an array that appears not to be initialized
In class com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation
In method com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation.run(OwnCloudClient)
Need to close java.io.InputStream
At GetUserAvatarRemoteOperation.java:[line 102]
com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation.run(OwnCloudClient) may fail to close stream
In class com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation
In method com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation.run(OwnCloudClient)
At GetUserAvatarRemoteOperation.java:[line 142]
Method com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation.run(OwnCloudClient) manually handles closing an auto-closeable resource
In class com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation$ResultData
In method com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation$ResultData.getAvatarData()
Field com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation$ResultData.mAvatarData
At GetUserAvatarRemoteOperation.java:[line 197]
com.owncloud.android.lib.resources.users.GetUserAvatarRemoteOperation$ResultData.getAvatarData() may expose internal representation by returning GetUserAvatarRemoteOperation$ResultData.mAvatarData
In class com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation
In method com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation.run(NextcloudClient)
Local variable stored in JVM register ?
Dereferenced at GetUserInfoRemoteOperation.java:[line 82]
Known null at GetUserInfoRemoteOperation.java:[line 82]
Possible null pointer dereference in com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation.run(NextcloudClient) due to return value of called method