You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by lu...@apache.org on 2002/04/25 00:14:25 UTC

cvs commit: jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/sql SetDataSourceTag.java TransactionTag.java

luehe       02/04/24 15:14:25

  Modified:    standard/src/org/apache/taglibs/standard/resources
                        Resources.properties
               standard/src/org/apache/taglibs/standard/tag/common/sql
                        DataSourceUtil.java QueryTagSupport.java
                        SetDataSourceTagSupport.java
                        TransactionTagSupport.java UpdateTagSupport.java
               standard/src/org/apache/taglibs/standard/tag/el/sql
                        SetDataSourceTag.java TransactionTag.java
               standard/src/org/apache/taglibs/standard/tag/rt/sql
                        SetDataSourceTag.java TransactionTag.java
  Log:
  <sql:setDataSource>, <sql:transaction>, <sql:query>, and <sql:update>
  now all throw a JspException if 'dataSource' is specified but null
  (this is being added to the "Null & Error Handling" section of these
  actions).
  
  Revision  Changes    Path
  1.30      +4 -1      jakarta-taglibs/standard/src/org/apache/taglibs/standard/resources/Resources.properties
  
  Index: Resources.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/resources/Resources.properties,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- Resources.properties	23 Apr 2002 17:41:54 -0000	1.29
  +++ Resources.properties	24 Apr 2002 22:14:24 -0000	1.30
  @@ -202,8 +202,11 @@
   SQL_PROCESS_ERROR=\
       Error processing SQL: "{0}"
   
  -SQL_DATASOURCE_INVALID=\
  +SQL_DATASOURCE_INVALID_TYPE=\
       'dataSource' is neither a String nor a javax.sql.DataSource
  +
  +SQL_DATASOURCE_NULL=\
  +    'dataSource' is null
   
   SQL_MAXROWS_PARSE_ERROR=\
       Error parsing 'javax.servlet.jsp.jstl.sql.maxRows' configuration setting: "{0}"
  
  
  
  1.9       +1 -1      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/DataSourceUtil.java
  
  Index: DataSourceUtil.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/DataSourceUtil.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DataSourceUtil.java	24 Apr 2002 01:16:31 -0000	1.8
  +++ DataSourceUtil.java	24 Apr 2002 22:14:24 -0000	1.9
  @@ -114,7 +114,7 @@
               dataSource = (DataSource) rawDataSource;
           } else {
   	    throw new JspException(
  -                Resources.getMessage("SQL_DATASOURCE_INVALID"));
  +                Resources.getMessage("SQL_DATASOURCE_INVALID_TYPE"));
   	}
   
   	return dataSource;
  
  
  
  1.28      +14 -5     jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java
  
  Index: QueryTagSupport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/QueryTagSupport.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- QueryTagSupport.java	24 Apr 2002 18:41:25 -0000	1.27
  +++ QueryTagSupport.java	24 Apr 2002 22:14:24 -0000	1.28
  @@ -112,10 +112,16 @@
       }
   
       private void init() {
  -        scope = PageContext.PAGE_SCOPE;
           startRow = 0;
           maxRows = -1;
   	maxRowsSpecified = dataSourceSpecified = false;
  +	isPartOfTransaction = false;
  +	conn = null;
  +	rawDataSource = null;
  +	parameters = null;
  +	sql = null;
  +	var = null;
  +        scope = PageContext.PAGE_SCOPE;
       }
   
   
  @@ -267,11 +273,8 @@
   	    } catch (SQLException e) {} // Not much we can do
   	}
   
  -	// Reset the per-invokation state.
  -	parameters = null;
  -	isPartOfTransaction = false;
   	conn = null;
  -        rawDataSource = null;
  +	parameters = null;
       }
   
   
  @@ -281,6 +284,8 @@
       private Connection getConnection() throws JspException, SQLException {
   	// Fix: Add all other mechanisms
   	Connection conn = null;
  +	isPartOfTransaction = false;
  +
   	TransactionTagSupport parent = (TransactionTagSupport) 
   	    findAncestorWithClass(this, TransactionTagSupport.class);
   	if (parent != null) {
  @@ -291,6 +296,10 @@
   	    conn = parent.getSharedConnection();
               isPartOfTransaction = true;
   	} else {
  +	    if ((rawDataSource == null) && dataSourceSpecified) {
  +		throw new JspException(
  +		    Resources.getMessage("SQL_DATASOURCE_NULL"));
  +	    }
   	    DataSource dataSource = DataSourceUtil.getDataSource(rawDataSource,
   								 pageContext);
               try {
  
  
  
  1.9       +31 -1     jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/SetDataSourceTagSupport.java
  
  Index: SetDataSourceTagSupport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/SetDataSourceTagSupport.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SetDataSourceTagSupport.java	24 Apr 2002 01:16:31 -0000	1.8
  +++ SetDataSourceTagSupport.java	24 Apr 2002 22:14:24 -0000	1.9
  @@ -76,14 +76,33 @@
   public class SetDataSourceTagSupport extends TagSupport {
   
       protected Object dataSource;
  +    protected boolean dataSourceSpecified;
       protected String jdbcURL;
       protected String driverClassName;
       protected String userName;
       protected String password;
   
  -    private int scope = PageContext.PAGE_SCOPE;
  +    private int scope;
       private String var;
   
  +
  +    //*********************************************************************
  +    // Constructor and initialization
  +
  +    public SetDataSourceTagSupport() {
  +	super();
  +	init();
  +    }
  +
  +    private void init() {
  +	dataSource = null;
  +	dataSourceSpecified = false;
  +	jdbcURL = driverClassName = userName = password = null;
  +	var = null;
  +	scope = PageContext.PAGE_SCOPE;
  +    }
  +
  +
       //*********************************************************************
       // Accessor methods
   
  @@ -100,6 +119,7 @@
   	this.var = var;
       }
   
  +
       //*********************************************************************
       // Tag logic
   
  @@ -109,6 +129,11 @@
           if (dataSource != null) {
               ds = DataSourceUtil.getDataSource(dataSource, pageContext);
           } else {
  +	    if (dataSourceSpecified) {
  +		throw new JspException(
  +                    Resources.getMessage("SQL_DATASOURCE_NULL"));
  +	    }
  +
               DataSourceWrapper dsw = new DataSourceWrapper();
               try {
                   // set driver class iff provided by the tag
  @@ -134,5 +159,10 @@
           }
   
   	return SKIP_BODY;
  +    }
  +
  +    // Releases any resources we may have (or inherit)
  +    public void release() {
  +	init();
       }
   }
  
  
  
  1.11      +9 -0      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/TransactionTagSupport.java
  
  Index: TransactionTagSupport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/TransactionTagSupport.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- TransactionTagSupport.java	24 Apr 2002 01:16:31 -0000	1.10
  +++ TransactionTagSupport.java	24 Apr 2002 22:14:24 -0000	1.11
  @@ -96,6 +96,7 @@
   
       protected Object rawDataSource;
       protected DataSource dataSource;
  +    protected boolean dataSourceSpecified;
   
   
       //*********************************************************************
  @@ -116,6 +117,9 @@
   
       private void init() {
   	conn = null;
  +	dataSource = null;
  +	dataSourceSpecified = false;
  +	rawDataSource = null;
   	isolation = Connection.TRANSACTION_NONE;
       }
   
  @@ -129,6 +133,11 @@
        * the transaction.
        */
       public int doStartTag() throws JspException {
  +
  +	if ((rawDataSource == null) && dataSourceSpecified) {
  +	    throw new JspException(
  +                Resources.getMessage("SQL_DATASOURCE_NULL"));
  +	}
   
           dataSource = DataSourceUtil.getDataSource(rawDataSource, pageContext);
   
  
  
  
  1.19      +15 -6     jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/UpdateTagSupport.java
  
  Index: UpdateTagSupport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/UpdateTagSupport.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- UpdateTagSupport.java	24 Apr 2002 18:41:25 -0000	1.18
  +++ UpdateTagSupport.java	24 Apr 2002 22:14:24 -0000	1.19
  @@ -108,8 +108,13 @@
       }
   
       private void init() {
  +	rawDataSource = null;
  +	sql = null;
  +	conn = null;
  +	parameters = null;
  +	isPartOfTransaction = dataSourceSpecified = false;
           scope = PageContext.PAGE_SCOPE;
  -	dataSourceSpecified = false;
  +	var = null;
       }
   
   
  @@ -210,15 +215,13 @@
   	if (conn != null && !isPartOfTransaction) {
   	    try {
   		conn.close();
  -	    } catch (SQLException e) {} // Not much we can do
  +	    } catch (SQLException e) {
  +		// Not much we can do
  +	    }
   	}
   
  -	// Reset the per-invokation state.
   	parameters = null;
  -	isPartOfTransaction = false;
   	conn = null;
  -        bodyContent = null;
  -        rawDataSource = null;
       }
   
   
  @@ -243,6 +246,8 @@
       private Connection getConnection() throws JspException, SQLException {
   	// Fix: Add all other mechanisms
   	Connection conn = null;
  +	isPartOfTransaction = false;
  +
   	TransactionTagSupport parent = (TransactionTagSupport) 
   	    findAncestorWithClass(this, TransactionTagSupport.class);
   	if (parent != null) {
  @@ -253,6 +258,10 @@
   	    conn = parent.getSharedConnection();
               isPartOfTransaction = true;
   	} else {
  +	    if ((rawDataSource == null) && dataSourceSpecified) {
  +		throw new JspException(
  +		    Resources.getMessage("SQL_DATASOURCE_NULL"));
  +	    }
   	    DataSource dataSource = DataSourceUtil.getDataSource(rawDataSource,
   								 pageContext);
               try {
  
  
  
  1.3       +1 -0      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/el/sql/SetDataSourceTag.java
  
  Index: SetDataSourceTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/el/sql/SetDataSourceTag.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SetDataSourceTag.java	19 Apr 2002 00:40:49 -0000	1.2
  +++ SetDataSourceTag.java	24 Apr 2002 22:14:25 -0000	1.3
  @@ -77,6 +77,7 @@
   
       public void setDataSource(String dataSourceEL) {
   	this.dataSourceEL = dataSourceEL;
  +	this.dataSourceSpecified = true;
       }
   
       public void setDriver(String driverClassNameEL) {
  
  
  
  1.5       +1 -0      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/el/sql/TransactionTag.java
  
  Index: TransactionTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/el/sql/TransactionTag.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TransactionTag.java	11 Apr 2002 00:46:25 -0000	1.4
  +++ TransactionTag.java	24 Apr 2002 22:14:25 -0000	1.5
  @@ -72,6 +72,7 @@
   
       public void setDataSource(String dataSourceEL) {
   	this.dataSourceEL = dataSourceEL;
  +	this.dataSourceSpecified = true;
       }
   
       public void setIsolation(String isolationEL) {
  
  
  
  1.2       +1 -0      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/sql/SetDataSourceTag.java
  
  Index: SetDataSourceTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/sql/SetDataSourceTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SetDataSourceTag.java	16 Apr 2002 00:01:34 -0000	1.1
  +++ SetDataSourceTag.java	24 Apr 2002 22:14:25 -0000	1.2
  @@ -69,6 +69,7 @@
   
       public void setDataSource(Object dataSource) {
   	this.dataSource = dataSource;
  +	this.dataSourceSpecified = true;
       }
   
       public void setDriver(String driverClassName) {
  
  
  
  1.5       +1 -0      jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/sql/TransactionTag.java
  
  Index: TransactionTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/rt/sql/TransactionTag.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TransactionTag.java	18 Apr 2002 15:27:41 -0000	1.4
  +++ TransactionTag.java	24 Apr 2002 22:14:25 -0000	1.5
  @@ -76,6 +76,7 @@
        */
       public void setDataSource(Object dataSource) {
   	this.rawDataSource = dataSource;
  +	this.dataSourceSpecified = true;
       }
   
       /**
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>