diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js
index e84b0547f98419da78491a247c6b74da162a04ba..83f4ddea5f15a73249b99dc41e64212a163c4010 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js
@@ -5,22 +5,29 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 		var testUpdate = function(c, fCreate, fUpdate, fFind, fCheck, fCheckError) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
-				return fCreate(facade).then(function(permIds) {
-					c.assertTrue(permIds != null && permIds.length == 1, "Entity was created");
-					return fFind(facade, permIds[0]).then(function(entity) {
-						c.assertNotNull(entity, "Entity can be found");
-						return fUpdate(facade, permIds[0]).then(function() {
-							c.ok("Entity was updated");
-							return fFind(facade, permIds[0]).then(function(entity) {
-								if (fCheck) {
-									fCheck(entity);
-								}
-								c.finish();
-							});
-						});
-					});
-				});
+			var ctx = {
+				facade: null,
+				permIds: null
+			};
+			c.createFacadeAndLogin()
+			.then(function(facade) {
+				ctx.facade = facade;
+				return fCreate(facade)
+			}).then(function(permIds) {
+				ctx.permIds = permIds;
+				c.assertTrue(permIds != null && permIds.length == 1, "Entity was created");
+				return fFind(ctx.facade, permIds[0])
+			}).then(function(entity) {
+				c.assertNotNull(entity, "Entity can be found");
+				return fUpdate(ctx.facade, ctx.permIds[0])
+			}).then(function() {
+				c.ok("Entity was updated");
+				return fFind(ctx.facade, ctx.permIds[0])
+			}).then(function(entity) {
+				if (fCheck) {
+					fCheck(entity);
+				}
+				c.finish();
 			}).fail(function(error) {
 				if (fCheckError) {
 					fCheckError(error.message);
diff --git a/js-test/source/java/ch/systemsx/cisd/openbis/jstest/service/V3ApiDtoTestService.java b/js-test/source/java/ch/systemsx/cisd/openbis/jstest/service/V3ApiDtoTestService.java
index 2ef0afa1dd624b4b30a91851a43e71248cfa7b3a..669f5cee1e5f8e71a8d3dbb7dd731d23464d54be 100644
--- a/js-test/source/java/ch/systemsx/cisd/openbis/jstest/service/V3ApiDtoTestService.java
+++ b/js-test/source/java/ch/systemsx/cisd/openbis/jstest/service/V3ApiDtoTestService.java
@@ -18,7 +18,6 @@ package ch.systemsx.cisd.openbis.jstest.service;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.lang.reflect.Parameter;
 import java.util.Date;
 import java.util.Map;
 import java.util.Properties;
@@ -54,13 +53,13 @@ public class V3ApiDtoTestService implements ICustomASServiceExecutor
     {
         for (Method method : obj.getClass().getMethods())
         {
-            if (method.getParameterCount() == 1) {
-                Parameter parameter = method.getParameters()[0];
-                Class<?> type = parameter.getType();
+            Class<?>[] parameterTypes = method.getParameterTypes();
+            if (parameterTypes.length == 1) {
+                Class<?> type = parameterTypes[0];
                 if (type.isPrimitive() || type.equals(String.class) || type.equals(Date.class)){
                     try
                     {
-                        setItUp(obj, method, parameter);
+                        setItUp(obj, method, type);
                     } catch (Exception e)
                     {
                         e.printStackTrace();
@@ -71,16 +70,15 @@ public class V3ApiDtoTestService implements ICustomASServiceExecutor
         return obj;
     }
 
-    private void setItUp(Object obj, Method method, Parameter parameter) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
+    private void setItUp(Object obj, Method method, Class<?> type) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
     {
-        method.invoke(obj, getValue(parameter));
+        method.invoke(obj, getValue(type));
     }
 
-    private Object getValue(Parameter parameter)
+    private Object getValue(Class<?> type)
     {
         double random = Math.random();
         long rnd = (long) (random*1000000);
-        Class<?> type = parameter.getType();
         if (type == String.class) {
             return String.valueOf(random);
         }