Tag: cws_src680_hsqldb2
User: oj      
Date: 05/01/28 04:21:58

Modified:
 /dba/connectivity/source/drivers/hsqldb/
  HConnection.cxx, HDriver.cxx, HStorageAccess.cxx, HStorageMap.cxx,
  StorageNativeInputStream.cxx, StorageNativeOutputStream.cxx,
  StorageNativeOutputStream.h, exports.dxp, hsqldb.map

Log:
 #i39922# new interfaces in hsqldb and some debug info

File Changes:

Directory: /dba/connectivity/source/drivers/hsqldb/
===================================================

File [changed]: HConnection.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/HConnection.cxx?r1=1.1.4.1&r2=1.1.4.2
Delta lines:  +4 -4
-------------------
--- HConnection.cxx     19 Jan 2005 07:03:25 -0000      1.1.4.1
+++ HConnection.cxx     28 Jan 2005 12:21:53 -0000      1.1.4.2
@@ -2,9 +2,9 @@
  *
  *  $RCSfile: HConnection.cxx,v $
  *
- *  $Revision: 1.1.4.1 $
+ *  $Revision: 1.1.4.2 $
  *
- *  last change: $Author: oj $ $Date: 2005/01/19 07:03:25 $
+ *  last change: $Author: oj $ $Date: 2005/01/28 12:21:53 $
  *
  *  The Contents of this file are made available subject to the terms of
  *  either of the following licenses
@@ -108,7 +108,7 @@
                {
                        ::com::sun::star::uno::Reference< 
::com::sun::star::sdbc::XStatement> xStmt = m_xConnection->createStatement();
                        if ( xStmt.is() )
-                               
xStmt->execute(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SET WRITE_DELAY 
0")));
+                               
xStmt->execute(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SET WRITE_DELAY 
60")));
                }
        }
        catch(::com::sun::star::uno::Exception&)

File [changed]: HDriver.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/HDriver.cxx?r1=1.2.20.2&r2=1.2.20.3
Delta lines:  +7 -4
-------------------
--- HDriver.cxx 26 Jan 2005 06:54:07 -0000      1.2.20.2
+++ HDriver.cxx 28 Jan 2005 12:21:54 -0000      1.2.20.3
@@ -256,6 +256,11 @@
                 {
                     xOrig = xDriver->connect( sConnectURL, 
aConvertedProperties );
                 }
+                catch(SQLException e)
+                {
+                    StorageContainer::revokeStorage(sKey,NULL);
+                    throw e;
+                }
                 catch(Exception e)
                 {
                     StorageContainer::revokeStorage(sKey,NULL);
@@ -277,7 +282,6 @@
                     Reference<XComponent> xComp(xOrig,UNO_QUERY);
                     if ( xComp.is() )
                         xComp->addEventListener(this);
-                    
m_aConnections.push_back(TWeakPair(WeakReferenceHelper(xOrig),TWeakConnectionPair(sKey,pMetaConnection)));
 
                     // we want to close all connections when the office shuts 
down
                     static Reference< XTerminateListener> s_xTerminateListener;
@@ -293,6 +297,7 @@
                        }
                     Reference< XComponent> xIfc = new 
OConnectionWeakWrapper(xOrig,m_xFactory);
                                    xConnection.set(xIfc,UNO_QUERY);
+                    
m_aConnections.push_back(TWeakPair(WeakReferenceHelper(xOrig),TWeakConnectionPair(sKey,WeakReferenceHelper(xConnection))));
 
                     Reference<XTransactionBroadcaster> 
xBroad(xStorage,UNO_QUERY);
                     if ( xBroad.is() )
@@ -478,12 +483,10 @@
                                 ::std::bind2nd(::std::equal_to< 
::rtl::OUString >(),sKey)
                                 
,::std::compose1(::std::select1st<TWeakConnectionPair>(),::std::select2nd< 
TWeakPair >())));
                 if ( i != m_aConnections.end() )
-                {
                     shutdownConnection(i);
                 }
             }
         }
