PMD Results

The following document contains the results of PMD 6.55.0.

Violations By Priority

Priority 3

org/apache/maven/DefaultMaven.java
Rule Violation Line
ReturnFromFinallyBlock Avoid returning from a finally block 331
org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilter.java
Rule Violation Line
UnusedPrivateField Avoid unused private fields such as 'exclusions'. 37
org/apache/maven/bridge/MavenRepositorySystem.java
Rule Violation Line
AvoidUsingHardCodedIP Do not hard code the IP address 764
org/apache/maven/configuration/BasedirBeanConfigurationPathTranslator.java
Rule Violation Line
EmptyControlStatement Empty if statement 4553
org/apache/maven/execution/MavenSession.java
Rule Violation Line
UnusedFormalParameter Avoid unused constructor parameters such as 'eventDispatcher'. 371
org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
Rule Violation Line
EmptyControlStatement Empty if statement 345370
org/apache/maven/internal/impl/DefaultArtifactDeployer.java
Rule Violation Line
UnusedLocalVariable Avoid unused local variables such as 'result'. 64
org/apache/maven/internal/impl/DefaultArtifactInstaller.java
Rule Violation Line
UnusedLocalVariable Avoid unused local variables such as 'result'. 55
org/apache/maven/internal/impl/DefaultToolchainsXmlFactory.java
Rule Violation Line
UnusedLocalVariable Avoid unused local variables such as 'source'. 55
org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
Rule Violation Line
UnusedPrivateMethod Avoid unused private methods such as 'doDeleteFiles()'. 126
org/apache/maven/lifecycle/DefaultLifecycles.java
Rule Violation Line
UnusedFormalParameter Avoid unused constructor parameters such as 'logger'. 64
org/apache/maven/lifecycle/LifecycleExecutionException.java
Rule Violation Line
UnusedFormalParameter Avoid unused constructor parameters such as 'execution'. 49
UnusedFormalParameter Avoid unused constructor parameters such as 'execution'. 54
org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
Rule Violation Line
EmptyControlStatement Empty if statement 184194
org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
Rule Violation Line
UnusedFormalParameter Avoid unused method parameters such as 'muxer'. 188
org/apache/maven/plugin/CycleDetectedInPluginGraphException.java
Rule Violation Line
UnusedFormalParameter Avoid unused constructor parameters such as 'e'. 31
org/apache/maven/plugin/PluginConfigurationException.java
Rule Violation Line
UnusedPrivateField Avoid unused private fields such as 'pluginDescriptor'. 29
UnusedPrivateField Avoid unused private fields such as 'originalMessage'. 31
org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
Rule Violation Line
EmptyControlStatement Empty if statement 352360
org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java
Rule Violation Line
EmptyControlStatement Empty if statement 249260
org/apache/maven/project/MavenProject.java
Rule Violation Line
CollapsibleIfStatements These nested if statements could be combined 334338
CollapsibleIfStatements These nested if statements could be combined 13301332
CollapsibleIfStatements These nested if statements could be combined 13501354
CollapsibleIfStatements These nested if statements could be combined 14831485
CollapsibleIfStatements These nested if statements could be combined 14991501
org/apache/maven/toolchain/java/DefaultJavaToolChain.java
Rule Violation Line
UselessOverridingMethod Overriding method merely calls super 4143
UselessOverridingMethod Overriding method merely calls super 4648

Priority 4

