EMPIREDB-362 bugfix PreparedStatementParameters added twice
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBCommand.java b/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
index 6a31fbd..c978813 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
@@ -1584,6 +1584,7 @@
         buf.append("\r\nFROM ");
         // Join
         boolean sep = false;
+        int whichParams = 0;
         List<DBRowSet> tables = getRowSetList();
         if (joins!=null && joins.size()>0)
         {   // Join
@@ -1601,21 +1602,23 @@
                      tables.remove(join.getRightTable());
                      // Context
                      context = CTX_NAME|CTX_VALUE;
+                     whichParams = 0;
                  }
                  else
                  {   // Extend the join                    
-                     if ( joinTables.contains(join.getRightTable()))
-                          join.reverse();
+                     if (joinTables.contains(join.getRightTable()))
+                         join.reverse();
                      // Add Right Table     
                      joinTables.add(join.getRightTable());
                      tables .remove(join.getRightTable());
                      // Context
                      context = CTX_VALUE;
                      buf.append( "\t" );
+                     whichParams = 1;
                  }
                  join.addSQL(buf, context);
                  // Merge subquery params
-                 Object[] subQueryParams = join.getSubqueryParams();
+                 Object[] subQueryParams = join.getSubqueryParams(whichParams);
                  if (subQueryParams!=null)
                      mergeSubqueryParams(subQueryParams);
                  // add CRLF
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java
index 7a0629e..fdcee91 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBColumnJoinExpr.java
@@ -253,15 +253,16 @@
     /**

      * Returns the subquery Params

      * Valid only directly after addSQL() has been called! 

+     * @param which: both (==0) | left (<=0) | right (>=0)   

      * @return the subquery params;

      */

     @Override

-    public Object[] getSubqueryParams()

+    public Object[] getSubqueryParams(int which)

     {

         DBRowSet left = getLeftTable();

         DBRowSet right = getRightTable();

-        Object[] leftParams  = (left  instanceof DBQuery) ? ((DBQuery)left ).getCommandExpr().getParamValues() : null;

-        Object[] rightParams = (right instanceof DBQuery) ? ((DBQuery)right).getCommandExpr().getParamValues() : null;

+        Object[] leftParams  = (which<=0 && (left  instanceof DBQuery)) ? ((DBQuery)left ).getCommandExpr().getParamValues() : null;

+        Object[] rightParams = (which>=0 && (right instanceof DBQuery)) ? ((DBQuery)right).getCommandExpr().getParamValues() : null;

         if (leftParams!=null && rightParams!=null)

         {   // combine

             Object[] both = new Object[leftParams.length+rightParams.length];

diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBCrossJoinExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBCrossJoinExpr.java
index 5b0df2f..2868f6c 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBCrossJoinExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBCrossJoinExpr.java
@@ -156,14 +156,15 @@
 
     /**
      * Returns the subquery Params
-     * Valid only directly after addSQL() has been called! 
+     * Valid only directly after addSQL() has been called!
+     * @param which: both (==0) | left (<=0) | right (>=0)   
      * @return the subquery params;
      */
     @Override
-    public Object[] getSubqueryParams()
+    public Object[] getSubqueryParams(int which)
     {
-        Object[] leftParams  = (left  instanceof DBQuery) ? ((DBQuery)left ).getCommandExpr().getParamValues() : null;
-        Object[] rightParams = (right instanceof DBQuery) ? ((DBQuery)right).getCommandExpr().getParamValues() : null;
+        Object[] leftParams  = (which<=0 && (left  instanceof DBQuery)) ? ((DBQuery)left ).getCommandExpr().getParamValues() : null;
+        Object[] rightParams = (which>=0 && (right instanceof DBQuery)) ? ((DBQuery)right).getCommandExpr().getParamValues() : null;
         if (leftParams!=null && rightParams!=null)
         {   // combine
             Object[] both = new Object[leftParams.length+rightParams.length];
diff --git a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBJoinExpr.java b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBJoinExpr.java
index 7cb40bf..6867657 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/join/DBJoinExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/join/DBJoinExpr.java
@@ -100,9 +100,10 @@
     /**
      * Returns the subquery Params
      * Valid only directly after addSQL() has been called! 
+     * @param which: both (==0) | left (<=0) | right (>=0)   
      * @return the subquery params;
      */
-    public abstract Object[] getSubqueryParams();
+    public abstract Object[] getSubqueryParams(int which);
     
     /**
      * This function swaps the left and the right statements of the join expression.