You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by at...@apache.org on 2011/09/17 21:07:08 UTC
svn commit: r1172051 - in /portals/pluto/trunk:
pluto-container/src/main/java/org/apache/pluto/container/impl/PortletPreferencesImpl.java
pluto-testsuite/src/main/java/org/apache/pluto/testsuite/test/PreferenceCommonTest.java
Author: ate
Date: Sat Sep 17 19:07:08 2011
New Revision: 1172051
URL: http://svn.apache.org/viewvc?rev=1172051&view=rev
Log:
PLUTO-609: Reimplementation for new interpretation of PLT.17.1 concerning getting and setting of null values for portlet preferences.
See: https://issues.apache.org/jira/browse/PLUTO-609?focusedCommentId=13105053#comment-13105053 for details
Modified:
portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletPreferencesImpl.java
portals/pluto/trunk/pluto-testsuite/src/main/java/org/apache/pluto/testsuite/test/PreferenceCommonTest.java
Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletPreferencesImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletPreferencesImpl.java?rev=1172051&r1=1172050&r2=1172051&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletPreferencesImpl.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/container/impl/PortletPreferencesImpl.java Sat Sep 17 19:07:08 2011
@@ -28,15 +28,15 @@ import javax.portlet.PreferencesValidato
import javax.portlet.ReadOnlyException;
import javax.portlet.ValidatorException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.pluto.container.PortletPreference;
import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletContainerException;
-import org.apache.pluto.container.PortletPreference;
import org.apache.pluto.container.PortletPreferencesService;
import org.apache.pluto.container.PortletWindow;
import org.apache.pluto.container.om.portlet.PortletDefinition;
import org.apache.pluto.container.util.StringManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Implementation of the <code>javax.portlet.PortletPreferences</code>
@@ -138,46 +138,46 @@ public class PortletPreferencesImpl impl
}
public String getValue(String key, String defaultValue) {
- if (key == null) {
- throw new IllegalArgumentException(
- EXCEPTIONS.getString("error.null", "Preference key "));
- }
- PortletPreference pref = preferences.get(key);
- if (pref == null) {
- return defaultValue;
- }
-
- String[] values = pref.getValues();
- if (values == null || values.length == 0) {
- return null;
+ String[] values = getValues(key, new String[] { defaultValue });
+ String value = defaultValue;
+ if (values != null) {
+ if (values.length == 0) {
+ value = null;
+ }
+ else if (values[0] != null) {
+ value = values[0];
+ }
}
-
- return values[0];
+ return value;
}
public String[] getValues(String key, String[] defaultValues) {
if (key == null) {
throw new IllegalArgumentException(
- EXCEPTIONS.getString("error.null", "Preference key "));
+ EXCEPTIONS.getString("error.null", "Preference key "));
}
+ String[] values = null;
PortletPreference pref = preferences.get(key);
- if (pref == null) {
- return defaultValues;
+ if (pref != null) {
+ values = pref.getValues();
}
-
- return pref.getValues();
+ if (values == null) {
+ values = defaultValues;
+ }
+ return values;
}
public void setValue(String key, String value) throws ReadOnlyException {
if (isReadOnly(key)) {
throw new ReadOnlyException(EXCEPTIONS.getString(
- "error.preference.readonly", key));
+ "error.preference.readonly", key));
}
PortletPreference pref = preferences.get(key);
+ String[] values = value == null ? new String[0] : new String[] { value };
if (pref != null) {
- pref.setValues(new String[] { value });
+ pref.setValues(values);
} else {
- pref = new PortletPreferenceImpl(key, new String[] { value });
+ pref = new PortletPreferenceImpl(key, values);
preferences.put(key, pref);
}
}
@@ -185,7 +185,10 @@ public class PortletPreferencesImpl impl
public void setValues(String key, String[] values) throws ReadOnlyException {
if (isReadOnly(key)) {
throw new ReadOnlyException(EXCEPTIONS.getString(
- "error.preference.readonly", key));
+ "error.preference.readonly", key));
+ }
+ if (values == null) {
+ values = new String[0];
}
PortletPreference pref = preferences.get(key);
if (pref != null) {
Modified: portals/pluto/trunk/pluto-testsuite/src/main/java/org/apache/pluto/testsuite/test/PreferenceCommonTest.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-testsuite/src/main/java/org/apache/pluto/testsuite/test/PreferenceCommonTest.java?rev=1172051&r1=1172050&r2=1172051&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-testsuite/src/main/java/org/apache/pluto/testsuite/test/PreferenceCommonTest.java (original)
+++ portals/pluto/trunk/pluto-testsuite/src/main/java/org/apache/pluto/testsuite/test/PreferenceCommonTest.java Sat Sep 17 19:07:08 2011
@@ -182,10 +182,11 @@ public class PreferenceCommonTest extend
}
String value = preferences.getValue("TEST", DEF_VALUE);
- if (DEF_VALUE.equals(value)) {
- result.setReturnCode(TestResult.PASSED);
+ // see PLUTO-609: behavioral change!
+ if (null == value) {
+ result.setReturnCode(TestResult.PASSED);
} else {
- TestUtils.failOnAssertion("preference value", value, DEF_VALUE, result);
+ TestUtils.failOnAssertion("preference value", value, null, result);
}
return result;
}