[jboss-cvs] JBoss Messaging SVN: r4711 - in trunk: native/bin and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jul 22 20:06:50 EDT 2008


Author: clebert.suconic at jboss.com
Date: 2008-07-22 20:06:50 -0400 (Tue, 22 Jul 2008)
New Revision: 4711

Added:
   trunk/native/JBMNative.kdevelop
   trunk/native/JBMNative.kdevelop.pcs
   trunk/native/JBMNative.kdevses
Modified:
   trunk/native/bin/libJBMLibAIO64.so
   trunk/native/src/JNICallbackAdapter.cpp
   trunk/native/src/JNICallbackAdapter.h
   trunk/native/src/LibAIOController.cpp
   trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java
   trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java
Log:
Fixing a bug on the native layer

Added: trunk/native/JBMNative.kdevelop
===================================================================
--- trunk/native/JBMNative.kdevelop	                        (rev 0)
+++ trunk/native/JBMNative.kdevelop	2008-07-23 00:06:50 UTC (rev 4711)
@@ -0,0 +1,145 @@
+<?xml version = '1.0'?>
+<kdevelop>
+  <general>
+    <author>clebert</author>
+    <email>csuconic at redhat.com</email>
+    <version>[1.0.Alpha]</version>
+    <projectmanagement>KDevAutoProject</projectmanagement>
+    <primarylanguage>C++</primarylanguage>
+    <ignoreparts/>
+    <projectname>JBMNative</projectname>
+  </general>
+  <kdevautoproject>
+    <general>
+      <useconfiguration>debug</useconfiguration>
+    </general>
+    <configurations>
+      <optimized>
+        <builddir>optimized</builddir>
+        <ccompiler>GccOptions</ccompiler>
+        <cxxcompiler>GppOptions</cxxcompiler>
+        <f77compiler>G77Options</f77compiler>
+        <cxxflags>-O2 -g0</cxxflags>
+      </optimized>
+      <debug>
+        <configargs>--enable-debug=full</configargs>
+        <builddir>debug</builddir>
+        <ccompiler>GccOptions</ccompiler>
+        <cxxcompiler>GppOptions</cxxcompiler>
+        <f77compiler>G77Options</f77compiler>
+        <cxxflags>-O0 -g3</cxxflags>
+      </debug>
+    </configurations>
+    <make>
+      <envvars>
+        <envvar value="1" name="WANT_AUTOCONF_2_5" />
+        <envvar value="1" name="WANT_AUTOMAKE_1_6" />
+      </envvars>
+    </make>
+  </kdevautoproject>
+  <kdevdebugger>
+    <general>
+      <dbgshell>libtool</dbgshell>
+    </general>
+  </kdevdebugger>
+  <kdevdoctreeview>
+    <ignoretocs>
+      <toc>ada</toc>
+      <toc>ada_bugs_gcc</toc>
+      <toc>bash</toc>
+      <toc>bash_bugs</toc>
+      <toc>clanlib</toc>
+      <toc>fortran_bugs_gcc</toc>
+      <toc>gnome1</toc>
+      <toc>gnustep</toc>
+      <toc>gtk</toc>
+      <toc>gtk_bugs</toc>
+      <toc>haskell</toc>
+      <toc>haskell_bugs_ghc</toc>
+      <toc>java_bugs_gcc</toc>
+      <toc>java_bugs_sun</toc>
+      <toc>kde2book</toc>
+      <toc>opengl</toc>
+      <toc>pascal_bugs_fp</toc>
+      <toc>php</toc>
+      <toc>php_bugs</toc>
+      <toc>perl</toc>
+      <toc>perl_bugs</toc>
+      <toc>python</toc>
+      <toc>python_bugs</toc>
+      <toc>qt-kdev3</toc>
+      <toc>ruby</toc>
+      <toc>ruby_bugs</toc>
+      <toc>sdl</toc>
+      <toc>sw</toc>
+      <toc>w3c-dom-level2-html</toc>
+      <toc>w3c-svg</toc>
+      <toc>w3c-uaag10</toc>
+      <toc>wxwidgets_bugs</toc>
+    </ignoretocs>
+    <ignoreqt_xml>
+      <toc>Guide to the Qt Translation Tools</toc>
+      <toc>Qt Assistant Manual</toc>
+      <toc>Qt Designer Manual</toc>
+      <toc>Qt Reference Documentation</toc>
+      <toc>qmake User Guide</toc>
+    </ignoreqt_xml>
+    <ignoredoxygen>
+      <toc>KDE Libraries (Doxygen)</toc>
+    </ignoredoxygen>
+  </kdevdoctreeview>
+  <kdevfilecreate>
+    <filetypes/>
+    <useglobaltypes>
+      <type ext="ui" />
+      <type ext="cpp" />
+      <type ext="h" />
+    </useglobaltypes>
+  </kdevfilecreate>
+  <kdevcppsupport>
+    <qt>
+      <used>false</used>
+      <version>3</version>
+      <includestyle>3</includestyle>
+      <root></root>
+      <designerintegration>EmbeddedKDevDesigner</designerintegration>
+      <qmake></qmake>
+      <designer></designer>
+      <designerpluginpaths/>
+    </qt>
+    <references/>
+    <codecompletion>
+      <automaticCodeCompletion>false</automaticCodeCompletion>
+      <automaticArgumentsHint>true</automaticArgumentsHint>
+      <automaticHeaderCompletion>true</automaticHeaderCompletion>
+      <codeCompletionDelay>250</codeCompletionDelay>
+      <argumentsHintDelay>400</argumentsHintDelay>
+      <headerCompletionDelay>250</headerCompletionDelay>
+      <showOnlyAccessibleItems>false</showOnlyAccessibleItems>
+      <completionBoxItemOrder>0</completionBoxItemOrder>
+      <howEvaluationContextMenu>true</howEvaluationContextMenu>
+      <showCommentWithArgumentHint>true</showCommentWithArgumentHint>
+      <statusBarTypeEvaluation>false</statusBarTypeEvaluation>
+      <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
+      <processPrimaryTypes>true</processPrimaryTypes>
+      <processFunctionArguments>false</processFunctionArguments>
+      <preProcessAllHeaders>false</preProcessAllHeaders>
+      <parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
+      <resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
+      <alwaysParseInBackground>true</alwaysParseInBackground>
+      <usePermanentCaching>true</usePermanentCaching>
+      <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
+      <includePaths>.;</includePaths>
+    </codecompletion>
+  </kdevcppsupport>
+  <kdevfileview>
+    <groups>
+      <hidenonprojectfiles>false</hidenonprojectfiles>
+      <hidenonlocation>false</hidenonlocation>
+    </groups>
+    <tree>
+      <hidepatterns>*.o,*.lo,CVS</hidepatterns>
+      <hidenonprojectfiles>false</hidenonprojectfiles>
+    </tree>
+  </kdevfileview>
+</kdevelop>