org/apache/maven/ReactorReader.java
Rule Violation Line
UselessParentheses Useless parentheses. 299
UselessParentheses Useless parentheses. 300
org/apache/maven/RepositoryUtils.java
Rule Violation Line
UselessParentheses Useless parentheses. 68
org/apache/maven/bridge/MavenRepositorySystem.java
Rule Violation Line
UselessParentheses Useless parentheses. 803
org/apache/maven/classrealm/DefaultClassRealmManager.java
Rule Violation Line
UselessParentheses Useless parentheses. 259
org/apache/maven/exception/DefaultExceptionHandler.java
Rule Violation Line
UselessParentheses Useless parentheses. 206
UselessParentheses Useless parentheses. 235
org/apache/maven/graph/DefaultGraphBuilder.java
Rule Violation Line
UselessParentheses Useless parentheses. 269
org/apache/maven/internal/impl/AbstractNode.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 34
org/apache/maven/internal/impl/DefaultNode.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 38
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 42
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 87
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 91
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 92
UselessParentheses Useless parentheses. 94
org/apache/maven/internal/impl/DefaultRepositoryFactory.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.repository.RepositoryPolicy' due to existing import 'org.eclipse.aether.repository.RepositoryPolicy' 65
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.repository.RepositoryPolicy' due to existing import 'org.eclipse.aether.repository.RepositoryPolicy' 79
org/apache/maven/internal/impl/DefaultToolchainManager.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.toolchain.ToolchainPrivate' due to existing import 'org.apache.maven.toolchain.ToolchainPrivate' 80
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.toolchain.ToolchainPrivate' due to existing import 'org.apache.maven.toolchain.ToolchainPrivate' 81
org/apache/maven/internal/impl/DefaultTransportProvider.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.spi.connector.transport.TransporterProvider' due to existing import 'org.eclipse.aether.spi.connector.transport.TransporterProvider' 41
org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
Rule Violation Line
UselessParentheses Useless parentheses. 314
UselessParentheses Useless parentheses. 314
org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
Rule Violation Line
UselessParentheses Useless parentheses. 7576
org/apache/maven/lifecycle/internal/DependencyContext.java
Rule Violation Line
UselessParentheses Useless parentheses. 86
org/apache/maven/plugin/PluginParameterException.java
Rule Violation Line
UselessParentheses Useless parentheses. 125
org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
Rule Violation Line
UselessParentheses Useless parentheses. 145
UselessParentheses Useless parentheses. 145
UselessParentheses Useless parentheses. 307
UselessParentheses Useless parentheses. 307
UselessParentheses Useless parentheses. 307
UselessParentheses Useless parentheses. 307
UselessParentheses Useless parentheses. 336337
UselessParentheses Useless parentheses. 341
org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java
Rule Violation Line
UselessParentheses Useless parentheses. 128
UselessParentheses Useless parentheses. 128
UselessParentheses Useless parentheses. 204
UselessParentheses Useless parentheses. 204
UselessParentheses Useless parentheses. 204
UselessParentheses Useless parentheses. 204
UselessParentheses Useless parentheses. 233234
UselessParentheses Useless parentheses. 238
org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
Rule Violation Line
UselessParentheses Useless parentheses. 545
UselessParentheses Useless parentheses. 545
org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.artifact.Artifact' due to existing import 'org.eclipse.aether.artifact.Artifact' 250
org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
Rule Violation Line
UselessParentheses Useless parentheses. 100
org/apache/maven/project/DefaultProjectBuilder.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.RepositorySystem' due to existing import 'org.eclipse.aether.RepositorySystem' 98
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.model.Profile' due to existing import 'org.apache.maven.model.Profile' 910
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.model.Profile' due to existing import 'org.apache.maven.model.Profile' 911
org/apache/maven/project/MavenProject.java
Rule Violation Line
UselessParentheses Useless parentheses. 410
UselessParentheses Useless parentheses. 410
UselessParentheses Useless parentheses. 445
UselessParentheses Useless parentheses. 445
UselessParentheses Useless parentheses. 850
UselessParentheses Useless parentheses. 927
UselessParentheses Useless parentheses. 927
UselessParentheses Useless parentheses. 1061
UselessParentheses Useless parentheses. 1072
UselessParentheses Useless parentheses. 1082
UselessParentheses Useless parentheses. 1086
UselessParentheses Useless parentheses. 1090
UselessParentheses Useless parentheses. 1364
UselessParentheses Useless parentheses. 1407
UselessParentheses Useless parentheses. 1432
UselessParentheses Useless parentheses. 1511
org/apache/maven/project/ProjectModelResolver.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.Parent' due to existing import 'org.apache.maven.api.model.Parent' 277
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.Dependency' due to existing import 'org.apache.maven.api.model.Dependency' 287
org/apache/maven/project/ProjectSorter.java
Rule Violation Line
UselessParentheses Useless parentheses. 244
org/apache/maven/project/collector/DefaultProjectsSelector.java
Rule Violation Line
UselessParentheses Useless parentheses. 78
UselessParentheses Useless parentheses. 78
org/apache/maven/settings/SettingsUtilsV4.java
Rule Violation Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.ActivationFile' due to existing import 'org.apache.maven.api.model.ActivationFile' 116
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.InputLocation' due to existing import 'org.apache.maven.api.model.InputLocation' 321
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.InputLocation' due to existing import 'org.apache.maven.api.model.InputLocation' 327

