Project Information
Project:
FindBugs version: 3.0.1
Code analyzed:
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/BuildConfig.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/Quota$$Parcelable.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/RemoteOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/OperationCancelledException.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/OnRemoteOperationListener.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/ExceptionParser.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/RemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/RemoteOperationResult.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/operations/RemoteOperationResult$ResultCode.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudBasicCredentials.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/ExternalLinkType.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/UserInfo.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/Quota.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/Quota$$Parcelable$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudCredentialsFactory$OwnCloudAnonymousCredentials.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudCredentials.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudCredentialsFactory.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudClientManager.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudClientManagerFactory.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudClientManagerFactory$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/UserInfo$$Parcelable$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/DynamicSessionManager.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudClientManagerFactory$Policy.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/ExternalLink$$Parcelable$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudClientFactory.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/SingleSessionManager.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/ExternalLink$$Parcelable.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudAccount.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/UserInfo$$Parcelable.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudClient.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/OnDatatransferProgressListener.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/NetworkUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/BearerCredentials.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/FileRequestEntity$WriteException.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/ServerNameIndicator.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/CertificateCombinedException.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/BearerAuthScheme.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/FileRequestEntity.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/WebdavUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/ProgressiveDataTransfer.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/RedirectionPath.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/WebdavEntry.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/AdvancedSslSocketFactory.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/AdvancedX509TrustManager.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/ChunkFromFileChannelRequestEntity.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/network/WebdavEntry$MountType.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/ExternalLink.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/utils/HttpDeleteWithBody.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/utils/WebDavFileUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/utils/Log_OC.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/accounts/ExternalLinksOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/accounts/AccountTypeUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/accounts/AccountUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/accounts/AccountUtils$Constants.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/accounts/AccountUtils$AccountNotFoundException.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudBearerCredentials.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/OwnCloudSamlSsoCredentials.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/common/SimpleFactoryManager.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/ocs/responses/PrivateKey.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/ocs/OCSMeta.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/ocs/OCSResponse.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/ocs/ServerResponse.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/SendCSROperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/StorePrivateKeyOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation$ResultData.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetPrivateKeyOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetPublicKeyOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetRemoteUserInfoOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/DeletePublicKeyOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetPrivateKeyOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/users/GetRemoteUserInfoOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/comments/MarkCommentsAsReadRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/comments/CommentFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/OCSRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/trashbin/EmptyTrashbinRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/trashbin/RemoveTrashbinFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/trashbin/RestoreTrashbinFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/trashbin/model/TrashbinFile.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/trashbin/model/TrashbinFile$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/trashbin/ReadTrashbinFolderRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/status/OCCapability.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/status/CapabilityBooleanType.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/status/GetRemoteCapabilitiesOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/status/GetRemoteStatusOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/status/OwnCloudVersion.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/GetNotificationRemoteOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/models/PushResponse.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/models/Notification.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/models/RichObject.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/models/Action.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/RegisterAccountDeviceForNotificationsOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/GetNotificationsRemoteOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/GetNotificationsRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/UnregisterAccountDeviceForProxyOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/RegisterAccountDeviceForProxyOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/RegisterAccountDeviceForNotificationsOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/DeleteAllNotificationsRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/UnregisterAccountDeviceForNotificationsOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/GetNotificationRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/notifications/DeleteNotificationRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/GetRemoteSharesForFileOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/SharedWithMe.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/GetRemoteShareOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/ShareUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/ShareType.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/GetRemoteShareesOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/ShareXMLParser.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/SharePermissionsBuilder.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/GetRemoteSharesOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/OCShare.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/ShareToRemoteOperationResultParser.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/OCShare$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/RemoveRemoteShareOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/e2ee/UnlockFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/e2ee/LockFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/e2ee/UpdateMetadataRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/e2ee/GetMetadataRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/e2ee/StoreMetadataRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/e2ee/ToggleEncryptionRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/models/PreviewObjectAdapter.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/models/PreviewObject.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/GetActivitiesRemoteOperation$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/model/RichElementTypeAdapter.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/model/RichElementTypeAdapter$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/model/RichObject.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/model/RichElement.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/model/Activity.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/activities/GetActivitiesRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/UploadFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/ExistenceCheckRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/RenameFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/SearchRemoteOperation$SearchType.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/SearchRemoteOperation$SearchMethod.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/CheckEtagRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/ReadFileVersionsRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/MoveFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/ReadFolderRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/ChunkedFileUploadRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/CreateFolderRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/model/ServerFileInterface.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/model/FileVersion$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/model/RemoteFile$1.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/model/RemoteFile.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/model/FileVersion.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/CopyFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/ReadFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/RestoreFileVersionRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/RemoveFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/ToggleFavoriteRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/SearchRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/FileUtils.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/DownloadFileRemoteOperation.class
- /drone/src/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/owncloud/android/lib/resources/files/Chunk.class
Metrics
7816 lines of code analyzed,
in 156 classes,
in 23 packages.
High Priority Warnings |
56 |
7.16 |
Medium Priority Warnings |
132 |
16.89 |
Total Warnings
|
188
|
24.05
|
(* Defects per Thousand lines of non-commenting source statements)
Contents
Summary
Warnings
Click on a warning row to see full context information.
BC
|
Equals method for com.owncloud.android.lib.resources.files.Chunk assumes the argument is of type Chunk |
|
Bug type BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS (click for details)
In class com.owncloud.android.lib.resources.files.Chunk In method com.owncloud.android.lib.resources.files.Chunk.equals(Object) At Chunk.java:[line 46]
|
Eq
|
com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.equals(Object) fails for subtypes |
|
Bug type EQ_GETCLASS_AND_CLASS_CONSTANT (click for details)
In class com.owncloud.android.lib.common.network.AdvancedSslSocketFactory In method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.equals(Object) At AdvancedSslSocketFactory.java:[line 229]
|
Eq
|
com.owncloud.android.lib.resources.status.OwnCloudVersion defines compareTo(OwnCloudVersion) and uses Object.equals() |
|
Bug type EQ_COMPARETO_USE_OBJECT_EQUALS (click for details)
In class com.owncloud.android.lib.resources.status.OwnCloudVersion In method com.owncloud.android.lib.resources.status.OwnCloudVersion.compareTo(OwnCloudVersion) At OwnCloudVersion.java:[line 88]
|
HE
|
com.owncloud.android.lib.resources.files.Chunk defines equals and uses Object.hashCode() |
|
Bug type HE_EQUALS_USE_HASHCODE (click for details)
In class com.owncloud.android.lib.resources.files.Chunk In method com.owncloud.android.lib.resources.files.Chunk.equals(Object) At Chunk.java:[lines 46-48]
|
NP
|
com.owncloud.android.lib.resources.files.Chunk.equals(Object) does not check for null argument |
|
Bug type NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT (click for details)
In class com.owncloud.android.lib.resources.files.Chunk In method com.owncloud.android.lib.resources.files.Chunk.equals(Object) Parameter obj At Chunk.java:[lines 46-48]
|
OS
|
com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) may fail to close stream |
|
Bug type OS_OPEN_STREAM (click for details)
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 111]
|
OS
|
com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation.run(OwnCloudClient) may fail to close stream |
|
Bug type OS_OPEN_STREAM (click for details)
In class com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation In method com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation.run(OwnCloudClient) Need to close java.io.InputStream At GetRemoteUserAvatarOperation.java:[line 120]
|
RV
|
Exceptional return value of java.io.File.renameTo(File) ignored in com.owncloud.android.lib.common.utils.Log_OC.appendLog(String) |
|
Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details)
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 210]
|
RV
|
Exceptional return value of java.io.File.delete() ignored in com.owncloud.android.lib.common.utils.Log_OC.deleteHistoryLogging() |
|
Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details)
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 181]
|
RV
|
Exceptional return value of java.io.File.createNewFile() ignored in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) |
|
Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details)
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.createNewFile() At DownloadFileRemoteOperation.java:[line 110]
|
RV
|
Exceptional return value of java.io.File.delete() ignored in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) |
|
Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details)
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 180]
|
RV
|
Exceptional return value of java.io.File.mkdirs() ignored in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.run(OwnCloudClient) |
|
Bug type RV_RETURN_VALUE_IGNORED_BAD_PRACTICE (click for details)
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 83]
|
Se
|
Class com.owncloud.android.lib.common.operations.RemoteOperationResult defines non-transient non-serializable instance field mNotificationData |
|
Bug type SE_BAD_FIELD (click for details)
In class com.owncloud.android.lib.common.operations.RemoteOperationResult Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mNotificationData Actual type com.owncloud.android.lib.resources.notifications.models.Notification In RemoteOperationResult.java
|
Se
|
Class com.owncloud.android.lib.common.operations.RemoteOperationResult defines non-transient non-serializable instance field mPushResponse |
|
Bug type SE_BAD_FIELD (click for details)
In class com.owncloud.android.lib.common.operations.RemoteOperationResult Field com.owncloud.android.lib.common.operations.RemoteOperationResult.mPushResponse Actual type com.owncloud.android.lib.resources.notifications.models.PushResponse In RemoteOperationResult.java
|
BED
|
Method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.createSocket(String, int, InetAddress, int, HttpConnectionParams) declares throwing two or more exceptions related by inheritance |
|
Bug type BED_HIERARCHICAL_EXCEPTION_DECLARATION (click for details)
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 166-188]
|
BED
|
Non derivable method new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore) declares throwing an exception that isn't thrown |
|
Bug type BED_BOGUS_EXCEPTION_DECLARATION (click for details)
In class com.owncloud.android.lib.common.network.AdvancedX509TrustManager In method new com.owncloud.android.lib.common.network.AdvancedX509TrustManager(KeyStore) At AdvancedX509TrustManager.java:[line 63] Value java.security.cert.CertStoreException
|
CLI
|
Method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) accesses list or array with constant index |
|
Bug type CLI_CONSTANT_LIST_INDEX (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 111]
|
CLI
|
Method com.owncloud.android.lib.common.utils.Log_OC.appendLog(String) accesses list or array with constant index |
|
Bug type CLI_CONSTANT_LIST_INDEX (click for details)
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 208]
|
FCBL
|
Class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser defines fields that are used only as locals |
|
Bug type FCBL_FIELD_COULD_BE_LOCAL (click for details)
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser Field com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.mOwnCloudVersion At ShareToRemoteOperationResultParser.java:[line 48]
|
FCCD
|
Class com.owncloud.android.lib.common.DynamicSessionManager has a circular dependency with other classes |
|
Bug type FCCD_FIND_CLASS_CIRCULAR_DEPENDENCY (click for details)
In class com.owncloud.android.lib.common.DynamicSessionManager In class com.owncloud.android.lib.common.SingleSessionManager In class com.owncloud.android.lib.common.OwnCloudAccount In class com.owncloud.android.lib.common.OwnCloudCredentialsFactory In class com.owncloud.android.lib.common.OwnCloudSamlSsoCredentials In class com.owncloud.android.lib.common.OwnCloudClient In class com.owncloud.android.lib.common.OwnCloudClientManagerFactory At DynamicSessionManager.java:[lines 20-59]
|
FCCD
|
Class com.owncloud.android.lib.common.OwnCloudClient has a circular dependency with other classes |
|
Bug type FCCD_FIND_CLASS_CIRCULAR_DEPENDENCY (click for details)
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 61-460]
|
ISB
|
Method com.owncloud.android.lib.common.OwnCloudClient.getCookiesString() concatenates the result of a toString() call |
|
Bug type ISB_TOSTRING_APPENDING (click for details)
In class com.owncloud.android.lib.common.OwnCloudClient In method com.owncloud.android.lib.common.OwnCloudClient.getCookiesString() At OwnCloudClient.java:[line 424]
|
LEST
|
Method com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity.writeRequest(OutputStream) throws alternative exception from catch block without history |
|
Bug type LEST_LOST_EXCEPTION_STACK_TRACE (click for details)
In class com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity In method com.owncloud.android.lib.common.network.ChunkFromFileChannelRequestEntity.writeRequest(OutputStream) At ChunkFromFileChannelRequestEntity.java:[line 154]
|
LEST
|
Method com.owncloud.android.lib.common.network.FileRequestEntity.writeRequest(OutputStream) throws alternative exception from catch block without history |
|
Bug type LEST_LOST_EXCEPTION_STACK_TRACE (click for details)
In class com.owncloud.android.lib.common.network.FileRequestEntity In method com.owncloud.android.lib.common.network.FileRequestEntity.writeRequest(OutputStream) At FileRequestEntity.java:[line 140]
|
LSYC
|
Method com.owncloud.android.lib.common.network.BearerAuthScheme.authenticate(BearerCredentials, String) creates local variable-based synchronized collection |
|
Bug type LSYC_LOCAL_SYNCHRONIZED_COLLECTION (click for details)
In class com.owncloud.android.lib.common.network.BearerAuthScheme In method com.owncloud.android.lib.common.network.BearerAuthScheme.authenticate(BearerCredentials, String) At BearerAuthScheme.java:[line 220]
|
MDM
|
Method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, String, int) encodes String bytes without specifying the character encoding |
|
Bug type MDM_STRING_BYTES_ENCODING (click for details)
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 239]
|
MDM
|
Method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, HttpMethod) encodes String bytes without specifying the character encoding |
|
Bug type MDM_STRING_BYTES_ENCODING (click for details)
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 329]
|
MDM
|
Method com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File) encodes String bytes without specifying the character encoding |
|
Bug type MDM_STRING_BYTES_ENCODING (click for details)
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 60]
|
MDM
|
Method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) encodes String bytes without specifying the character encoding |
|
Bug type MDM_STRING_BYTES_ENCODING (click for details)
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 78]
|
NP
|
Possible null pointer dereference of fos in com.owncloud.android.lib.common.network.NetworkUtils.addCertToKnownServersStore(Certificate, Context) on exception path |
|
Bug type NP_NULL_ON_SOME_PATH_EXCEPTION (click for details)
In class com.owncloud.android.lib.common.network.NetworkUtils In method com.owncloud.android.lib.common.network.NetworkUtils.addCertToKnownServersStore(Certificate, Context) Value loaded from fos Dereferenced at NetworkUtils.java:[line 183] Null value at NetworkUtils.java:[line 178] Known null at NetworkUtils.java:[line 180]
|
PCOA
|
Constructor new com.owncloud.android.lib.common.network.BearerAuthScheme(String) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.common.network.BearerAuthScheme In method new com.owncloud.android.lib.common.network.BearerAuthScheme(String) At BearerAuthScheme.java:[line 79]
|
PCOA
|
Constructor new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, int, String, Header[]) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.common.operations.RemoteOperationResult In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, int, String, Header[]) At RemoteOperationResult.java:[line 379]
|
PCOA
|
Constructor new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, int, Header[]) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.common.operations.RemoteOperationResult In method new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, int, Header[]) At RemoteOperationResult.java:[line 224]
|
PCOA
|
Constructor new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, boolean) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.common.OwnCloudClient In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, boolean) At OwnCloudClient.java:[line 110]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.files.model.FileVersion(Parcel) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
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 122]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.files.model.FileVersion(String, WebdavEntry) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.resources.files.model.FileVersion In method new com.owncloud.android.lib.resources.files.model.FileVersion(String, WebdavEntry) At FileVersion.java:[line 89]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.files.model.RemoteFile(Parcel) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.resources.files.model.RemoteFile In method new com.owncloud.android.lib.resources.files.model.RemoteFile(Parcel) At RemoteFile.java:[line 151]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.files.model.RemoteFile(WebdavEntry) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.resources.files.model.RemoteFile In method new com.owncloud.android.lib.resources.files.model.RemoteFile(WebdavEntry) At RemoteFile.java:[line 90]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.shares.OCShare(Parcel) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
In class com.owncloud.android.lib.resources.shares.OCShare In method new com.owncloud.android.lib.resources.shares.OCShare(Parcel) At OCShare.java:[line 198]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(Parcel) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
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 132]
|
PCOA
|
Constructor new com.owncloud.android.lib.resources.trashbin.model.TrashbinFile(WebdavEntry, String) makes call to non-final method |
|
Bug type PCOA_PARTIALLY_CONSTRUCTED_OBJECT_ACCESS (click for details)
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]
|
PDP
|
Method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket) defines parameters more abstractly than needed to function properly |
|
Bug type PDP_POORLY_DEFINED_PARAMETER (click for details)
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 263] Value socket
|
SPP
|
Method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket) checks a reference for null before calling instanceof |
|
Bug type SPP_NULL_BEFORE_INSTANCEOF (click for details)
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 279]
|
SPP
|
Method com.owncloud.android.lib.common.network.AdvancedX509TrustManager.checkServerTrusted(X509Certificate[], String) checks a reference for null before calling instanceof |
|
Bug type SPP_NULL_BEFORE_INSTANCEOF (click for details)
In class com.owncloud.android.lib.common.network.AdvancedX509TrustManager In method com.owncloud.android.lib.common.network.AdvancedX509TrustManager.checkServerTrusted(X509Certificate[], String) At AdvancedX509TrustManager.java:[line 123]
|
SPP
|
Method com.owncloud.android.lib.common.operations.RemoteOperation.run() calls equals on an enum instance |
|
Bug type SPP_EQUALS_ON_ENUM (click for details)
In class com.owncloud.android.lib.common.operations.RemoteOperation In method com.owncloud.android.lib.common.operations.RemoteOperation.run() At RemoteOperation.java:[line 323]
|
SPP
|
Method com.owncloud.android.lib.resources.shares.OCShare.isPasswordProtected() calls equals on an enum instance |
|
Bug type SPP_EQUALS_ON_ENUM (click for details)
In class com.owncloud.android.lib.resources.shares.OCShare In method com.owncloud.android.lib.resources.shares.OCShare.isPasswordProtected() At OCShare.java:[line 166]
|
SUA
|
Method com.owncloud.android.lib.common.ExternalLink$$Parcelable$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
In class com.owncloud.android.lib.common.ExternalLink$$Parcelable$1 In method com.owncloud.android.lib.common.ExternalLink$$Parcelable$1.newArray(int) At ExternalLink$$Parcelable.java:[line 32]
|
SUA
|
Method com.owncloud.android.lib.common.Quota$$Parcelable$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
In class com.owncloud.android.lib.common.Quota$$Parcelable$1 In method com.owncloud.android.lib.common.Quota$$Parcelable$1.newArray(int) At Quota$$Parcelable.java:[line 32]
|
SUA
|
Method com.owncloud.android.lib.common.UserInfo$$Parcelable$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
In class com.owncloud.android.lib.common.UserInfo$$Parcelable$1 In method com.owncloud.android.lib.common.UserInfo$$Parcelable$1.newArray(int) At UserInfo$$Parcelable.java:[line 33]
|
SUA
|
Method com.owncloud.android.lib.resources.files.model.FileVersion$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
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 111]
|
SUA
|
Method com.owncloud.android.lib.resources.files.model.RemoteFile$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
In class com.owncloud.android.lib.resources.files.model.RemoteFile$1 In method com.owncloud.android.lib.resources.files.model.RemoteFile$1.newArray(int) At RemoteFile.java:[line 140]
|
SUA
|
Method com.owncloud.android.lib.resources.shares.OCShare$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
In class com.owncloud.android.lib.resources.shares.OCShare$1 In method com.owncloud.android.lib.resources.shares.OCShare$1.newArray(int) At OCShare.java:[line 188]
|
SUA
|
Method com.owncloud.android.lib.resources.trashbin.model.TrashbinFile$1.newArray(int) returns an array that appears not to be initialized |
|
Bug type SUA_SUSPICIOUS_UNINITIALIZED_ARRAY (click for details)
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 121]
|
Dm
|
Found reliance on default encoding in new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, String, int): String.getBytes() |
|
Bug type DM_DEFAULT_ENCODING (click for details)
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 239]
|
Dm
|
Found reliance on default encoding in new com.owncloud.android.lib.common.operations.RemoteOperationResult(boolean, HttpMethod): String.getBytes() |
|
Bug type DM_DEFAULT_ENCODING (click for details)
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 329]
|
Dm
|
Found reliance on default encoding in com.owncloud.android.lib.common.utils.Log_OC.appendLog(String): new java.io.FileWriter(File, boolean) |
|
Bug type DM_DEFAULT_ENCODING (click for details)
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 222]
|
Dm
|
Found reliance on default encoding in com.owncloud.android.lib.common.utils.Log_OC.startLogging(Context): new java.io.FileWriter(File, boolean) |
|
Bug type DM_DEFAULT_ENCODING (click for details)
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 132]
|
Dm
|
Found reliance on default encoding in com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File): String.getBytes() |
|
Bug type DM_DEFAULT_ENCODING (click for details)
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 60]
|
Dm
|
Found reliance on default encoding in com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String): String.getBytes() |
|
Bug type DM_DEFAULT_ENCODING (click for details)
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 78]
|
EI
|
com.owncloud.android.lib.resources.activities.model.Activity.getDate() may expose internal representation by returning Activity.date |
|
Bug type EI_EXPOSE_REP (click for details)
In class com.owncloud.android.lib.resources.activities.model.Activity In method com.owncloud.android.lib.resources.activities.model.Activity.getDate() Field com.owncloud.android.lib.resources.activities.model.Activity.date At Activity.java:[line 46]
|
EI
|
com.owncloud.android.lib.resources.activities.model.Activity.getDatetime() may expose internal representation by returning Activity.datetime |
|
Bug type EI_EXPOSE_REP (click for details)
In class com.owncloud.android.lib.resources.activities.model.Activity In method com.owncloud.android.lib.resources.activities.model.Activity.getDatetime() Field com.owncloud.android.lib.resources.activities.model.Activity.datetime At Activity.java:[line 44]
|
EI
|
com.owncloud.android.lib.resources.notifications.models.Notification.getDatetime() may expose internal representation by returning Notification.datetime |
|
Bug type EI_EXPOSE_REP (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Notification In method com.owncloud.android.lib.resources.notifications.models.Notification.getDatetime() Field com.owncloud.android.lib.resources.notifications.models.Notification.datetime At Notification.java:[line 68]
|
EI
|
com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation$ResultData.getAvatarData() may expose internal representation by returning GetRemoteUserAvatarOperation$ResultData.mAvatarData |
|
Bug type EI_EXPOSE_REP (click for details)
In class com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation$ResultData In method com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation$ResultData.getAvatarData() Field com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation$ResultData.mAvatarData At GetRemoteUserAvatarOperation.java:[line 215]
|
EI2
|
new com.owncloud.android.lib.resources.notifications.models.Notification(int, String, String, Date, String, String, String, String, Map, String, String, Map, String, String, Collection) may expose internal representation by storing an externally mutable object into Notification.datetime |
|
Bug type EI_EXPOSE_REP2 (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Notification In method new com.owncloud.android.lib.resources.notifications.models.Notification(int, String, String, Date, String, String, String, String, Map, String, String, Map, String, String, Collection) Field com.owncloud.android.lib.resources.notifications.models.Notification.datetime Local variable named datetime At Notification.java:[line 47]
|
EI2
|
com.owncloud.android.lib.resources.notifications.models.Notification.setDatetime(Date) may expose internal representation by storing an externally mutable object into Notification.datetime |
|
Bug type EI_EXPOSE_REP2 (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Notification In method com.owncloud.android.lib.resources.notifications.models.Notification.setDatetime(Date) Field com.owncloud.android.lib.resources.notifications.models.Notification.datetime Local variable named datetime At Notification.java:[line 45]
|
MS
|
Public static com.owncloud.android.lib.common.utils.Log_OC.getLogFileNames() may expose internal representation by returning Log_OC.mLogFileNames |
|
Bug type MS_EXPOSE_REP (click for details)
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 246]
|
JLM
|
Synchronization performed on java.util.concurrent.atomic.AtomicBoolean in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) |
|
Bug type JLM_JSR166_UTILCONCURRENT_MONITORENTER (click for details)
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 transferEncodingHeader At DownloadFileRemoteOperation.java:[line 123]
|
JLM
|
Synchronization performed on java.util.concurrent.atomic.AtomicBoolean in com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.cancel() |
|
Bug type JLM_JSR166_UTILCONCURRENT_MONITORENTER (click for details)
In class com.owncloud.android.lib.resources.files.UploadFileRemoteOperation In method com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.cancel() Type java.util.concurrent.atomic.AtomicBoolean Value loaded from field com.owncloud.android.lib.resources.files.UploadFileRemoteOperation.cancellationRequested At UploadFileRemoteOperation.java:[line 184]
|
LI
|
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() |
|
Bug type LI_LAZY_INIT_UPDATE_STATIC (click for details)
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 189-190]
|
Bx
|
Boxing/unboxing to parse a primitive new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) |
|
Bug type DM_BOXED_PRIMITIVE_FOR_PARSING (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) Called method Integer.intValue() Should call Integer.parseInt(String) instead At WebdavEntry.java:[line 277]
|
IOI
|
Method com.owncloud.android.lib.common.network.NetworkUtils.getKnownServersStore(Context) uses a FileInputStream or FileOutputStream constructor |
|
Bug type IOI_USE_OF_FILE_STREAM_CONSTRUCTORS (click for details)
In class com.owncloud.android.lib.common.network.NetworkUtils In method com.owncloud.android.lib.common.network.NetworkUtils.getKnownServersStore(Context) At NetworkUtils.java:[line 158]
|
IOI
|
Method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) uses a FileInputStream or FileOutputStream constructor |
|
Bug type IOI_USE_OF_FILE_STREAM_CONSTRUCTORS (click for details)
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 112]
|
NAB
|
Method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) converts String to primitive using excessive boxing |
|
Bug type NAB_NEEDLESS_BOXING_PARSE (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 277]
|
NAB
|
Method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) converts String to primitive using excessive boxing |
|
Bug type NAB_NEEDLESS_BOXING_PARSE (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 285]
|
NAB
|
Method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, boolean) needlessly boxes a boolean constant |
|
Bug type NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION (click for details)
In class com.owncloud.android.lib.common.OwnCloudClient In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, boolean) At OwnCloudClient.java:[line 106]
|
PRMC
|
Method com.owncloud.android.lib.resources.files.CopyFileRemoteOperation.run(OwnCloudClient) appears to call the same method on the same object redundantly |
|
Bug type PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS (click for details)
In class com.owncloud.android.lib.resources.files.CopyFileRemoteOperation In method com.owncloud.android.lib.resources.files.CopyFileRemoteOperation.run(OwnCloudClient) At CopyFileRemoteOperation.java:[line 105] Value getWebdavUri()Landroid/net/Uri;
|
PRMC
|
Method com.owncloud.android.lib.resources.files.MoveFileRemoteOperation.run(OwnCloudClient) appears to call the same method on the same object redundantly |
|
Bug type PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS (click for details)
In class com.owncloud.android.lib.resources.files.MoveFileRemoteOperation In method com.owncloud.android.lib.resources.files.MoveFileRemoteOperation.run(OwnCloudClient) At MoveFileRemoteOperation.java:[line 111] Value getWebdavUri()Landroid/net/Uri;
|
PRMC
|
Method com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation.readData(MultiStatus, OwnCloudClient) appears to call the same method on the same object redundantly |
|
Bug type PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS (click for details)
In class com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation In method com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation.readData(MultiStatus, OwnCloudClient) At ReadFolderRemoteOperation.java:[line 151] Value getWebdavUri()Landroid/net/Uri;
|
PRMC
|
Method com.owncloud.android.lib.resources.files.RenameFileRemoteOperation.run(OwnCloudClient) appears to call the same method on the same object redundantly |
|
Bug type PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS (click for details)
In class com.owncloud.android.lib.resources.files.RenameFileRemoteOperation In method com.owncloud.android.lib.resources.files.RenameFileRemoteOperation.run(OwnCloudClient) At RenameFileRemoteOperation.java:[line 102] Value getWebdavUri()Landroid/net/Uri;
|
PRMC
|
Method com.owncloud.android.lib.resources.files.RestoreFileVersionRemoteOperation.run(OwnCloudClient) appears to call the same method on the same object redundantly |
|
Bug type PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS (click for details)
In class com.owncloud.android.lib.resources.files.RestoreFileVersionRemoteOperation In method com.owncloud.android.lib.resources.files.RestoreFileVersionRemoteOperation.run(OwnCloudClient) At RestoreFileVersionRemoteOperation.java:[line 82] Value getNewWebdavUri()Landroid/net/Uri;
|
PRMC
|
Method com.owncloud.android.lib.resources.trashbin.RestoreTrashbinFileRemoteOperation.run(OwnCloudClient) appears to call the same method on the same object redundantly |
|
Bug type PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS (click for details)
In class com.owncloud.android.lib.resources.trashbin.RestoreTrashbinFileRemoteOperation In method com.owncloud.android.lib.resources.trashbin.RestoreTrashbinFileRemoteOperation.run(OwnCloudClient) At RestoreTrashbinFileRemoteOperation.java:[line 82] Value getNewWebdavUri()Landroid/net/Uri;
|
SBSC
|
com.owncloud.android.lib.common.OwnCloudClient.getCookiesString() concatenates strings using + in a loop |
|
Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details)
In class com.owncloud.android.lib.common.OwnCloudClient In method com.owncloud.android.lib.common.OwnCloudClient.getCookiesString() At OwnCloudClient.java:[line 424]
|
SBSC
|
com.owncloud.android.lib.resources.status.OwnCloudVersion.toString() concatenates strings using + in a loop |
|
Bug type SBSC_USE_STRINGBUFFER_CONCATENATION (click for details)
In class com.owncloud.android.lib.resources.status.OwnCloudVersion In method com.owncloud.android.lib.resources.status.OwnCloudVersion.toString() At OwnCloudVersion.java:[line 77]
|
UCPM
|
Method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) passes constant String of length 1 to character overridden method |
|
Bug type UCPM_USE_CHARACTER_PARAMETERIZED_METHOD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 136]
|
UCPM
|
Method com.owncloud.android.lib.common.utils.WebDavFileUtils.readData(MultiStatus, OwnCloudClient, boolean, boolean, String) passes constant String of length 1 to character overridden method |
|
Bug type UCPM_USE_CHARACTER_PARAMETERIZED_METHOD (click for details)
In class com.owncloud.android.lib.common.utils.WebDavFileUtils In method com.owncloud.android.lib.common.utils.WebDavFileUtils.readData(MultiStatus, OwnCloudClient, boolean, boolean, String) At WebDavFileUtils.java:[line 73]
|
WMI
|
com.owncloud.android.lib.common.SingleSessionManager.saveAllClients(Context, String) makes inefficient use of keySet iterator instead of entrySet iterator |
|
Bug type WMI_WRONG_MAP_ITERATOR (click for details)
In class com.owncloud.android.lib.common.SingleSessionManager In method com.owncloud.android.lib.common.SingleSessionManager.saveAllClients(Context, String) Field com.owncloud.android.lib.common.SingleSessionManager.mClientsWithKnownUsername At SingleSessionManager.java:[line 207]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.common.accounts.ExternalLinksOperation In method com.owncloud.android.lib.common.accounts.ExternalLinksOperation.run(OwnCloudClient) At ExternalLinksOperation.java:[line 85] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At ExternalLinksOperation.java:[line 75]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.activities.GetActivitiesRemoteOperation In method com.owncloud.android.lib.resources.activities.GetActivitiesRemoteOperation.run(OwnCloudClient) At GetActivitiesRemoteOperation.java:[line 114] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; Unknown source com/owncloud/android/lib/resources/activities/GetActivitiesRemoteOperation.nextUrl At GetActivitiesRemoteOperation.java:[line 98] At GetActivitiesRemoteOperation.java:[line 100] At GetActivitiesRemoteOperation.java:[line 103] At GetActivitiesRemoteOperation.java:[line 108]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.e2ee.GetMetadataRemoteOperation In method com.owncloud.android.lib.resources.e2ee.GetMetadataRemoteOperation.run(OwnCloudClient) At GetMetadataRemoteOperation.java:[line 79] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; Unknown source com/owncloud/android/lib/resources/e2ee/GetMetadataRemoteOperation.fileId At GetMetadataRemoteOperation.java:[line 79]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
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 103] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getWebdavUri()Landroid/net/Uri; Unknown source com/owncloud/android/lib/common/network/WebdavUtils.encodePath(Ljava/lang/String;)Ljava/lang/String; At DownloadFileRemoteOperation.java:[line 103]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.notifications.GetNotificationsRemoteOperation In method com.owncloud.android.lib.resources.notifications.GetNotificationsRemoteOperation.run(OwnCloudClient) At GetNotificationsRemoteOperation.java:[line 93] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At GetNotificationsRemoteOperation.java:[line 86] At GetNotificationsRemoteOperation.java:[line 88]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.shares.GetRemoteShareesOperation In method com.owncloud.android.lib.resources.shares.GetRemoteShareesOperation.run(OwnCloudClient) At GetRemoteShareesOperation.java:[line 132] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source android/net/Uri.toString()Ljava/lang/String; At GetRemoteShareesOperation.java:[line 132]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.shares.GetRemoteShareOperation In method com.owncloud.android.lib.resources.shares.GetRemoteShareOperation.run(OwnCloudClient) At GetRemoteShareOperation.java:[line 62] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; Unknown source java/lang/Long.toString(J)Ljava/lang/String; At GetRemoteShareOperation.java:[line 62]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation In method com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation.run(OwnCloudClient) At GetRemoteSharesForFileOperation.java:[line 81] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At GetRemoteSharesForFileOperation.java:[line 81]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.shares.GetRemoteSharesOperation In method com.owncloud.android.lib.resources.shares.GetRemoteSharesOperation.run(OwnCloudClient) At GetRemoteSharesOperation.java:[line 54] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At GetRemoteSharesOperation.java:[line 54]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.status.GetRemoteCapabilitiesOperation In method com.owncloud.android.lib.resources.status.GetRemoteCapabilitiesOperation.run(OwnCloudClient) At GetRemoteCapabilitiesOperation.java:[line 163] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source android/net/Uri.toString()Ljava/lang/String; At GetRemoteCapabilitiesOperation.java:[line 163]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.status.GetRemoteStatusOperation In method com.owncloud.android.lib.resources.status.GetRemoteStatusOperation.tryConnection(OwnCloudClient) At GetRemoteStatusOperation.java:[line 80] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source android/net/Uri.toString()Ljava/lang/String; At GetRemoteStatusOperation.java:[line 78] At GetRemoteStatusOperation.java:[line 80]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.status.GetRemoteStatusOperation In method com.owncloud.android.lib.resources.status.GetRemoteStatusOperation.tryConnection(OwnCloudClient) At GetRemoteStatusOperation.java:[line 100] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/operations/RemoteOperationResult.getRedirectedLocation()Ljava/lang/String; At GetRemoteStatusOperation.java:[line 91] At GetRemoteStatusOperation.java:[line 103]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.users.GetPrivateKeyOperation In method com.owncloud.android.lib.resources.users.GetPrivateKeyOperation.run(OwnCloudClient) At GetPrivateKeyOperation.java:[line 67] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At GetPrivateKeyOperation.java:[line 67]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.users.GetPublicKeyOperation In method com.owncloud.android.lib.resources.users.GetPublicKeyOperation.run(OwnCloudClient) At GetPublicKeyOperation.java:[line 76] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At GetPublicKeyOperation.java:[line 76]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation In method com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation.run(OwnCloudClient) At GetRemoteUserAvatarOperation.java:[line 83] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/resources/users/GetRemoteUserAvatarOperation.getAvatarUri(Lcom/owncloud/android/lib/common/OwnCloudClient;I)Ljava/lang/String; At GetRemoteUserAvatarOperation.java:[line 80]
|
SECHPP
|
Concatenating user-controlled input into a URL |
|
Bug type HTTP_PARAMETER_POLLUTION (click for details)
In class com.owncloud.android.lib.resources.users.GetRemoteUserInfoOperation In method com.owncloud.android.lib.resources.users.GetRemoteUserInfoOperation.run(OwnCloudClient) At GetRemoteUserInfoOperation.java:[line 102] Sink method org/apache/commons/httpclient/methods/GetMethod.<init>(Ljava/lang/String;)V Sink parameter 0 Unknown source com/owncloud/android/lib/common/OwnCloudClient.getBaseUri()Landroid/net/Uri; At GetRemoteUserInfoOperation.java:[line 95]
|
SECMD5
|
MD5 is not a recommended cryptographic hash function |
|
Bug type WEAK_MESSAGE_DIGEST_MD5 (click for details)
In class com.owncloud.android.lib.resources.files.FileUtils In method com.owncloud.android.lib.resources.files.FileUtils.md5Sum(File) At FileUtils.java:[line 59] Value MD5
|
CC
|
Method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) is excessively complex, with a cyclomatic complexity of 57 |
|
Bug type CC_CYCLOMATIC_COMPLEXITY (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 98] Value 57
|
CC
|
Method com.owncloud.android.lib.resources.status.GetRemoteCapabilitiesOperation.run(OwnCloudClient) is excessively complex, with a cyclomatic complexity of 84 |
|
Bug type CC_CYCLOMATIC_COMPLEXITY (click for details)
In class com.owncloud.android.lib.resources.status.GetRemoteCapabilitiesOperation In method com.owncloud.android.lib.resources.status.GetRemoteCapabilitiesOperation.run(OwnCloudClient) At GetRemoteCapabilitiesOperation.java:[line 154] Value 84
|
CE
|
Method com.owncloud.android.lib.common.ExternalLink$$Parcelable.read(Parcel, IdentityCollection) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
In class com.owncloud.android.lib.common.ExternalLink$$Parcelable In method com.owncloud.android.lib.common.ExternalLink$$Parcelable.read(Parcel, IdentityCollection) At ExternalLink$$Parcelable.java:[lines 80-108] Value com.owncloud.android.lib.common.ExternalLink
|
CE
|
Method com.owncloud.android.lib.common.ExternalLink$$Parcelable.write(ExternalLink, Parcel, int, IdentityCollection) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
In class com.owncloud.android.lib.common.ExternalLink$$Parcelable In method com.owncloud.android.lib.common.ExternalLink$$Parcelable.write(ExternalLink, Parcel, int, IdentityCollection) At ExternalLink$$Parcelable.java:[lines 48-67] Value com.owncloud.android.lib.common.ExternalLink
|
CE
|
Method com.owncloud.android.lib.common.UserInfo$$Parcelable.read(Parcel, IdentityCollection) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
In class com.owncloud.android.lib.common.UserInfo$$Parcelable In method com.owncloud.android.lib.common.UserInfo$$Parcelable.read(Parcel, IdentityCollection) At UserInfo$$Parcelable.java:[lines 90-131] Value com.owncloud.android.lib.common.UserInfo
|
CE
|
Method com.owncloud.android.lib.common.UserInfo$$Parcelable.write(UserInfo, Parcel, int, IdentityCollection) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
In class com.owncloud.android.lib.common.UserInfo$$Parcelable In method com.owncloud.android.lib.common.UserInfo$$Parcelable.write(UserInfo, Parcel, int, IdentityCollection) At UserInfo$$Parcelable.java:[lines 49-77] Value com.owncloud.android.lib.common.UserInfo
|
CE
|
Method com.owncloud.android.lib.common.utils.WebDavFileUtils.fillOCFile(WebdavEntry) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
In class com.owncloud.android.lib.common.utils.WebDavFileUtils In method com.owncloud.android.lib.common.utils.WebDavFileUtils.fillOCFile(WebdavEntry) At WebDavFileUtils.java:[lines 97-108] Value com.owncloud.android.lib.common.network.WebdavEntry
|
CE
|
Method com.owncloud.android.lib.resources.activities.models.PreviewObjectAdapter.readObject(JsonReader) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
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 64-100] Value com.owncloud.android.lib.resources.activities.models.PreviewObject
|
CE
|
Method com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation.fillOCFile(WebdavEntry) excessively uses methods of another class |
|
Bug type CE_CLASS_ENVY (click for details)
In class com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation In method com.owncloud.android.lib.resources.files.ReadFolderRemoteOperation.fillOCFile(WebdavEntry) At ReadFolderRemoteOperation.java:[lines 165-183] Value com.owncloud.android.lib.common.network.WebdavEntry
|
DLS
|
Dead store to version in com.owncloud.android.lib.common.accounts.AccountUtils.constructFullURLForAccount(Context, Account) |
|
Bug type DLS_DEAD_LOCAL_STORE (click for details)
In class com.owncloud.android.lib.common.accounts.AccountUtils In method com.owncloud.android.lib.common.accounts.AccountUtils.constructFullURLForAccount(Context, Account) Local variable named version At AccountUtils.java:[line 90]
|
DLS
|
Dead store to version in com.owncloud.android.lib.common.OwnCloudClientFactory.createOwnCloudClient(Account, Context) |
|
Bug type DLS_DEAD_LOCAL_STORE (click for details)
In class com.owncloud.android.lib.common.OwnCloudClientFactory In method com.owncloud.android.lib.common.OwnCloudClientFactory.createOwnCloudClient(Account, Context) Local variable named version At OwnCloudClientFactory.java:[line 114]
|
DLS
|
Dead store to version in com.owncloud.android.lib.resources.files.MoveFileRemoteOperation.run(OwnCloudClient) |
|
Bug type DLS_DEAD_LOCAL_STORE (click for details)
In class com.owncloud.android.lib.resources.files.MoveFileRemoteOperation In method com.owncloud.android.lib.resources.files.MoveFileRemoteOperation.run(OwnCloudClient) Local variable named version At MoveFileRemoteOperation.java:[line 92]
|
DRE
|
Method com.owncloud.android.lib.resources.status.OwnCloudVersion.getParsedVersion(String) declares RuntimeException in throws clause |
|
Bug type DRE_DECLARED_RUNTIME_EXCEPTION (click for details)
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 106-119]
|
LSC
|
Method com.owncloud.android.lib.common.operations.ExceptionParser.isInvalidCharacterException() makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.common.operations.ExceptionParser In method com.owncloud.android.lib.common.operations.ExceptionParser.isInvalidCharacterException() At ExceptionParser.java:[line 87]
|
LSC
|
Method com.owncloud.android.lib.common.operations.ExceptionParser.isInvalidCharacterException() makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.common.operations.ExceptionParser In method com.owncloud.android.lib.common.operations.ExceptionParser.isInvalidCharacterException() At ExceptionParser.java:[line 88]
|
LSC
|
Method com.owncloud.android.lib.common.operations.ExceptionParser.isVirusException() makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.common.operations.ExceptionParser In method com.owncloud.android.lib.common.operations.ExceptionParser.isVirusException() At ExceptionParser.java:[line 92]
|
LSC
|
Method com.owncloud.android.lib.common.operations.ExceptionParser.readError(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.common.operations.ExceptionParser In method com.owncloud.android.lib.common.operations.ExceptionParser.readError(XmlPullParser) At ExceptionParser.java:[line 111]
|
LSC
|
Method com.owncloud.android.lib.common.operations.ExceptionParser.readError(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.common.operations.ExceptionParser In method com.owncloud.android.lib.common.operations.ExceptionParser.readError(XmlPullParser) At ExceptionParser.java:[line 113]
|
LSC
|
Method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 145]
|
LSC
|
Method com.owncloud.android.lib.resources.files.model.FileVersion.isFolder() makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.files.model.FileVersion In method com.owncloud.android.lib.resources.files.model.FileVersion.isFolder() At FileVersion.java:[line 80]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) At ShareXMLParser.java:[line 245]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) At ShareXMLParser.java:[line 248]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) At ShareXMLParser.java:[line 253]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readData(XmlPullParser) At ShareXMLParser.java:[line 258]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 298]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 304]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 307]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 308]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 311]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 314]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 317]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 321]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 324]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 327]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 331]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 334]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 337]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 343]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 346]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 349]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 351]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 354]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 357]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 362]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readElement(XmlPullParser, ArrayList) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
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 365]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readMeta(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readMeta(XmlPullParser) At ShareXMLParser.java:[line 210]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readMeta(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readMeta(XmlPullParser) At ShareXMLParser.java:[line 213]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readMeta(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readMeta(XmlPullParser) At ShareXMLParser.java:[line 216]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readOCS(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readOCS(XmlPullParser) At ShareXMLParser.java:[line 181]
|
LSC
|
Method com.owncloud.android.lib.resources.shares.ShareXMLParser.readOCS(XmlPullParser) makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.readOCS(XmlPullParser) At ShareXMLParser.java:[line 183]
|
LSC
|
Method com.owncloud.android.lib.resources.trashbin.model.TrashbinFile.isFolder() makes literal string comparisons passing the literal as an argument |
|
Bug type LSC_LITERAL_STRING_COMPARISON (click for details)
In class com.owncloud.android.lib.resources.trashbin.model.TrashbinFile In method com.owncloud.android.lib.resources.trashbin.model.TrashbinFile.isFolder() At TrashbinFile.java:[line 74]
|
MOM
|
Class com.owncloud.android.lib.common.network.BearerAuthScheme 'overloads' a method with both instance and static versions |
|
Bug type MOM_MISLEADING_OVERLOAD_MODEL (click for details)
In class com.owncloud.android.lib.common.network.BearerAuthScheme In method com.owncloud.android.lib.common.network.BearerAuthScheme.authenticate(BearerCredentials) Value authenticate At BearerAuthScheme.java:[line 197]
|
NOS
|
Class com.owncloud.android.lib.common.network.WebdavUtils uses non owned variables to synchronize on |
|
Bug type NOS_NON_OWNED_SYNCHRONIZATION (click for details)
In class com.owncloud.android.lib.common.network.WebdavUtils In method com.owncloud.android.lib.common.network.WebdavUtils.parseResponseDate(String) At WebdavUtils.java:[line 59]
|
NP
|
Possible null pointer dereference in com.owncloud.android.lib.common.utils.Log_OC.deleteHistoryLogging() due to return value of called method |
|
Bug type NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE (click for details)
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 180] Known null at Log_OC.java:[line 179]
|
RCN
|
Redundant nullcheck of shares, which is known to be non-null in com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) |
|
Bug type RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE (click for details)
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 88]
|
REC
|
Exception is caught when Exception is not thrown in com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) |
|
Bug type REC_CATCH_EXCEPTION (click for details)
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 175]
|
SF
|
Switch statement found in com.owncloud.android.lib.common.operations.ExceptionParser.skip(XmlPullParser) where default case is missing |
|
Bug type SF_SWITCH_NO_DEFAULT (click for details)
In class com.owncloud.android.lib.common.operations.ExceptionParser In method com.owncloud.android.lib.common.operations.ExceptionParser.skip(XmlPullParser) At ExceptionParser.java:[lines 134-139]
|
SF
|
Switch statement found in com.owncloud.android.lib.resources.shares.ShareXMLParser.skip(XmlPullParser) where default case is missing |
|
Bug type SF_SWITCH_NO_DEFAULT (click for details)
In class com.owncloud.android.lib.resources.shares.ShareXMLParser In method com.owncloud.android.lib.resources.shares.ShareXMLParser.skip(XmlPullParser) At ShareXMLParser.java:[lines 435-440]
|
SPP
|
Method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) checks the size of a collection against zero rather than using isEmpty() |
|
Bug type SPP_USE_ISEMPTY (click for details)
In class com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser In method com.owncloud.android.lib.resources.shares.ShareToRemoteOperationResultParser.parse(String) At ShareToRemoteOperationResultParser.java:[line 86]
|
ST
|
Write to static field com.owncloud.android.lib.common.OwnCloudClient.sIntanceCounter from instance method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, boolean) |
|
Bug type ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD (click for details)
In class com.owncloud.android.lib.common.OwnCloudClient In method new com.owncloud.android.lib.common.OwnCloudClient(Uri, HttpConnectionManager, boolean) Field com.owncloud.android.lib.common.OwnCloudClient.sIntanceCounter At OwnCloudClient.java:[line 91]
|
STT
|
This method com.owncloud.android.lib.common.accounts.AccountUtils.getUsernameForAccount(Account) parses a String that is a field |
|
Bug type STT_STRING_PARSING_A_FIELD (click for details)
In class com.owncloud.android.lib.common.accounts.AccountUtils In method com.owncloud.android.lib.common.accounts.AccountUtils.getUsernameForAccount(Account) At AccountUtils.java:[line 147]
|
STT
|
This method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) parses a String that is a field |
|
Bug type STT_STRING_PARSING_A_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 107]
|
STT
|
This method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) parses a String that is a field |
|
Bug type STT_STRING_PARSING_A_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 118]
|
STT
|
This method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) parses a String that is a field |
|
Bug type STT_STRING_PARSING_A_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 121]
|
STT
|
This method com.owncloud.android.lib.common.network.WebdavEntry stores the value of a toString() call into a field |
|
Bug type STT_TOSTRING_STORED_IN_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 117]
|
STT
|
This method com.owncloud.android.lib.common.network.WebdavEntry stores the value of a toString() call into a field |
|
Bug type STT_TOSTRING_STORED_IN_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 213]
|
STT
|
This method com.owncloud.android.lib.common.network.WebdavEntry stores the value of a toString() call into a field |
|
Bug type STT_TOSTRING_STORED_IN_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 219]
|
STT
|
This method com.owncloud.android.lib.common.network.WebdavEntry stores the value of a toString() call into a field |
|
Bug type STT_TOSTRING_STORED_IN_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 293]
|
STT
|
This method com.owncloud.android.lib.common.network.WebdavEntry stores the value of a toString() call into a field |
|
Bug type STT_TOSTRING_STORED_IN_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 299]
|
STT
|
This method com.owncloud.android.lib.common.network.WebdavEntry stores the value of a toString() call into a field |
|
Bug type STT_TOSTRING_STORED_IN_FIELD (click for details)
In class com.owncloud.android.lib.common.network.WebdavEntry In method new com.owncloud.android.lib.common.network.WebdavEntry(MultiStatusResponse, String) At WebdavEntry.java:[line 311]
|
STT
|
This method com.owncloud.android.lib.common.OwnCloudSamlSsoCredentials.applyTo(OwnCloudClient) parses a String that is a field |
|
Bug type STT_STRING_PARSING_A_FIELD (click for details)
In class com.owncloud.android.lib.common.OwnCloudSamlSsoCredentials In method com.owncloud.android.lib.common.OwnCloudSamlSsoCredentials.applyTo(OwnCloudClient) At OwnCloudSamlSsoCredentials.java:[line 52]
|
UP
|
Static or private method com.owncloud.android.lib.common.ExternalLink$$Parcelable.write(ExternalLink, Parcel, int, IdentityCollection) has unused parameters |
|
Bug type UP_UNUSED_PARAMETER (click for details)
In class com.owncloud.android.lib.common.ExternalLink$$Parcelable In method com.owncloud.android.lib.common.ExternalLink$$Parcelable.write(ExternalLink, Parcel, int, IdentityCollection) Value Parameter 3: flags$$0 At ExternalLink$$Parcelable.java:[lines 48-67]
|
UP
|
Static or private method com.owncloud.android.lib.common.network.AdvancedSslSocketFactory.verifyPeerIdentity(String, int, Socket) has unused parameters |
|
Bug type UP_UNUSED_PARAMETER (click for details)
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 259-341]
|
UP
|
Static or private method com.owncloud.android.lib.common.Quota$$Parcelable.write(Quota, Parcel, int, IdentityCollection) has unused parameters |
|
Bug type UP_UNUSED_PARAMETER (click for details)
In class com.owncloud.android.lib.common.Quota$$Parcelable In method com.owncloud.android.lib.common.Quota$$Parcelable.write(Quota, Parcel, int, IdentityCollection) Value Parameter 3: flags$$0 At Quota$$Parcelable.java:[lines 48-59]
|
UrF
|
Unread public/protected field: com.owncloud.android.lib.resources.notifications.models.Action.label |
|
Bug type URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Action Field com.owncloud.android.lib.resources.notifications.models.Action.label At Action.java:[line 37]
|
UrF
|
Unread public/protected field: com.owncloud.android.lib.resources.notifications.models.Action.link |
|
Bug type URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Action Field com.owncloud.android.lib.resources.notifications.models.Action.link At Action.java:[line 37]
|
UrF
|
Unread public/protected field: com.owncloud.android.lib.resources.notifications.models.Action.primary |
|
Bug type URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Action Field com.owncloud.android.lib.resources.notifications.models.Action.primary At Action.java:[line 37]
|
UrF
|
Unread public/protected field: com.owncloud.android.lib.resources.notifications.models.Action.type |
|
Bug type URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD (click for details)
In class com.owncloud.android.lib.resources.notifications.models.Action Field com.owncloud.android.lib.resources.notifications.models.Action.type At Action.java:[line 37]
|
USBR
|
Method com.owncloud.android.lib.common.accounts.AccountUtils.buildAccountName(Uri, String) stores return result in local before immediately returning it |
|
Bug type USBR_UNNECESSARY_STORE_BEFORE_RETURN (click for details)
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 243]
|
USBR
|
Method com.owncloud.android.lib.common.network.BearerCredentials.hashCode() stores return result in local before immediately returning it |
|
Bug type USBR_UNNECESSARY_STORE_BEFORE_RETURN (click for details)
In class com.owncloud.android.lib.common.network.BearerCredentials In method com.owncloud.android.lib.common.network.BearerCredentials.hashCode() At BearerCredentials.java:[line 81]
|
USBR
|
Method com.owncloud.android.lib.resources.files.FileUtils.getParentPath(String) stores return result in local before immediately returning it |
|
Bug type USBR_UNNECESSARY_STORE_BEFORE_RETURN (click for details)
In class com.owncloud.android.lib.resources.files.FileUtils In method com.owncloud.android.lib.resources.files.FileUtils.getParentPath(String) At FileUtils.java:[line 42]
|
UTWR
|
Method com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.uploadChunk(OwnCloudClient, String, Chunk) manually handles closing an auto-closeable resource |
|
Bug type UTWR_USE_TRY_WITH_RESOURCES (click for details)
In class com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation In method com.owncloud.android.lib.resources.files.ChunkedFileUploadRemoteOperation.uploadChunk(OwnCloudClient, String, Chunk) At ChunkedFileUploadRemoteOperation.java:[line 251]
|
UTWR
|
Method com.owncloud.android.lib.resources.files.DownloadFileRemoteOperation.downloadFile(OwnCloudClient, File) manually handles closing an auto-closeable resource |
|
Bug type UTWR_USE_TRY_WITH_RESOURCES (click for details)
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 178]
|
UTWR
|
Method com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation.run(OwnCloudClient) manually handles closing an auto-closeable resource |
|
Bug type UTWR_USE_TRY_WITH_RESOURCES (click for details)
In class com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation In method com.owncloud.android.lib.resources.users.GetRemoteUserAvatarOperation.run(OwnCloudClient) At GetRemoteUserAvatarOperation.java:[line 160]
|
The equals(Object o)
method shouldn't make any assumptions
about the type of o
. It should simply return
false if o
is not the same type as this
.
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.
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.
A boxed primitive is created from a String, just to extract the unboxed primitive value.
It is more efficient to just call the static parseXXX method.
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.
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.
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.
This instruction assigns a value to a local variable,
but the value is not read or used in any subsequent instruction.
Often, this indicates an error, because the value computed is never
used.
Note that Sun's javac compiler often generates dead stores for
final local variables. Because FindBugs is a bytecode-based tool,
there is no easy way to eliminate these false positives.
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 behaviour to vary between platforms. Use an alternative API and specify a charset name or Charset object explicitly.
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, it
is probably a better idea to prevent the occurrence in code.
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.
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.
This class defines a compareTo(...)
method but inherits its
equals()
method from java.lang.Object
.
Generally, the value of compareTo should return zero if and only if
equals returns true. If this is violated, weird and unpredictable
failures will occur in classes such as PriorityQueue.
In Java 5 the PriorityQueue.remove method uses the compareTo method,
while in Java 6 it uses the equals method.
From the JavaDoc for the compareTo method in the Comparable interface:
It is strongly recommended, but not strictly required that (x.compareTo(y)==0) == (x.equals(y))
.
Generally speaking, any class that implements the Comparable interface and violates this condition
should clearly indicate this fact. The recommended language
is "Note: this class has a natural ordering that is inconsistent with equals."
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()
.
This class defines fields that are used in a local only fashion,
specifically private fields or protected fields in final classes that are accessed
first in each method with a store vs. a load. This field could be replaced by one
or more local variables.
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.
This class overrides equals(Object)
, but does not
override hashCode()
, and inherits the implementation of
hashCode()
from java.lang.Object
(which returns
the identity hash code, an arbitrary value assigned to the object
by the VM). Therefore, the class is very likely to violate the
invariant that equal objects must have equal hashcodes.
If you don't think instances of this class will ever be inserted into a HashMap/HashTable,
the recommended hashCode
implementation to use is:
public int hashCode() {
assert false : "hashCode not designed";
return 42; // any arbitrary constant will do
}
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());
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
.
This method performs synchronization 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.
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);
}
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
futher 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.
This line is in the form of
String str = ...
str.equals("someOtherString");
//or
str.compareTo("someOtherString");
A NullPointerException
may occur if the String variable str
is null
. If instead the code was restructured to
String str = ...
"someOtherString".equals(str);
//or
"someOtherString".compareTo(str);
that is, call equals()
or compareTo()
on the string literal, passing the
variable as an argument, then this exception could never happen as both equals()
and
compareTo()
check for null
.
This method creates a synchronized collection and stores the reference to it
in a local variable. As local variables are by definition thread-safe, it seems
questionable that this collection needs to be synchronized.
If you are using | consider using |
java.util.Vector | java.util.ArrayList |
java.util.Hashtable | java.util.HashMap |
java.lang.StringBuffer | java.lang.StringBuilder |
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
.
This class 'overloads' the same method with both instance and static versions. As the use
of these two models is different, it will be confusing to the users of these methods.
A public static method returns a reference to
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.
This method passes a String to a wrapped primitive object's valueOf method, which in turn calls
the boxedValue() method to convert to a primitive. When it is desired to convert from a String
to a primitive value, it is simpler to use the BoxedPrimitive.parseBoxedPrimitive(String)
method.
Instead of something like:
public int someMethod(String data) {
long l = Long.valueOf(data).longValue();
float f = Float.valueOf(data).floatValue();
return Integer.valueOf(data); // There is an implicit .intValue() call
}
Simply do:
public int someMethod(String data) {
long l = Long.parseLong(data);
float f = Float.parseFloat(data);
return Integer.parseInt(data);
}
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;
}
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.
This implementation of equals(Object) violates the contract defined
by java.lang.Object.equals() because it does not check for null
being passed as the argument. All equals() methods should return
false if passed a null 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.
A reference value which is null on some exception control path is
dereferenced here. This may lead to a NullPointerException
when the code is executed.
Note that because FindBugs currently does not prune infeasible exception paths,
this may be a false warning.
Also note that FindBugs considers the default case of a switch statement to
be an exception path, since the default case is often infeasible.
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.
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.
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.
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.
This method contains a redundant check of a known non-null value against
the constant null.
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 ...
}
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.
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 1.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();
This Serializable class defines a non-primitive instance field which is neither transient,
Serializable, or java.lang.Object
, and does not appear to implement
the Externalizable
interface or the
readObject()
and writeObject()
methods.
Objects of this class will not be deserialized correctly if a non-Serializable
object is stored in this field.
Concatenating unvalidated user input into a URL can allow an attacker to override the value of a request parameter. Attacker may be able to override existing parameter values, inject a new parameter or exploit variables out of a direct reach. HTTP Parameter Pollution (HPP) attacks consist of injecting encoded query string delimiters into other existing parameters. If a web application does not properly sanitize the user input, a malicious user may compromise the logic of the application to perform either client-side or server-side attacks.
In the following example the programmer has not considered the possibility that an attacker could provide a parameter lang
such as en&user_id=1
, which would enable him to change the user_id
at will.
Vulnerable Code:
String lang = request.getParameter("lang");
GetMethod get = new GetMethod("http://www.host.com");
get.setQueryString("lang=" + lang + "&user_id=" + user_id);
get.execute();
Solution:
Sanitize user input before using it in HTTP parameters.
References
CAPEC-460: HTTP Parameter Pollution (HPP)
The algorithms MD2, MD4 and MD5 are not a recommended MessageDigest. PBKDF2 should be used to hash password for example.
"The security of the MD5 hash function is severely compromised. A collision attack exists that can find collisions
within seconds on a computer with a 2.6 GHz Pentium 4 processor (complexity of 224.1).[1] Further, there is also a
chosen-prefix collision attack that can produce a collision for two inputs with specified prefixes within hours, using
off-the-shelf computing hardware (complexity 239).[2]"
- Wikipedia: MD5 - Security
"SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256:
The use of these hash functions is acceptable for all hash function applications."
- NIST: Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths p.15
"The main idea of a PBKDF is to slow dictionary or brute force attacks on the passwords by increasing the time
needed to test each password. An attacker with a list of likely passwords can evaluate the PBKDF using the known
iteration counter and the salt. Since an attacker has to spend a significant amount of computing time for each try,
it becomes harder to apply the dictionary or brute force attacks."
- NIST: Recommendation for Password-Based Key Derivation p.12
Vulnerable Code:
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
md5Digest.update(password.getBytes());
byte[] hashValue = md5Digest.digest();
byte[] hashValue = DigestUtils.getMd5Digest().digest(password.getBytes());
Solution (Using bouncy castle):
public static byte[] getEncryptedPassword(String password, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException {
PKCS5S2ParametersGenerator gen = new PKCS5S2ParametersGenerator(new SHA256Digest());
gen.init(password.getBytes("UTF-8"), salt.getBytes(), 4096);
return ((KeyParameter) gen.generateDerivedParameters(256)).getKey();
}
Solution (Java 8 and later):
public static byte[] getEncryptedPassword(String password, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException {
KeySpec spec = new PBEKeySpec(password.toCharArray(), salt, 4096, 256 * 8);
SecretKeyFactory f = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
return f.generateSecret(spec).getEncoded();
}
References
[1] On Collisions for MD5: Master Thesis by M.M.J. Stevens
[2] Chosen-prefix collisions for MD5 and applications: Paper written by Marc Stevens
Wikipedia: MD5
NIST: Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths
NIST: Recommendation for Password-Based Key Derivation
Stackoverflow: Reliable implementation of PBKDF2-HMAC-SHA256 for Java
CWE-327: Use of a Broken or Risky Cryptographic Algorithm
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.
This method calls the equals(Object) method on an enum instance. Since enums values are singletons,
you can use == to safely compare two enum values. In fact, the implementation for Enum.equals does just
that.
This method checks a reference for null just before seeing if the reference is an instanceof some class.
Since instanceof will return false for null references, the null check is not needed.
This method calls the size() method on a collection and compares the result to zero to see if the collection
is empty. For better code clarity, it is better to just use col.isEmpty() or !col.isEmpty().
This instance method writes to a static field. This is tricky to get
correct if multiple instances are being manipulated,
and generally bad practice.
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.
This method calls the toString() method on an object and stores the value in a field. Doing this
throws away the type safety of having the object defined by a Class. Using String makes it very easy to
use the wrong type of value, and the compiler will not catch these mistakes. You should delay converting
values to Strings for as long as possible, and thus not store them as fields.
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.
This method passes a constant literal String
of length 1 as a parameter to a method, when
a similar method is exposed that takes a char
. It is simpler and more expedient to handle one
character, rather than a String
.
Instead of making calls like:
String myString = ...
if (myString.indexOf("e") != -1) {
int i = myString.lastIndexOf("e");
System.out.println(myString + ":" + i); //the Java compiler will use a StringBuilder internally here [builder.append(":")]
...
return myString.replace("m","z");
}
Replace the single letter String
s with their char
equivalents like so:
String myString = ...
if (myString.indexOf('e') != -1) {
int i = myString.lastIndexOf('e');
System.out.println(myString + ':' + i); //the Java compiler will use a StringBuilder internally here [builder.append(':')]
...
return myString.replace('m','z');
}
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.
This field is never read.
The field is public or protected, so perhaps
it is intended to be used with classes not seen as part of the analysis. If not,
consider removing it from the class.
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
}
[
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);
}
This method accesses the value of a Map entry, using a key that was retrieved from
a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the
Map.get(key) lookup.