-       }
     //------------------------------------------------------------------
     void ODriverDelegator::shutdownConnections()
     {
@@ -522,7 +525,7 @@
                        {
                                Reference< XStatement> xStmt = 
xConnection->createStatement();
                                if ( xStmt.is() )
-                                       
xStmt->execute(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SET WRITE_DELAY 
0")));
+                                       
xStmt->execute(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SET WRITE_DELAY 
60")));
                        }
                }
                catch(Exception&)

File [changed]: HStorageAccess.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/HStorageAccess.cxx?r1=1.2.20.2&r2=1.2.20.3
Delta lines:  +96 -5
--------------------
--- HStorageAccess.cxx  25 Jan 2005 08:42:51 -0000      1.2.20.2
+++ HStorageAccess.cxx  28 Jan 2005 12:21:54 -0000      1.2.20.3
@@ -95,6 +95,15 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_openStream
   (JNIEnv * env, jobject obj_this,jstring name, jstring key, jint mode)
 {
+#if OSL_DEBUG_LEVEL > 1
+    {
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+        ::rtl::OString sName = 
::rtl::OUStringToOString(sOrgName,RTL_TEXTENCODING_ASCII_US);
+        getStreams()[sOrgName] = fopen( sName.getStr(), "a+" );
+    }
+#endif
+
        StorageContainer::registerStream(env,name,key,mode);
 }
 // 
-----------------------------------------------------------------------------
@@ -106,6 +115,24 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_close
   (JNIEnv * env, jobject obj_this,jstring name, jstring key)
 {
+    ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
+    Reference< XOutputStream> xFlush = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
+    if ( xFlush.is() )
+        try
+        {
+            xFlush->flush();
+        }
+        catch(Exception&)
+        {}
+#if OSL_DEBUG_LEVEL > 1
+    {
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+        fclose( getStreams()[sOrgName] );
+        getStreams().erase(sOrgName);
+    }
+#endif
+
        StorageContainer::revokeStream(env,name,key);
 }
 // 
-----------------------------------------------------------------------------
@@ -171,8 +198,12 @@
                                if (tmpInt < 0 ){
                                        tmpInt = 256 +tmpInt;
                                }
-#if OSL_DEBUG_LEVEL > 0
+#if OSL_DEBUG_LEVEL > 1
                                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+                if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+                else
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
                                fputc(tmpInt,getStreams()[sOrgName]);
 #endif
                                return(tmpInt);
@@ -229,8 +260,12 @@
                        OSL_ENSURE(aData.getLength() >= nBytesRead,"Buffer is 
too small!");
                        
env->SetByteArrayRegion(buffer,off,nBytesRead,&aData[0]);
 
-#if OSL_DEBUG_LEVEL > 0
+#if OSL_DEBUG_LEVEL > 1
                        ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+            if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+            else
+                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
                        
fwrite(&aData[0],sizeof(sal_Int8),nBytesRead,getStreams()[sOrgName]);
 #endif
                }
@@ -296,8 +331,12 @@
                            return -1;
                    }
                    jint nRet = ((ch[0] << 24) + (ch[1] << 16) + (ch[2] << 8) + 
(ch[3] << 0));
-#if OSL_DEBUG_LEVEL > 0
+#if OSL_DEBUG_LEVEL > 1
             ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+            if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+            else
+                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
             fputc(nRet,getStreams()[sOrgName]);
 #endif
                    return nRet;
@@ -329,6 +368,17 @@
                if ( nLen < position) 
                {
                        static ::sal_Int64 BUFFER_SIZE = 9192;
+#if OSL_DEBUG_LEVEL > 1
+            {
+                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+                if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+                else
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+                   int errr = fseek(getStreams()[sOrgName],nLen,SEEK_SET);
+            }
+#endif
+
                        xSeek->seek(nLen);
                        Reference< XOutputStream> xOut = 
pHelper->getOutputStream();
                        OSL_ENSURE(xOut.is(),"No output stream!");
@@ -350,11 +400,28 @@
                                Sequence< ::sal_Int8 > aData(n);
                                memset(aData.getArray(),0,n);
                                xOut->writeBytes(aData);
+#if OSL_DEBUG_LEVEL > 1
+                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+                if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+                else
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+                fwrite(&aData[0],sizeof(sal_Int8),n,getStreams()[sOrgName]);
+#endif
                        }
                }
