diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/RuntimeDescriptor.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/RuntimeDescriptor.java
index 61f8847..35a064f 100644
--- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/RuntimeDescriptor.java
+++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/RuntimeDescriptor.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2021 Contributors to the Eclipse Foundation
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -147,14 +148,6 @@
     }
 
 
-    protected void setValues(String name, Object[] values) {
-        List list = getIndexedProperty(name);
-        for (int i = 0; i < values.length;) {
-            list.add(values[i]);
-        }
-    }
-
-
     protected Object[] getValues(String name) {
         List list = (List) getValue(name);
         if (list != null && list.size() > 0) {
diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/connector/ResourceAdapter.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/connector/ResourceAdapter.java
index 7318a51..5edcd4a 100644
--- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/connector/ResourceAdapter.java
+++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/runtime/connector/ResourceAdapter.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2021 Contributors to the Eclipse Foundation
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -56,12 +57,6 @@
     }
 
 
-    // This attribute is an array, possibly empty
-    public void setPropertyElement(NameValuePairDescriptor[] values) {
-        this.setValues(PROPERTY, values);
-    }
-
-
     //
     public NameValuePairDescriptor[] getPropertyElement() {
         return (NameValuePairDescriptor[]) this.getValues(PROPERTY);
