joerg       2003/06/10 17:28:31

  Modified:    src/blocks/databases/java/org/apache/cocoon/transformation
                        SQLTransformer.java
  Log:
  fixed bug 14977: NPE in serializeData()
  
  Revision  Changes    Path
  1.6       +14 -13    
cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
  
  Index: SQLTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SQLTransformer.java       24 Mar 2003 14:33:56 -0000      1.5
  +++ SQLTransformer.java       11 Jun 2003 00:28:31 -0000      1.6
  @@ -1038,7 +1038,7 @@
                       sb.append( query.getColumnValue( av.name ) );
                   }
               }
  -            
  +
               String query = StringUtils.replace(sb.toString().trim(), "\r", " ", -1);
               // Test, if this is an update (by comparing with select)
               if ( !isstoredprocedure && !isupdate) {
  @@ -1175,32 +1175,33 @@
               query_parts.addElement( object );
           }
   
  -        protected void serializeData(ComponentManager manager,
  -                                     String           value)
  -        throws SQLException, SAXException {
  +        protected void serializeData(ComponentManager manager, String value)
  +                throws SQLException, SAXException {
               if (value != null) {
                   value = value.trim();
                   // Could this be XML ?
                   if (value.length() > 0 && value.charAt(0) == '<') {
                       try {
  -                        if (transformer.parser != null) {
  +                        if (transformer.parser == null) {
                               transformer.parser = 
(SAXParser)manager.lookup(SAXParser.ROLE);
                           }
  -                        if (transformer.compiler != null) {
  -                            compiler = 
(XMLSerializer)manager.lookup(XMLSerializer.ROLE);
  +                        if (transformer.compiler == null) {
  +                            transformer.compiler = 
(XMLSerializer)manager.lookup(XMLSerializer.ROLE);
                           }
  -                        if (transformer.interpreter != null) {
  -                            interpreter = 
(XMLDeserializer)manager.lookup(XMLDeserializer.ROLE);
  +                        if (transformer.interpreter == null) {
  +                            transformer.interpreter = 
(XMLDeserializer)manager.lookup(XMLDeserializer.ROLE);
                           }
  -                        parser.parse(new InputSource(new 
StringReader("<root>"+value+"</root>")), compiler);
  +                        transformer.parser.parse(new InputSource(new 
StringReader("<root>" + value + "</root>")),
  +                                                 transformer.compiler);
   
                           IncludeXMLConsumer filter = new 
IncludeXMLConsumer(transformer, transformer);
                           filter.setIgnoreRootElement(true);
   
  -                        interpreter.setConsumer(filter);
  +                        transformer.interpreter.setConsumer(filter);
   
  -                        interpreter.deserialize(compiler.getSAXFragment());
  +                        
transformer.interpreter.deserialize(transformer.compiler.getSAXFragment());
                       } catch (Exception local) {
  +                        // FIXME: bad coding "catch(Exception)"
                           // if an exception occured the data was not xml
                           transformer.data(value);
                       }
  
  
  

Reply via email to