-           
                xSeek->seek(position);
         OSL_ENSURE(xSeek->getPosition() == position,"Wrong position after 
seeking the stream");
+
+#if OSL_DEBUG_LEVEL > 1
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+            sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+        else
+            sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+           int errr = fseek(getStreams()[sOrgName],position,SEEK_SET);
+        OSL_ENSURE(xSeek->getPosition() == 
ftell(getStreams()[sOrgName]),"Wrong position after seeking the stream");
+#endif                 
        }
 }
 // 
-----------------------------------------------------------------------------
@@ -376,6 +443,9 @@
                if ( xOut.is() )
                {
                        jbyte *buf = env->GetByteArrayElements(buffer,NULL);
+#if OSL_DEBUG_LEVEL > 1
+            OSL_ENSURE(len <= env->GetArrayLength(buffer),"Length is greater 
than the buffer!");
+#endif
                        
                        if (JNI_FALSE != env->ExceptionCheck())
             {
@@ -385,9 +455,21 @@
                        OSL_ENSURE(buf,"buf is NULL");
                        if ( buf )
                        {
+#if OSL_DEBUG_LEVEL > 1
+                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+                sal_Bool bCheck;
+                if ( bCheck = (getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end()) )
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+                else
+                    sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+#endif
+
                                Sequence< ::sal_Int8 > aData(buf + off,len);
                                xOut->writeBytes(aData);
                                env->ReleaseByteArrayElements(buffer, buf, 
JNI_ABORT);
+#if OSL_DEBUG_LEVEL > 1
+                
fwrite(&aData[off],sizeof(sal_Int8),len,getStreams()[sOrgName]);
+#endif
                        }
                }
                else
@@ -433,6 +515,15 @@
                        oneByte[3] = (sal_Int8) ((v >>  0) & 0xFF);
 
                        xOut->writeBytes(oneByte);
+#if OSL_DEBUG_LEVEL > 1
+            ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
+            if ( getStreams().find(sOrgName + 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"))) != getStreams().end() )
+                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".data"));
+            else
+                sOrgName += 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+
+            fwrite(&oneByte[0],sizeof(sal_Int8),4,getStreams()[sOrgName]);
+#endif
                }
                else
                {

File [changed]: HStorageMap.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/HStorageMap.cxx?r1=1.2.20.2&r2=1.2.20.3
Delta lines:  +3 -17
--------------------
--- HStorageMap.cxx     25 Jan 2005 08:42:51 -0000      1.2.20.2
+++ HStorageMap.cxx     28 Jan 2005 12:21:54 -0000      1.2.20.3
@@ -284,13 +284,6 @@
                // 
-----------------------------------------------------------------------------
                TStreamMap::mapped_type StorageContainer::registerStream(JNIEnv 
* env,jstring name, jstring key,sal_Int32 _nMode)
                {
-#if OSL_DEBUG_LEVEL > 0
-            {
-                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-                ::rtl::OString sName = 
::rtl::OUStringToOString(sOrgName,RTL_TEXTENCODING_ASCII_US);
-                getStreams()[sOrgName] = fopen( sName.getStr(), "a+" );
-            }
-#endif
                        TStreamMap::mapped_type pHelper;
                        TStorages& rMap = lcl_getStorageMap();
                        ::rtl::OUString sKey = jstring2ustring(env,key);
@@ -344,13 +337,6 @@
                // 
-----------------------------------------------------------------------------
                void StorageContainer::revokeStream( JNIEnv * env,jstring name, 
jstring key)
                {
-#if OSL_DEBUG_LEVEL > 0
-            {
-                ::rtl::OUString sOrgName = 
StorageContainer::jstring2ustring(env,name);
-                fclose( getStreams()[sOrgName] );
-                getStreams().erase(sOrgName);
-            }
-#endif
                        TStorages& rMap = lcl_getStorageMap();
                        TStorages::iterator aFind = 
rMap.find(jstring2ustring(env,key));
                        OSL_ENSURE(aFind != rMap.end(),"Storage could not be 
found in list!");
@@ -381,10 +367,10 @@
 }
 // namespace connectivity
 //........................................................................
-#if OSL_DEBUG_LEVEL > 0
-TStreamMap& getStreams()
+#if OSL_DEBUG_LEVEL > 1
+TDebugStreamMap& getStreams()
 {
-    static TStreamMap streams;
+    static TDebugStreamMap streams;
     return streams;
 }
 #endif

File [changed]: StorageNativeInputStream.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/StorageNativeInputStream.cxx?r1=1.2.20.1&r2=1.2.20.2
Delta lines:  +21 -4
--------------------
--- StorageNativeInputStream.cxx        25 Jan 2005 08:42:51 -0000      1.2.20.1
+++ StorageNativeInputStream.cxx        28 Jan 2005 12:21:54 -0000      1.2.20.2
@@ -117,7 +117,15 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeInputStream_openStream
   (JNIEnv * env, jobject obj_this,jstring key, jstring name, jint mode)
 {
-       
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_openStream(env,obj_this,name,key,mode);
+#if OSL_DEBUG_LEVEL > 1
+    {
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
+        ::rtl::OString sName = 
::rtl::OUStringToOString(sOrgName,RTL_TEXTENCODING_ASCII_US);
+        getStreams()[sOrgName] = fopen( sName.getStr(), "a+" );
+    }
+#endif
+       StorageContainer::registerStream(env,name,key,mode);
 }
 // 
-----------------------------------------------------------------------------
 
@@ -153,6 +161,14 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeInputStream_close
   (JNIEnv * env, jobject obj_this,jstring key, jstring name)
 {
+#if OSL_DEBUG_LEVEL > 1
+    {
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
+        fclose( getStreams()[sOrgName] );
+        getStreams().erase(sOrgName);
+    }
+#endif
        StorageContainer::revokeStream(env,name,key);
 }
 // 
-----------------------------------------------------------------------------
@@ -196,7 +212,7 @@
                        }
                        catch(Exception& e)
                        {
-                               OSL_ENSURE(0,"Exception catched! : 
writeBytes(aData);");
+                               OSL_ENSURE(0,"Exception catched! : skip();");
                                if (JNI_FALSE != env->ExceptionCheck())
                                        env->ExceptionClear();
                                ::rtl::OString cstr( 
::rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_JAVA_UTF8 ) );
@@ -236,7 +252,7 @@
                }
                catch(Exception& e)
                {
-                       OSL_ENSURE(0,"Exception catched! : writeBytes(aData);");
+                       OSL_ENSURE(0,"Exception catched! : available();");
                        if (JNI_FALSE != env->ExceptionCheck())
                                env->ExceptionClear();
                        ::rtl::OString cstr( 
::rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_JAVA_UTF8 ) );
@@ -292,8 +308,9 @@
         OSL_ENSURE(nLen >= nBytesRead,"Buffer is too small!");
         OSL_ENSURE(aData.getLength() >= nBytesRead,"Buffer is too small!");
                env->SetByteArrayRegion(buffer,0,nBytesRead,&aData[0]);
-#if OSL_DEBUG_LEVEL > 0
+#if OSL_DEBUG_LEVEL > 1
         ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".input"));
         fwrite(&aData[0],sizeof(sal_Int8),nBytesRead,getStreams()[sOrgName]);
 #endif
        }

