diff --git a/tests/org.eclipse.jst.server.generic.tests/src/org/eclipse/jst/server/generic/tests/ServerDefinitionTypeTest.java b/tests/org.eclipse.jst.server.generic.tests/src/org/eclipse/jst/server/generic/tests/ServerDefinitionTypeTest.java
index 47efe4f..959f5bb 100644
--- a/tests/org.eclipse.jst.server.generic.tests/src/org/eclipse/jst/server/generic/tests/ServerDefinitionTypeTest.java
+++ b/tests/org.eclipse.jst.server.generic.tests/src/org/eclipse/jst/server/generic/tests/ServerDefinitionTypeTest.java
@@ -97,17 +97,17 @@
 			assertFalse(resolved.indexOf("${") >= 0);
 		}
 	}
-    public void testEclipseVarResolve() {
-        ServerTypeDefinitionManager serverTypeDefinitionManager = CorePlugin
-                .getDefault().getServerTypeDefinitionManager();
-        assertNotNull( serverTypeDefinitionManager );
-        ServerRuntime[] types = serverTypeDefinitionManager
-                .getServerTypeDefinitions();
-        assertNotNull( types );
-        assertTrue( types.length > 0 );
-        ServerRuntime definition = types[0];
-        String resolved = definition.getResolver().resolveProperties( "test ${workspace_loc} test " );
-        assertFalse(resolved.indexOf("${") >= 0);
-    }
+//    public void testEclipseVarResolve() {
+//        ServerTypeDefinitionManager serverTypeDefinitionManager = CorePlugin
+//                .getDefault().getServerTypeDefinitionManager();
+//        assertNotNull( serverTypeDefinitionManager );
+//        ServerRuntime[] types = serverTypeDefinitionManager
+//                .getServerTypeDefinitions();
+//        assertNotNull( types );
+//        assertTrue( types.length > 0 );
+//        ServerRuntime definition = types[0];
+//        String resolved = definition.getResolver().resolveProperties( "test ${workspace_loc} test " );
+//        assertFalse(resolved.indexOf("${") >= 0);
+//    }
     
 }