Files

org/apache/maven/DefaultMaven.java

Rule Violation Priority Line
ReturnFromFinallyBlock Avoid returning from a finally block 3 331

org/apache/maven/ReactorReader.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 299
UselessParentheses Useless parentheses. 4 300

org/apache/maven/RepositoryUtils.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 68

org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilter.java

Rule Violation Priority Line
UnusedPrivateField Avoid unused private fields such as 'exclusions'. 3 37

org/apache/maven/bridge/MavenRepositorySystem.java

Rule Violation Priority Line
AvoidUsingHardCodedIP Do not hard code the IP address 3 764
UselessParentheses Useless parentheses. 4 803

org/apache/maven/classrealm/DefaultClassRealmManager.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 259

org/apache/maven/configuration/BasedirBeanConfigurationPathTranslator.java

Rule Violation Priority Line
EmptyControlStatement Empty if statement 3 4553

org/apache/maven/exception/DefaultExceptionHandler.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 206
UselessParentheses Useless parentheses. 4 235

org/apache/maven/execution/MavenSession.java

Rule Violation Priority Line
UnusedFormalParameter Avoid unused constructor parameters such as 'eventDispatcher'. 3 371

org/apache/maven/graph/DefaultGraphBuilder.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 269

org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java

Rule Violation Priority Line
EmptyControlStatement Empty if statement 3 345370

org/apache/maven/internal/impl/AbstractNode.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 4 34

org/apache/maven/internal/impl/DefaultArtifactDeployer.java

Rule Violation Priority Line
UnusedLocalVariable Avoid unused local variables such as 'result'. 3 64

org/apache/maven/internal/impl/DefaultArtifactInstaller.java

Rule Violation Priority Line
UnusedLocalVariable Avoid unused local variables such as 'result'. 3 55

org/apache/maven/internal/impl/DefaultNode.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 4 38
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 4 42
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 4 87
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 4 91
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.graph.DependencyNode' due to existing import 'org.eclipse.aether.graph.DependencyNode' 4 92
UselessParentheses Useless parentheses. 4 94

org/apache/maven/internal/impl/DefaultRepositoryFactory.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.repository.RepositoryPolicy' due to existing import 'org.eclipse.aether.repository.RepositoryPolicy' 4 65
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.repository.RepositoryPolicy' due to existing import 'org.eclipse.aether.repository.RepositoryPolicy' 4 79

org/apache/maven/internal/impl/DefaultToolchainManager.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.toolchain.ToolchainPrivate' due to existing import 'org.apache.maven.toolchain.ToolchainPrivate' 4 80
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.toolchain.ToolchainPrivate' due to existing import 'org.apache.maven.toolchain.ToolchainPrivate' 4 81

org/apache/maven/internal/impl/DefaultToolchainsXmlFactory.java

Rule Violation Priority Line
UnusedLocalVariable Avoid unused local variables such as 'source'. 3 55

org/apache/maven/internal/impl/DefaultTransportProvider.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.spi.connector.transport.TransporterProvider' due to existing import 'org.eclipse.aether.spi.connector.transport.TransporterProvider' 4 41

org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java

Rule Violation Priority Line
UnusedPrivateMethod Avoid unused private methods such as 'doDeleteFiles()'. 3 126

org/apache/maven/lifecycle/DefaultLifecycles.java

Rule Violation Priority Line
UnusedFormalParameter Avoid unused constructor parameters such as 'logger'. 3 64

org/apache/maven/lifecycle/LifecycleExecutionException.java

Rule Violation Priority Line
UnusedFormalParameter Avoid unused constructor parameters such as 'execution'. 3 49
UnusedFormalParameter Avoid unused constructor parameters such as 'execution'. 3 54

org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 314
UselessParentheses Useless parentheses. 4 314

org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 7576

org/apache/maven/lifecycle/internal/DependencyContext.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 86

org/apache/maven/lifecycle/internal/builder/BuilderCommon.java

Rule Violation Priority Line
EmptyControlStatement Empty if statement 3 184194

org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java

Rule Violation Priority Line
UnusedFormalParameter Avoid unused method parameters such as 'muxer'. 3 188

org/apache/maven/plugin/CycleDetectedInPluginGraphException.java

