diff --git a/configjsr/src/main/java/org/apache/tamaya/jsr382/JavaConfigAdapterFactory.java b/configjsr/src/main/java/org/apache/tamaya/jsr382/JavaConfigAdapterFactory.java
index b64e7dd..b3aa0cd 100644
--- a/configjsr/src/main/java/org/apache/tamaya/jsr382/JavaConfigAdapterFactory.java
+++ b/configjsr/src/main/java/org/apache/tamaya/jsr382/JavaConfigAdapterFactory.java
@@ -151,6 +151,7 @@
      * Converts a JavaConfig {@link Converter} into a Tamaya {@link PropertyConverter}.
      * @param converter the JavaConfig {@link Converter} instance, not null.
      * @param <T> the target type
+     * @param priority the priority level of this converter.
      * @return the corresponding Tamaya {@link PropertyConverter} instance, never null.
      */
     public static <T> PropertyConverter<T> toPropertyConverter(Converter<T> converter, int priority) {
diff --git a/validation/src/main/java/org/apache/tamaya/validation/ConfigValidation.java b/validation/src/main/java/org/apache/tamaya/validation/ConfigValidation.java
index b934b52..0fda50d 100644
--- a/validation/src/main/java/org/apache/tamaya/validation/ConfigValidation.java
+++ b/validation/src/main/java/org/apache/tamaya/validation/ConfigValidation.java
@@ -45,6 +45,7 @@
 
     /**
      * Access a singleton using the default classloader.
+     * @return a validation manager.
      */
     public static ConfigValidation getInstance() {
         return ServiceContextManager.getServiceContext(
@@ -55,6 +56,7 @@
     /**
      * Access a singleton using the given target classloader.
      * @param classLoader the classloader, not null.
+     * @return a validation manager.
      */
     public static ConfigValidation getInstance(ClassLoader classLoader){
         return ServiceContextManager.getServiceContext(classLoader).getService(ConfigValidation.class, ConfigValidation::new);
diff --git a/validation/src/main/java/org/apache/tamaya/validation/spi/AbstractValidator.java b/validation/src/main/java/org/apache/tamaya/validation/spi/AbstractValidator.java
index 15de27a..881cab7 100644
--- a/validation/src/main/java/org/apache/tamaya/validation/spi/AbstractValidator.java
+++ b/validation/src/main/java/org/apache/tamaya/validation/spi/AbstractValidator.java
@@ -50,8 +50,8 @@
     }
 
     /**
-     * Get the area or paramter key.
-     * @return
+     * Get the area or parameter key.
+     * @return the key.
      */
     public String getKey() {
         return key;
diff --git a/validation/src/main/java/org/apache/tamaya/validation/spi/AreaValidator.java b/validation/src/main/java/org/apache/tamaya/validation/spi/AreaValidator.java
index 79e5e27..94dc19d 100644
--- a/validation/src/main/java/org/apache/tamaya/validation/spi/AreaValidator.java
+++ b/validation/src/main/java/org/apache/tamaya/validation/spi/AreaValidator.java
@@ -182,6 +182,7 @@
         /**
          * Creates a new Builder.
          * @param name the fully qualified parameter name, not null.
+         * @param owner the owner name, not null.
          */
         public Builder(String name, Object owner) {
             this.name = Objects.requireNonNull(name);
diff --git a/validation/src/main/java/org/apache/tamaya/validation/spi/PropertyValidator.java b/validation/src/main/java/org/apache/tamaya/validation/spi/PropertyValidator.java
index afce656..b5f8efb 100644
--- a/validation/src/main/java/org/apache/tamaya/validation/spi/PropertyValidator.java
+++ b/validation/src/main/java/org/apache/tamaya/validation/spi/PropertyValidator.java
@@ -156,6 +156,7 @@
         /**
          * Creates a new Builder.
          * @param name the fully qualified parameter name, not null.
+         * @param owner the owner name, not null.
          */
         public Builder(String name, Object owner) {
             this.name = Objects.requireNonNull(name);
