roll back changes from jochen in 648212 to stabilize Axis2 trunk build. Jochen, can u please try a better patch for this functionality that does not break axis2?
diff --git a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java b/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java
deleted file mode 100644
index efcb6e1..0000000
--- a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/DefaultMTOMAttachment.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.axiom.om.impl;

-

-import javax.activation.DataHandler;

-

-

-/**

- * Default implementation of {@link MTOMAttachment}.

- */

-public class DefaultMTOMAttachment implements MTOMAttachment {

-    private final String id;

-    private final DataHandler dataHandler;

-

-    /**

-     * Creates a new instance with the given data and content ID.

-     */

-    public DefaultMTOMAttachment(DataHandler pDataHandler, String pId) {

-        dataHandler = pDataHandler;

-        id = pId;

-    }

-

-    public String getContentID() {

-        return id;

-    }

-

-    public DataHandler getDataHandler() {

-        return dataHandler;

-    }

-}

diff --git a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java b/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java
index 5a70448..751ccf7 100644
--- a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java
+++ b/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MIMEOutputUtils.java
@@ -94,24 +94,10 @@
             // text nodes int the binary node list)

             Iterator binaryNodeIterator = binaryNodeList.iterator();

             while (binaryNodeIterator.hasNext()) {

-                Object o = binaryNodeIterator.next();

-                /* Upwards compatibiliy: Should be an instance of

-                 * MTOMAttachment, if the user calls us via

-                 * {@link MTOMXMLStreamWriter#writeOptimized(OMText)},

-                 * or {@link MTOMXMLStreamWriter#writeOptimized(MTOMAttachment)}.

-                 * However, this is a public method and possibly someone

-                 * invokes us directly.

-                 */

-                final MTOMAttachment attachment;

-                if (o instanceof OMText) {

-                    final OMText omText = (OMText) o;

-                    attachment = new DefaultMTOMAttachment((DataHandler) omText.getDataHandler(), omText.getContentID());

-                } else {

-                    attachment = (MTOMAttachment) o;

-                }

-                writeBodyPart(outStream, createMimeBodyPart(attachment

-                        .getContentID(), attachment.getDataHandler()),

-                        boundary);

+                OMText binaryNode = (OMText) binaryNodeIterator.next();

+                writeBodyPart(outStream, createMimeBodyPart(binaryNode

+                        .getContentID(), (DataHandler) binaryNode

+                        .getDataHandler()), boundary);

             }

             finishWritingMime(outStream);

             outStream.flush();

diff --git a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java b/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java
deleted file mode 100644
index d8f24e2..0000000
--- a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMAttachment.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.axiom.om.impl;

-

-import javax.activation.DataHandler;

-

-

-/**

- * Interface of an MTOM attachment, as processed by

- * {@link MTOMXMLStreamWriter#writeOptimized(org.apache.axiom.om.OMText)}

- * and {@link MIMEOutputUtils#complete(java.io.OutputStream, java.io.StringWriter, java.util.LinkedList, String, String, String, String)}.

- */

-public interface MTOMAttachment {

-    /**

-     * Returns the attachments ID.

-     */

-    String getContentID();

-    /**

-     * Returns the attachments contents.

-     */

-    DataHandler getDataHandler();

-}

diff --git a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java b/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
index 949a950..5194921 100644
--- a/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
+++ b/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
@@ -273,46 +273,32 @@
         return format.getContentType();
     }
 
-    private boolean isAttachmentPossible(DataHandler pDataHandler) {
-        if (pDataHandler != null) {
+    public void writeOptimized(OMText node) {
+        if(log.isDebugEnabled()){
+            log.debug("Start MTOMXMLStreamWriter.writeOptimized()");
+        }
+        DataHandler dh = (DataHandler)node.getDataHandler();
+        int optimized = UNSUPPORTED;
+        if(dh!=null){
             if(log.isDebugEnabled()){
                 log.debug("DataHandler fetched, starting optimized Threshold processing");
             }
-            int optimized = BufferUtils.doesDataHandlerExceedLimit(pDataHandler, format.getOptimizedThreshold());
-            return optimized != UNSUPPORTED  &&  optimized != EXCEED_LIMIT;
+            optimized= BufferUtils.doesDataHandlerExceedLimit(dh, format.getOptimizedThreshold());
         }
-        return false;
-    }
-
-    public void writeOptimized(MTOMAttachment attachment) {
-        if (log.isDebugEnabled()){
-            log.debug("Start MTOMXMLStreamWriter.writeOptimized()");
+        if(optimized == UNSUPPORTED || optimized == EXCEED_LIMIT){
+            if(log.isDebugEnabled()){
+                log.debug("node added to binart NodeList for optimization");
+            }
+            binaryNodeList.add(node);    
         }
-        if (isAttachmentPossible(attachment.getDataHandler())) {
-            binaryNodeList.add(attachment);    
-        } else {
-            throw new RuntimeException("Unable to inline an attachment.");
-        }
-        if (log.isDebugEnabled()){
-            log.debug("Exit MTOMXMLStreamWriter.writeOptimized()");
-        }
-    }
-
-    public void writeOptimized(OMText node) {
-        if (log.isDebugEnabled()){
-            log.debug("Start MTOMXMLStreamWriter.writeOptimized()");
-        }
-        final DataHandler dh = (DataHandler) node.getDataHandler();
-        if (isAttachmentPossible(dh)) {
-            binaryNodeList.add(new DefaultMTOMAttachment(dh, node.getContentID()));
-        } else {
+        else{
             try{
                 writeOutput(node);
-            } catch(XMLStreamException e) {
+            }catch(XMLStreamException e){
                 throw new RuntimeException("XMLStreamException in writeOutput() call", e);
             }
         }
-        if (log.isDebugEnabled()){
+        if(log.isDebugEnabled()){
             log.debug("Exit MTOMXMLStreamWriter.writeOptimized()");
         }
     }