File [changed]: StorageNativeOutputStream.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/StorageNativeOutputStream.cxx?r1=1.2.20.1&r2=1.2.20.2
Delta lines:  +61 -120
----------------------
--- StorageNativeOutputStream.cxx       25 Jan 2005 08:42:52 -0000      1.2.20.1
+++ StorageNativeOutputStream.cxx       28 Jan 2005 12:21:55 -0000      1.2.20.2
@@ -128,168 +128,95 @@
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream
   (JNIEnv * env, jobject obj_this, jstring name, jstring key, jint mode)
 {
-       
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_openStream(env,obj_this,name,key,mode);
+#if OSL_DEBUG_LEVEL > 1
+    {
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+        ::rtl::OString sName = 
::rtl::OUStringToOString(sOrgName,RTL_TEXTENCODING_ASCII_US);
+        getStreams()[sOrgName] = fopen( sName.getStr(), "a+" );
+    }
+#endif
+       StorageContainer::registerStream(env,name,key,mode);
 }
 /*
- * Class:     
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3BII
+ * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    write
  * Signature: (Ljava/lang/String;Ljava/lang/String;[BII)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3BII
-  (JNIEnv * env, jobject obj_this,jobject storage, jstring key, jstring name, 
jbyteArray buffer, jint off, jint len)
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII
+  (JNIEnv * env, jobject obj_this, jstring key, jstring name, jbyteArray 
buffer, jint off, jint len)
 {
-       ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
-       Reference< XOutputStream> xOut = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
-       OSL_ENSURE(xOut.is(),"Stream is NULL");
-       
-       try
-       {
-               if ( xOut.is() )
-               {
-                       jbyte *buf = env->GetByteArrayElements(buffer,NULL);
-                       
-                       if (JNI_FALSE != env->ExceptionCheck())
-            {
-                env->ExceptionClear();
-                               OSL_ENSURE(0,"ExceptionClear");
-            }
-                       OSL_ENSURE(buf,"buf is NULL");
-                       if ( buf )
-                       {
-                               Sequence< ::sal_Int8 > aData(buf + off,len);
-                               xOut->writeBytes(aData);
-                               env->ReleaseByteArrayElements(buffer, buf, 
JNI_ABORT);
-                       }
-               }
-               else
-               {
-                       ThrowException( env,
-                                                       "java/io/IOException",
-                                                       "Stream is not valid");
-               }
-       }
-       catch(Exception& e)
-       {
-               OSL_ENSURE(0,"Exception catched! : write [BII)V");
-               if (JNI_FALSE != env->ExceptionCheck())
-                       env->ExceptionClear();
-               ::rtl::OString cstr( ::rtl::OUStringToOString(e.Message, 
RTL_TEXTENCODING_JAVA_UTF8 ) );
-               OSL_TRACE( __FILE__": forwarding Exception: %s", cstr.getStr() 
);
-               ThrowException( env,
-                                               "java/io/IOException",
-                                               cstr.getStr());
-       }
+       
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_write(env,obj_this,name,key,buffer,off,len);
 }
 // 
-----------------------------------------------------------------------------
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    write
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;[B)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;[B)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3B
-  (JNIEnv * env, jobject obj_this,jobject storage, jstring key, jstring name, 
jbyteArray buffer)
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3B
+  (JNIEnv * env, jobject obj_this, jstring key, jstring name, jbyteArray 
buffer)
 {
-       ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
-       Reference< XOutputStream> xOut = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
-       OSL_ENSURE(xOut.is(),"Stream is NULL");
-       try
-       {
-               if ( xOut.is() )
-               {
-                       jsize nLen = env->GetArrayLength(buffer);
-                       jbyte *buf = env->GetByteArrayElements(buffer,NULL);
-                       OSL_ENSURE(buf,"buf is NULL");
-                       Sequence< ::sal_Int8 > aData(buf,nLen);
-                       xOut->writeBytes(aData);
-                       env->ReleaseByteArrayElements(buffer, buf, JNI_ABORT);
-               }
-               else
-               {
-                       ThrowException( env,
-                                                       "java/io/IOException",
-                                                       "Stream is not valid");
-               }
-       }
-       catch(Exception& e)
-       {
-               OSL_ENSURE(0,"Exception catched! : writeBytes(aData); [B)V");
-               if (JNI_FALSE != env->ExceptionCheck())
-                       env->ExceptionClear();
-               ::rtl::OString cstr( ::rtl::OUStringToOString(e.Message, 
RTL_TEXTENCODING_JAVA_UTF8 ) );
-               OSL_TRACE( __FILE__": forwarding Exception: %s", cstr.getStr() 
);
-               ThrowException( env,
-                                               "java/io/IOException",
-                                               cstr.getStr());
-       }
+    
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_write(env,obj_this,name,key,buffer,0,env->GetArrayLength(buffer));
 }
 // 
-----------------------------------------------------------------------------
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    close
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_close
-  (JNIEnv * env, jobject obj_this,jobject storage, jstring key, jstring name)
+  (JNIEnv * env, jobject obj_this, jstring key, jstring name)
 {
-       
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_close(env,obj_this,name,key);
+    ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
+    Reference< XOutputStream> xFlush = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
+    if ( xFlush.is() )
+        try
+        {
+            xFlush->flush();
+        }
+        catch(Exception&)
+        {}
+
+#if OSL_DEBUG_LEVEL > 1
+    {
+        ::rtl::OUString sOrgName = StorageContainer::jstring2ustring(env,name);
+        sOrgName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".output"));
+        fclose( getStreams()[sOrgName] );
+        getStreams().erase(sOrgName);
+    }
+#endif
+       StorageContainer::revokeStream(env,name,key);
 }
 // 
-----------------------------------------------------------------------------
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    write
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;I)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;I)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2I
-  (JNIEnv * env, jobject obj_this,jobject storage, jstring key, jstring 
name,jint b)
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2I
+  (JNIEnv * env, jobject obj_this, jstring key, jstring name,jint b)
 {
-       ::boost::shared_ptr<StreamHelper> pHelper = 
StorageContainer::getRegisteredStream(env,name,key);
-       Reference< XOutputStream> xOut = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
-       OSL_ENSURE(xOut.is(),"Stream is NULL");
-       try
-       {
-               if ( xOut.is() )
-               {
-                       Sequence< ::sal_Int8 > aData(1);
-                       aData[0] = static_cast< ::sal_Int8>(b);
-                       xOut->writeBytes(aData);
-               }
-               else
-               {
-                       ThrowException( env,
-                                                       "java/io/IOException",
-                                                       "Stream is not valid");
-               }
-       }
-       catch(Exception& e)
-       {
-               OSL_ENSURE(0,"Exception catched! : writeBytes(aData);");
-               if (JNI_FALSE != env->ExceptionCheck())
-                       env->ExceptionClear();
-               ::rtl::OString cstr( ::rtl::OUStringToOString(e.Message, 
RTL_TEXTENCODING_JAVA_UTF8 ) );
-               OSL_TRACE( __FILE__": forwarding Exception: %s", cstr.getStr() 
);
-               ThrowException( env,
-                                               "java/io/IOException",
-                                               cstr.getStr());
-       }
+    
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_writeInt(env,obj_this,name,key,b);
 }
 // 
-----------------------------------------------------------------------------
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    flush
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_flush
-  (JNIEnv * env, jobject obj_this,jobject storage, jstring key, jstring name)
+  (JNIEnv * env, jobject obj_this, jstring key, jstring name)
 {
 }
 // 
-----------------------------------------------------------------------------
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    sync
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_sync
-  (JNIEnv * env, jobject obj_this,jobject storage, jstring key, jstring name)
+  (JNIEnv * env, jobject obj_this, jstring key, jstring name)
 {
        TStorages::mapped_type aStoragePair = 
StorageContainer::getRegisteredStorage(StorageContainer::jstring2ustring(env,key));
        Reference<XTransactedObject> xTrans(aStoragePair.first.first,UNO_QUERY);
@@ -297,11 +224,25 @@
        {
                try
                {
+            TStreamMap::iterator aIter = aStoragePair.second.begin();
+            TStreamMap::iterator aEnd = aStoragePair.second.end();
+            for (;aIter != aEnd ; ++aIter)
+            {
+                ::boost::shared_ptr<StreamHelper> pHelper = aIter->second;
+                Reference< XOutputStream> xFlush = pHelper.get() ? 
pHelper->getOutputStream() : Reference< XOutputStream>();
+                if ( xFlush.is() )
+                    try
+                    {
+                        xFlush->flush();
+                    }
+                    catch(Exception&)
+                    {}
+            }
                        xTrans->commit();
                }
                catch(Exception& e)
                {
-                       OSL_ENSURE(0,"Exception catched! : writeBytes(aData);");
+                       OSL_ENSURE(0,"Exception catched! : sync();");
                        if (JNI_FALSE != env->ExceptionCheck())
                                env->ExceptionClear();
                        ::rtl::OString cstr( 
::rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_JAVA_UTF8 ) );

File [changed]: StorageNativeOutputStream.h
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/StorageNativeOutputStream.h?r1=1.2.20.1&r2=1.2.20.2
Delta lines:  +16 -15
---------------------
--- StorageNativeOutputStream.h 25 Jan 2005 08:42:52 -0000      1.2.20.1
+++ StorageNativeOutputStream.h 28 Jan 2005 12:21:55 -0000      1.2.20.2
@@ -7,6 +7,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+/* Inaccessible static: 
class_00024com_00024sun_00024star_00024sdbcx_00024comp_00024hsqldb_00024StorageNativeOutputStream
 */
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    openStream
@@ -18,50 +19,50 @@
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    write
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;[BII)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;[BII)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3BII
-  (JNIEnv *, jobject, jobject, jstring, jstring, jbyteArray, jint, jint);
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII
+  (JNIEnv *, jobject, jstring, jstring, jbyteArray, jint, jint);
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    write
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;[B)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;[B)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3B
-  (JNIEnv *, jobject, jobject, jstring, jstring, jbyteArray);
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3B
+  (JNIEnv *, jobject, jstring, jstring, jbyteArray);
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    close
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_close
-  (JNIEnv *, jobject, jobject, jstring, jstring);
+  (JNIEnv *, jobject, jstring, jstring);
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    write
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;I)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;I)V
  */
-JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2I
-  (JNIEnv *, jobject, jobject, jstring, jstring, jint);
+JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2I
+  (JNIEnv *, jobject, jstring, jstring, jint);
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    flush
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_flush
-  (JNIEnv *, jobject, jobject, jstring, jstring);
+  (JNIEnv *, jobject, jstring, jstring);
 
 /*
  * Class:     com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream
  * Method:    sync
- * Signature: 
(Lcom/sun/star/embed/XStorage;Ljava/lang/String;Ljava/lang/String;)V
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL 
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_sync
-  (JNIEnv *, jobject, jobject, jstring, jstring);
+  (JNIEnv *, jobject, jstring, jstring);
 
 #ifdef __cplusplus
 }

File [changed]: exports.dxp
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/exports.dxp?r1=1.2&r2=1.2.20.1
Delta lines:  +5 -4
-------------------
--- exports.dxp 9 Nov 2004 12:09:57 -0000       1.2
+++ exports.dxp 28 Jan 2005 12:21:55 -0000      1.2.20.1
@@ -1,12 +1,13 @@
 component_getImplementationEnvironment
 component_writeInfo
 component_getFactory
-Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3BII
-Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3B
+Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream
+Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII
+Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3B
 Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_close
-Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2I
+Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2I
 Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_flush
-Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream
+Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_sync
 Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_openStream
 Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_close
 Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_getFilePointer

File [changed]: hsqldb.map
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/hsqldb.map?r1=1.2&r2=1.2.20.1
Delta lines:  +5 -4
-------------------
--- hsqldb.map  9 Nov 2004 12:10:08 -0000       1.2
+++ hsqldb.map  28 Jan 2005 12:21:55 -0000      1.2.20.1
@@ -3,12 +3,13 @@
                component_getImplementationEnvironment;
                component_writeInfo;
                component_getFactory;
-               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3BII;
-               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2_3B;
+               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream;
+               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII;
+               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3B;
                
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_close;
-               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Lcom_sun_star_embed_XStorage_2Ljava_lang_String_2Ljava_lang_String_2I;
+               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2I;
                
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_flush;
-               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream;
+               
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_sync;
                
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_openStream;
                Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_close;
                
Java_com_sun_star_sdbcx_comp_hsqldb_NativeStorageAccess_getFilePointer;




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to