[SYNCOPE-1604] short date years represented by 4 digits (#228)
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDateTimeFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDateTimeFieldPanel.java
index cb1ddec..3b962e5 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDateTimeFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDateTimeFieldPanel.java
@@ -19,8 +19,11 @@
 package org.apache.syncope.client.ui.commons.markup.html.form;
 
 import com.googlecode.wicket.kendo.ui.form.datetime.AjaxDateTimePicker;
+import java.text.DateFormat;
 import java.util.Date;
+import java.util.Locale;
 import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.wicket.Session;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
@@ -39,7 +42,13 @@
 
         // dateTimePattern should be spit into separate date and time pattern strings in order to be passed to the
         // AjaxDateTimePicker constructor, but there is no safe way to do that - ignoring
-        field = new AjaxDateTimePicker("field", model, getLocale());
+        Locale locale = Session.get().getLocale();
+        field = new AjaxDateTimePicker(
+                "field",
+                model,
+                locale,
+                FastDateFormat.getDateInstance(DateFormat.SHORT, locale).getPattern().replace("yy", "yyyy"),
+                FastDateFormat.getTimeInstance(DateFormat.SHORT, locale).getPattern());
         add(field.setLabel(new ResourceModel(name, name)).setOutputMarkupId(true));
     }
 
diff --git a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java
index 3595494..d8e85b9 100644
--- a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java
+++ b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/DateFieldPanel.java
@@ -24,7 +24,6 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
-
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.syncope.common.lib.Attributable;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -54,7 +53,6 @@
             @Override
             public Date getObject() {
                 Date date = null;
-
                 if (list != null && !list.isEmpty() && StringUtils.hasText(list.get(0).toString())) {
                     try {
                         // Parse string using datePattern
@@ -123,18 +121,17 @@
         return this;
     }
 
-    @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
-    public FieldPanel<Date> setNewModel(final Attributable attributableTO, final String schema) {
-        field.setModel(new Model() {
+    public FieldPanel<Date> setNewModel(final Attributable attributable, final String schema) {
+        field.setModel(new Model<Date>() {
 
             private static final long serialVersionUID = -4214654722524358000L;
 
             @Override
-            public Serializable getObject() {
-                if (!attributableTO.getPlainAttr(schema).get().getValues().isEmpty()) {
+            public Date getObject() {
+                if (!attributable.getPlainAttr(schema).get().getValues().isEmpty()) {
                     try {
-                        return fmt.parse(attributableTO.getPlainAttr(schema).get().getValues().get(0));
+                        return fmt.parse(attributable.getPlainAttr(schema).get().getValues().get(0));
                     } catch (ParseException ex) {
                         LOG.error("While parsing date", ex);
                     }
@@ -143,10 +140,10 @@
             }
 
             @Override
-            public void setObject(final Serializable object) {
-                attributableTO.getPlainAttr(schema).get().getValues().clear();
+            public void setObject(final Date object) {
+                attributable.getPlainAttr(schema).get().getValues().clear();
                 if (object != null) {
-                    attributableTO.getPlainAttr(schema).get().getValues().add(fmt.format(object));
+                    attributable.getPlainAttr(schema).get().getValues().add(fmt.format(object));
                 }
             }
         });
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
index 2bb92c2..7a922b8 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
@@ -664,11 +664,6 @@
         cal.set(2017, Calendar.JANUARY, 19, 0, 0, 0);
         cal.set(Calendar.MILLISECOND, 0);
 
-        TESTER.assertModelValue("body:content:body:container:content:"
-                + "tabbedPanel:panel:searchResult:outerObjectsRepeater:"
-                + "0:outer:form:content:form:view:plainSchemas:tabs:0:"
-                + "body:content:schemas:1:panel:field:datepicker", cal.getTime());
-
         assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:"
                 + "container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form:view:plainSchemas:"