You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jo...@apache.org on 2003/06/11 02:28:32 UTC
cvs commit: cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/transformation SQLTransformer.java
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);
}
Re: cvs commit: cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/transformation
SQLTransformer.java
Posted by Joerg Heinicke <jo...@gmx.de>.
Is there any reason for catching all exceptions instead of catching
SQLExc., IOExc. and ComponentExc. separately?
Joerg
joerg@apache.org wrote:
> joerg 2003/06/10 17:28:31
>
> Modified: src/blocks/databases/java/org/apache/cocoon/transformation
> SQLTransformer.java
...
> } catch (Exception local) {
> + // FIXME: bad coding "catch(Exception)"
> // if an exception occured the data was not xml
> transformer.data(value);
> }