--- old/src/share/classes/java/util/prefs/AbstractPreferences.java	Fri Aug 26 16:55:12 2011
+++ new/src/share/classes/java/util/prefs/AbstractPreferences.java	Fri Aug 26 16:55:12 2011
@@ -34,6 +34,8 @@
 import java.lang.Long;
 import java.lang.Float;
 import java.lang.Double;
+import java.lang.module.RequireOptionalModule;
+import java.lang.module.ModuleNotPresentException;
 
 /**
  * This class provides a skeletal implementation of the {@link Preferences}
@@ -1588,10 +1590,15 @@
      *         results in an <tt>IOException</tt>.
      * @throws BackingStoreException if preference data cannot be read from
      *         backing store.
+     * @throws ModuleNotPresentException if XML module is not present.
      */
+    @RequireOptionalModule(
+        modules={"jdk.jaxp"}
+    )
     public void exportNode(OutputStream os)
         throws IOException, BackingStoreException
     {
+        AbstractPreferences.class.getModule().requireModulePresent("jdk.jaxp");
         XmlSupport.export(os, this, false);
     }
 
@@ -1604,10 +1611,15 @@
      *         results in an <tt>IOException</tt>.
      * @throws BackingStoreException if preference data cannot be read from
      *         backing store.
+     * @throws ModuleNotPresentException if XML module is not present.
      */
+    @RequireOptionalModule(
+        modules={"jdk.jaxp"}
+    )
     public void exportSubtree(OutputStream os)
         throws IOException, BackingStoreException
     {
+        AbstractPreferences.class.getModule().requireModulePresent("jdk.jaxp");
         XmlSupport.export(os, this, true);
     }
 }