Added: trunk/native/JBMNative.kdevelop.pcs
===================================================================
(Binary files differ)


Property changes on: trunk/native/JBMNative.kdevelop.pcs
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/native/JBMNative.kdevses
===================================================================
--- trunk/native/JBMNative.kdevses	                        (rev 0)
+++ trunk/native/JBMNative.kdevses	2008-07-23 00:06:50 UTC (rev 4711)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE KDevPrjSession>
+<KDevPrjSession>
+ <DocsAndViews NumberOfDocuments="3" >
+  <Doc0 NumberOfViews="1" URL="file:///work/projects/trunk/native/src/JNICallbackAdapter.cpp" >
+   <View0 Encoding="" line="24" Type="Source" />
+  </Doc0>
+  <Doc1 NumberOfViews="1" URL="file:///work/projects/trunk/native/src/JNICallbackAdapter.h" >
+   <View0 Encoding="" line="35" Type="Source" />
+  </Doc1>
+  <Doc2 NumberOfViews="1" URL="file:///work/projects/trunk/native/src/LibAIOController.cpp" >
+   <View0 Encoding="" line="96" Type="Source" />
+  </Doc2>
+ </DocsAndViews>
+ <pluginList>
+  <kdevdebugger>
+   <breakpointList/>
+   <showInternalCommands value="0" />
+  </kdevdebugger>
+  <kdevastyle>
+   <Extensions ext="*.cpp *.h,*.c *.h,*.cxx *.hxx,*.c++ *.h++,*.cc *.hh,*.C *.H,*.diff,*.inl,*.java,*.moc,*.patch,*.tlh,*.xpm" />
+   <AStyle IndentPreprocessors="0" FillCount="4" PadParenthesesOut="1" IndentNamespaces="1" IndentLabels="1" Fill="Tabs" MaxStatement="40" Brackets="Break" MinConditional="-1" IndentBrackets="0" PadParenthesesUn="1" BlockBreak="0" KeepStatements="1" KeepBlocks="1" BlockIfElse="0" IndentSwitches="1" PadOperators="0" FStyle="UserDefined" IndentCases="0" FillEmptyLines="0" BracketsCloseHeaders="0" BlockBreakAll="0" PadParenthesesIn="1" IndentClasses="1" IndentBlocks="0" FillForce="0" />
+  </kdevastyle>
+  <kdevbookmarks>
+   <bookmarks/>
+  </kdevbookmarks>
+  <kdevvalgrind>
+   <executable path="" params="" />
+   <valgrind path="" params="" />
+   <calltree path="" params="" />
+   <kcachegrind path="" />
+  </kdevvalgrind>
+ </pluginList>
+</KDevPrjSession>