Rule Violation Priority Line
UnusedFormalParameter Avoid unused constructor parameters such as 'e'. 3 31

org/apache/maven/plugin/PluginConfigurationException.java

Rule Violation Priority Line
UnusedPrivateField Avoid unused private fields such as 'pluginDescriptor'. 3 29
UnusedPrivateField Avoid unused private fields such as 'originalMessage'. 3 31

org/apache/maven/plugin/PluginParameterException.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 125

org/apache/maven/plugin/PluginParameterExpressionEvaluator.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 145
UselessParentheses Useless parentheses. 4 145
UselessParentheses Useless parentheses. 4 307
UselessParentheses Useless parentheses. 4 307
UselessParentheses Useless parentheses. 4 307
UselessParentheses Useless parentheses. 4 307
UselessParentheses Useless parentheses. 4 336337
UselessParentheses Useless parentheses. 4 341
EmptyControlStatement Empty if statement 3 352360

org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 128
UselessParentheses Useless parentheses. 4 128
UselessParentheses Useless parentheses. 4 204
UselessParentheses Useless parentheses. 4 204
UselessParentheses Useless parentheses. 4 204
UselessParentheses Useless parentheses. 4 204
UselessParentheses Useless parentheses. 4 233234
UselessParentheses Useless parentheses. 4 238
EmptyControlStatement Empty if statement 3 249260

org/apache/maven/plugin/internal/DefaultMavenPluginManager.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 545
UselessParentheses Useless parentheses. 4 545

org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.artifact.Artifact' due to existing import 'org.eclipse.aether.artifact.Artifact' 4 250

org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 100

org/apache/maven/project/DefaultProjectBuilder.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.eclipse.aether.RepositorySystem' due to existing import 'org.eclipse.aether.RepositorySystem' 4 98
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.model.Profile' due to existing import 'org.apache.maven.model.Profile' 4 910
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.model.Profile' due to existing import 'org.apache.maven.model.Profile' 4 911

org/apache/maven/project/MavenProject.java

Rule Violation Priority Line
CollapsibleIfStatements These nested if statements could be combined 3 334338
UselessParentheses Useless parentheses. 4 410
UselessParentheses Useless parentheses. 4 410
UselessParentheses Useless parentheses. 4 445
UselessParentheses Useless parentheses. 4 445
UselessParentheses Useless parentheses. 4 850
UselessParentheses Useless parentheses. 4 927
UselessParentheses Useless parentheses. 4 927
UselessParentheses Useless parentheses. 4 1061
UselessParentheses Useless parentheses. 4 1072
UselessParentheses Useless parentheses. 4 1082
UselessParentheses Useless parentheses. 4 1086
UselessParentheses Useless parentheses. 4 1090
CollapsibleIfStatements These nested if statements could be combined 3 13301332
CollapsibleIfStatements These nested if statements could be combined 3 13501354
UselessParentheses Useless parentheses. 4 1364
UselessParentheses Useless parentheses. 4 1407
UselessParentheses Useless parentheses. 4 1432
CollapsibleIfStatements These nested if statements could be combined 3 14831485
CollapsibleIfStatements These nested if statements could be combined 3 14991501
UselessParentheses Useless parentheses. 4 1511

org/apache/maven/project/ProjectModelResolver.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.Parent' due to existing import 'org.apache.maven.api.model.Parent' 4 277
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.Dependency' due to existing import 'org.apache.maven.api.model.Dependency' 4 287

org/apache/maven/project/ProjectSorter.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 244

org/apache/maven/project/collector/DefaultProjectsSelector.java

Rule Violation Priority Line
UselessParentheses Useless parentheses. 4 78
UselessParentheses Useless parentheses. 4 78

org/apache/maven/settings/SettingsUtilsV4.java

Rule Violation Priority Line
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.ActivationFile' due to existing import 'org.apache.maven.api.model.ActivationFile' 4 116
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.InputLocation' due to existing import 'org.apache.maven.api.model.InputLocation' 4 321
UnnecessaryFullyQualifiedName Unnecessary use of fully qualified name 'org.apache.maven.api.model.InputLocation' due to existing import 'org.apache.maven.api.model.InputLocation' 4 327

org/apache/maven/toolchain/java/DefaultJavaToolChain.java

Rule Violation Priority Line
UselessOverridingMethod Overriding method merely calls super 3 4143
UselessOverridingMethod Overriding method merely calls super 3 4648