This is an automated email from the ASF dual-hosted git repository.

billblough pushed a commit to branch 1_5
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git

commit e929313a2986b02a9ff867456c38c1a954bf98c9
Author: Andreas Veithen <veit...@apache.org>
AuthorDate: Sat Oct 15 20:53:41 2011 +0000

    Backported r795789 and part of r1042244 to the 1.5 branch to reduce the 
coupling to Axiom internals. This should solve AXIS2-4363 and AXIS2-4387.
---
 .../axis2/schema/template/ADBBeanTemplate.xsl      | 194 +--------------------
 .../types/soapencoding/Base64Binary.java           |  42 +----
 .../axis2/databinding/types/xsd/Base64Binary.java  |  26 +--
 .../axis2/databinding/utils/ConverterUtil.java     |  29 +--
 4 files changed, 12 insertions(+), 279 deletions(-)

diff --git 
a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl 
b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
index 03fd807..2daa034 100644
--- 
a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
+++ 
b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
@@ -692,20 +692,6 @@
             }
         </xsl:if>
 
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader 
reader) {
-        boolean isReaderMTOMAware = false;
-        <!-- workaround for the issues in the wstx reader!-->
-        try{
-          isReaderMTOMAware = 
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
      <!-- 
#########################################################################################
 -->
      <!-- get OMElement methods that allows direct writing -->
         /**
@@ -3052,33 +3038,7 @@
                                                   } else {
                                                 </xsl:if>
 
-                                                    if 
(isReaderMTOMAware(reader)
-                                                            &amp;&amp;
-                                                            
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                                    {
-                                                        //MTOM aware reader - 
get the datahandler directly and put it in the object
-                                                        <xsl:value-of 
select="$listName"/>.add(
-                                                                
(javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                                    } else {
-                                                        // Step in
-                                                        if 
(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT 
&amp;&amp; <xsl:value-of select="$propQName"/>.equals(reader.getName())) {
-                                                            reader.next();
-                                                        }
-                                                        if 
(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT 
&amp;&amp; reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                                        {
-                                                            java.lang.String 
id = org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                                            <xsl:value-of 
select="$listName"/>.add(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                                            reader.next();
-                                                            reader.next();
-                                                        } else 
if(reader.hasText()) {
-                                                            //Do the usual 
conversion
-                                                            java.lang.String 
content = reader.getText();
-                                                            <xsl:value-of 
select="$listName"/>.add(
-                                                                    
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                                                    
reader.next();
-                                                        }
-
-                                                    }
+                                                    <xsl:value-of 
select="$listName"/>.add(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
 
 
                                                 <xsl:if 
test="@nillable">}</xsl:if>
@@ -3107,30 +3067,7 @@
                                                               } else {
                                                             </xsl:if>
 
-                                                                <xsl:if 
test="not($simple)">reader.next();</xsl:if>
-                                                                if 
(isReaderMTOMAware(reader)
-                                                                        
&amp;&amp;
-                                                                        
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                                                {
-                                                                    //MTOM 
aware reader - get the datahandler directly and put it in the object
-                                                                    
<xsl:value-of select="$listName"/>.add(
-                                                                            
(javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                                                } else {
-                                                                    if 
(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT 
&amp;&amp; reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                                                    {
-                                                                        
java.lang.String id = 
org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                                                        
<xsl:value-of 
select="$listName"/>.add(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                                                        
reader.next();
-                                                                        
reader.next();
-                                                                    } else 
if(reader.hasText()) {
-                                                                        //Do 
the usual conversion
-                                                                        
java.lang.String content = reader.getText();
-                                                                        
<xsl:value-of select="$listName"/>.add(
-                                                                               
 
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                                                               
 reader.next();
-                                                                    }
-
-                                                                }
+                                                                <xsl:value-of 
select="$listName"/>.add(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
 
                                                             <xsl:if 
test="@nillable">}</xsl:if>
                                                         }else{
@@ -3368,35 +3305,9 @@
                                 <!-- end of OMelement handling -->
                                 <!-- start of the simple types handling for 
binary content-->
                                 <xsl:when test="@binary">
-                                    <xsl:if 
test="not($simple)">reader.next();</xsl:if>
-                                    if (isReaderMTOMAware(reader)
-                                            &amp;&amp;
-                                            
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                    {
-                                        //MTOM aware reader - get the 
datahandler directly and put it in the object
-                                        object.set<xsl:value-of 
select="$javaName"/>(
-                                                (javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                    } else {
-                                        if (reader.getEventType() == 
javax.xml.stream.XMLStreamConstants.START_ELEMENT &amp;&amp; 
reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                        {
-                                            java.lang.String id = 
org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                            object.set<xsl:value-of 
select="$javaName"/>(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                            reader.next();
-                                            <xsl:if test="($isType or $anon) 
and not($simple)">
-                                                reader.next();
-                                            </xsl:if>
-                                        } else if(reader.hasText()) {
-                                            //Do the usual conversion
-                                            java.lang.String content = 
reader.getText();
-                                            object.set<xsl:value-of 
select="$javaName"/>(
-                                                    
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                            <xsl:if test="($isType or $anon) 
and not($simple)">
-                                                reader.next();
-                                            </xsl:if>
-                                        }
-                                    }
+                                    object.set<xsl:value-of 
select="$javaName"/>(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
 
-                                    <xsl:if test="$isType or $anon">  <!-- 
This is a subelement property to be consumed -->
+                                    <xsl:if test="($isType or $anon) and 
not($simple)">  <!-- This is a subelement property to be consumed -->
                                         reader.next();
                                     </xsl:if>
                                 </xsl:when>
@@ -4129,20 +4040,6 @@ public <xsl:if test="not(@unwrapped) or 
(@skip-write)">static</xsl:if> class <xs
             return 
org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
         }
 
-        /**
-            * isReaderMTOMAware
-            * @return true if the reader supports MTOM
-            */
-          public static boolean 
isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-               boolean isReaderMTOMAware = false;
-               <!-- workaround for the issues in the wstx reader!-->
-               try{
-                 isReaderMTOMAware = 
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-               }catch(java.lang.IllegalArgumentException e){
-                 isReaderMTOMAware = false;
-               }
-               return isReaderMTOMAware;
-          }
             <!-- 
#########################################################################################
 -->
             <!-- get OMElement methods that allows direct writing -->
                /**
@@ -5343,33 +5240,7 @@ public <xsl:if test="not(@unwrapped) or 
(@skip-write)">static</xsl:if> class <xs
                                                   } else {
                                                 </xsl:if>
 
-                                                    if 
(isReaderMTOMAware(reader)
-                                                            &amp;&amp;
-                                                            
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                                    {
-                                                        //MTOM aware reader - 
get the datahandler directly and put it in the object
-                                                        <xsl:value-of 
select="$listName"/>.add(
-                                                                
(javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                                    } else {
-                                                        // Step in
-                                                        if 
(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT 
&amp;&amp; <xsl:value-of select="$propQName"/>.equals(reader.getName())) {
-                                                            reader.next();
-                                                        }
-                                                        if 
(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT 
&amp;&amp; reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                                        {
-                                                            java.lang.String 
id = org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                                            <xsl:value-of 
select="$listName"/>.add(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                                            reader.next();
-                                                            reader.next();
-                                                        } else 
if(reader.hasText()) {
-                                                            //Do the usual 
conversion
-                                                            java.lang.String 
content = reader.getText();
-                                                            <xsl:value-of 
select="$listName"/>.add(
-                                                                    
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                                                    
reader.next();
-                                                        }
-
-                                                    }
+                                                    <xsl:value-of 
select="$listName"/>.add(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
 
 
                                                 <xsl:if 
test="@nillable">}</xsl:if>
@@ -5398,30 +5269,7 @@ public <xsl:if test="not(@unwrapped) or 
(@skip-write)">static</xsl:if> class <xs
                                                               } else {
                                                             </xsl:if>
 
-                                                                <xsl:if 
test="not($simple)">reader.next();</xsl:if>
-                                                                if 
(isReaderMTOMAware(reader)
-                                                                        
&amp;&amp;
-                                                                        
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                                                {
-                                                                    //MTOM 
aware reader - get the datahandler directly and put it in the object
-                                                                    
<xsl:value-of select="$listName"/>.add(
-                                                                            
(javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                                                } else {
-                                                                    if 
(reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT 
&amp;&amp; reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                                                    {
-                                                                        
java.lang.String id = 
org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                                                        
<xsl:value-of 
select="$listName"/>.add(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                                                        
reader.next();
-                                                                        
reader.next();
-                                                                    } else 
if(reader.hasText()) {
-                                                                        //Do 
the usual conversion
-                                                                        
java.lang.String content = reader.getText();
-                                                                        
<xsl:value-of select="$listName"/>.add(
-                                                                               
 
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                                                               
 reader.next();
-                                                                    }
-
-                                                                }
+                                                                <xsl:value-of 
select="$listName"/>.add(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
 
                                                             <xsl:if 
test="@nillable">}</xsl:if>
                                                         }else{
@@ -5622,35 +5470,9 @@ public <xsl:if test="not(@unwrapped) or 
(@skip-write)">static</xsl:if> class <xs
                                 <!-- end of OMelement handling -->
                                 <!-- start of the simple types handling for 
binary content-->
                                 <xsl:when test="@binary">
-                                    <xsl:if 
test="not($simple)">reader.next();</xsl:if>
-                                    if (isReaderMTOMAware(reader)
-                                            &amp;&amp;
-                                            
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                    {
-                                        //MTOM aware reader - get the 
datahandler directly and put it in the object
-                                        object.set<xsl:value-of 
select="$javaName"/>(
-                                                (javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                    } else {
-                                        if (reader.getEventType() == 
javax.xml.stream.XMLStreamConstants.START_ELEMENT &amp;&amp; 
reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                        {
-                                            java.lang.String id = 
org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                            object.set<xsl:value-of 
select="$javaName"/>(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                            reader.next();
-                                            <xsl:if test="($isType or $anon) 
and not($simple)">
-                                                reader.next();
-                                            </xsl:if>
-                                        } else if(reader.hasText()) {
-                                            //Do the usual conversion
-                                            java.lang.String content = 
reader.getText();
-                                            object.set<xsl:value-of 
select="$javaName"/>(
-                                                    
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                            <xsl:if test="($isType or $anon) 
and not($simple)">
-                                                reader.next();
-                                            </xsl:if>
-                                        }
-                                    }
+                                    object.set<xsl:value-of 
select="$javaName"/>(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
 
-                                    <xsl:if test="$isType or $anon">  <!-- 
This is a subelement property to be consumed -->
+                                    <xsl:if test="($isType or $anon) and 
not($simple)">  <!-- This is a subelement property to be consumed -->
                                         reader.next();
                                     </xsl:if>
                                 </xsl:when>
diff --git 
a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java
 
b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java
index 8872ef2..1a97229 100644
--- 
a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java
+++ 
b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java
@@ -87,22 +87,6 @@
                             }
                         
 
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader 
reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = 
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
         /**
         *
         * @param parentQName
@@ -455,31 +439,7 @@
                 
                                     if (reader.isStartElement()  || 
reader.hasText()){
                                 
-                                    if (isReaderMTOMAware(reader)
-                                            &&
-                                            
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                    {
-                                        //MTOM aware reader - get the 
datahandler directly and put it in the object
-                                        object.setBase64Binary(
-                                                (javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                    } else {
-                                        if (reader.getEventType() == 
javax.xml.stream.XMLStreamConstants.START_ELEMENT && 
reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                        {
-                                            java.lang.String id = 
org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                            
object.setBase64Binary(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                            reader.next();
-                                            
-                                        } else if(reader.hasText()) {
-                                            //Do the usual conversion
-                                            java.lang.String content = 
reader.getText();
-                                            object.setBase64Binary(
-                                                    
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                            
-                                        }
-                                    }
-
-                                      
-                                        reader.next();
+                                        
object.setBase64Binary(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
                                     
                               }  // End of if for expected property start 
element
                                 
diff --git 
a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java 
b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java
index 2ba0cd7..15fb552 100644
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java
+++ b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java
@@ -455,31 +455,7 @@
                 
                                     if (reader.isStartElement()  || 
reader.hasText()){
                                 
-                                    if (isReaderMTOMAware(reader)
-                                            &&
-                                            
java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
-                                    {
-                                        //MTOM aware reader - get the 
datahandler directly and put it in the object
-                                        object.setBase64Binary(
-                                                (javax.activation.DataHandler) 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
-                                    } else {
-                                        if (reader.getEventType() == 
javax.xml.stream.XMLStreamConstants.START_ELEMENT && 
reader.getName().equals(new 
javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI,
 org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
-                                        {
-                                            java.lang.String id = 
org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
-                                            
object.setBase64Binary(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder)
 ((org.apache.axiom.om.impl.llom.OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id));
-                                            reader.next();
-                                            
-                                        } else if(reader.hasText()) {
-                                            //Do the usual conversion
-                                            java.lang.String content = 
reader.getText();
-                                            object.setBase64Binary(
-                                                    
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                            
-                                        }
-                                    }
-
-                                      
-                                        reader.next();
+                                        
object.setBase64Binary(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
                                     
                               }  // End of if for expected property start 
element
                                 
diff --git 
a/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java 
b/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
index 8547210..ad98668 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
@@ -22,15 +22,11 @@ package org.apache.axis2.databinding.utils;
 import org.apache.axiom.attachments.ByteArrayDataSource;
 import org.apache.axiom.attachments.utils.IOUtils;
 import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMConstants;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.MTOMConstants;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.llom.OMStAXWrapper;
 import org.apache.axiom.om.util.Base64;
-import org.apache.axiom.om.util.ElementHelper;
 import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
+import org.apache.axiom.util.stax.XMLStreamReaderUtils;
 import org.apache.axis2.databinding.ADBBean;
 import org.apache.axis2.databinding.ADBException;
 import org.apache.axis2.databinding.i18n.ADBMessages;
@@ -1525,8 +1521,7 @@ public class ConverterUtil {
 
                 if (Constants.XSD_NAMESPACE.equals(attributeNameSpace)) {
                     if ("base64Binary".equals(attributeType)) {
-                        xmlStreamReader.next();
-                        returnObject = getDataHandlerObject(xmlStreamReader);
+                        returnObject = 
XMLStreamReaderUtils.getDataHandlerFromElement(xmlStreamReader);
                     } else {
                         String attribValue = xmlStreamReader.getElementText();
                         if (attribValue != null) {
@@ -1617,26 +1612,6 @@ public class ConverterUtil {
         return returnObject;
     }
 
-    private static Object getDataHandlerObject(XMLStreamReader reader) throws 
XMLStreamException {
-        Object dataHandler = null;
-        if 
(Boolean.TRUE.equals(reader.getProperty(OMConstants.IS_DATA_HANDLERS_AWARE))
-                && 
Boolean.TRUE.equals(reader.getProperty(OMConstants.IS_BINARY))) {
-            dataHandler = 
reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER);
-        } else {
-            if (reader.getEventType() == XMLStreamConstants.START_ELEMENT &&
-                    reader.getName().equals(new 
QName(MTOMConstants.XOP_NAMESPACE_URI, MTOMConstants.XOP_INCLUDE))) {
-                String id = ElementHelper.getContentID(reader, "UTF-8");
-                dataHandler = ((MTOMStAXSOAPModelBuilder) ((OMStAXWrapper) 
reader).getBuilder()).getDataHandler(id);
-                reader.next();
-            } else if (reader.hasText()) {
-                String content = reader.getText();
-                dataHandler = ConverterUtil.convertToBase64Binary(content);
-
-            }
-        }
-        return dataHandler;
-    }
-
     static {
         isCustomClassPresent = 
(System.getProperty(SYSTEM_PROPERTY_ADB_CONVERTERUTIL) != null);
         if (isCustomClassPresent){

Reply via email to