Modified: trunk/native/bin/libJBMLibAIO64.so
===================================================================
(Binary files differ)

Modified: trunk/native/src/JNICallbackAdapter.cpp
===================================================================
--- trunk/native/src/JNICallbackAdapter.cpp	2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/native/src/JNICallbackAdapter.cpp	2008-07-23 00:06:50 UTC (rev 4711)
@@ -22,11 +22,12 @@
 #include <iostream>
 #include "JavaUtilities.h"
 
-JNICallbackAdapter::JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController) : CallbackAdapter(), refs(1)
+JNICallbackAdapter::JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController, jobject _bufferReference) : CallbackAdapter(), refs(1)
 {
 	controller = _controller;
 	callback = _callback;
 	fileController = _fileController;
+	bufferReference = _bufferReference;
 }
 
 JNICallbackAdapter::~JNICallbackAdapter()
@@ -50,4 +51,5 @@
 {
 	JNI_ENV(threadContext)->DeleteGlobalRef(callback);
 	JNI_ENV(threadContext)->DeleteGlobalRef(fileController);
+	JNI_ENV(threadContext)->DeleteGlobalRef(bufferReference);
 }

Modified: trunk/native/src/JNICallbackAdapter.h
===================================================================
--- trunk/native/src/JNICallbackAdapter.h	2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/native/src/JNICallbackAdapter.h	2008-07-23 00:06:50 UTC (rev 4711)
@@ -33,12 +33,13 @@
 	AIOController * controller;
 	jobject callback;
 	jobject fileController;
+	jobject bufferReference;
 	int refs;
     void destroy(THREAD_CONTEXT threadContext);
 	
 public:
 	// _ob must be a global Reference (use createGloblReferente before calling the constructor)
-	JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController);
+	JNICallbackAdapter(AIOController * _controller, jobject _callback, jobject _fileController, jobject _bufferReference);
 	virtual ~JNICallbackAdapter();
 	void done(THREAD_CONTEXT threadContext);
 	void onError(THREAD_CONTEXT threadContext, long error, std::string error);

Modified: trunk/native/src/LibAIOController.cpp
===================================================================
--- trunk/native/src/LibAIOController.cpp	2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/native/src/LibAIOController.cpp	2008-07-23 00:06:50 UTC (rev 4711)
@@ -94,7 +94,7 @@
 			return;
 		}
 		
-		CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis));
+		CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis), env->NewGlobalRef(jbuffer));
 		
 		controller->fileOutput.read(env, position, (size_t)size, buffer, adapter);
 	}
@@ -117,7 +117,7 @@
 			return;
 		}
 		
-		CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis));
+		CallbackAdapter * adapter = new JNICallbackAdapter(controller, env->NewGlobalRef(callback), env->NewGlobalRef(objThis), env->NewGlobalRef(jbuffer));
 		
 		controller->fileOutput.write(env, position, (size_t)size, buffer, adapter);
 	}

Modified: trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java	2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/journal/ValidateTransactionHealthTest.java	2008-07-23 00:06:50 UTC (rev 4711)
@@ -33,6 +33,13 @@
 import org.jboss.messaging.tests.stress.StressTestBase;
 import org.jboss.messaging.tests.stress.journal.remote.RemoteJournalAppender;
 
