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); }