+/**
+ * 
+ * This test spawns a remote VM, as we want to "crash" the VM right after the journal is filled with data
+ * 
+ * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
+ *
+ */
 public class ValidateTransactionHealthTest extends StressTestBase
 {
    
@@ -48,42 +55,47 @@
    
    public void testAIO() throws Exception
    {
-      internalTest("aio", "/tmp/aiojournal", 100000, 100, true, true, 1);
+      internalTest("aio", "/tmp/aiojournal", 10000, 100, true, true, 1);
    }
    
    public void testAIOHugeTransaction() throws Exception
    {
-      internalTest("aio", "/tmp/aiojournal", 100000, 100000, true, true, 1);
+      internalTest("aio", "/tmp/aiojournal", 10000, 10000, true, true, 1);
    }
    
    public void testAIOMultiThread() throws Exception
    {
-      internalTest("aio", "/tmp/aiojournal", 10000, 100, true, true, 10);
+      internalTest("aio", "/tmp/aiojournal", 1000, 100, true, true, 10);
    }
    
    public void testAIONonTransactional() throws Exception
    {
-      internalTest("aio", "/tmp/aiojournal", 100000, 0, true, true, 1);
+      internalTest("aio", "/tmp/aiojournal", 10000, 0, true, true, 1);
    }
    
    public void testAIONonTransactionalNoExternalProcess() throws Exception
    {
-      internalTest("aio", "/tmp/aiojournal", 10000, 0, true, false, 10);
+      internalTest("aio", "/tmp/aiojournal", 1000, 0, true, false, 10);
    }
    
    public void testNIO() throws Exception
    {
-      internalTest("nio", "/tmp/niojournal", 100000, 100, true, true, 1);
+      internalTest("nio", "/tmp/niojournal", 10000, 100, true, true, 1);
    }
    
+   public void testNIOHugeTransaction() throws Exception
+   {
+      internalTest("nio", "/tmp/aiojournal", 10000, 10000, true, true, 1);
+   }
+   
    public void testNIOMultiThread() throws Exception
    {
-      internalTest("nio", "/tmp/niojournal", 10000, 100, true, true, 10);
+      internalTest("nio", "/tmp/niojournal", 1000, 100, true, true, 10);
    }
    
    public void testNIONonTransactional() throws Exception
    {
-      internalTest("nio", "/tmp/niojournal", 100000, 0, true, true, 1);
+      internalTest("nio", "/tmp/niojournal", 10000, 0, true, true, 1);
    }
    
    // Package protected ---------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java	2008-07-22 20:34:57 UTC (rev 4710)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/journal/remote/RemoteJournalAppender.java	2008-07-23 00:06:50 UTC (rev 4711)
@@ -23,7 +23,6 @@
 package org.jboss.messaging.tests.stress.journal.remote;
 
 import java.nio.ByteBuffer;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.jboss.messaging.core.journal.LoadManager;
@@ -34,6 +33,11 @@
 import org.jboss.messaging.core.journal.impl.JournalImpl;
 import org.jboss.messaging.core.journal.impl.NIOSequentialFileFactory;
 
+/**
+ * 
+ * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
+ *
+ */
 public class RemoteJournalAppender
 {
    
@@ -55,6 +59,7 @@
                      + " aio|nio <journalDirectory> <NumberOfElements> <TransactionSize> <NumberOfThreads>");
          System.exit(-1);
       }
+      System.out.println("Running");
       String journalType = args[0];
       String journalDir = args[1];
       long numberOfElements = Long.parseLong(args[2]);
@@ -64,11 +69,9 @@
 
       try
       {
-         JournalImpl journal = appendData(journalType, journalDir,
+         appendData(journalType, journalDir,
                numberOfElements, transactionSize, numberOfThreads);
          
-         journal.stop(); // TODO: Remove this stop (for transactional tests at least)
-         
       }
       catch (Exception e)
       {
@@ -229,6 +232,11 @@
             {
                journal.appendCommitRecord(transactionId);
             }
+            
+            if (transactionSize == 0)
+            {
+               journal.debugWait();
+            }
          }
          catch (Exception e)
          {




More information about the jboss-cvs-commits mailing list