Merge pull request #103 from pantianying/master

add  com.alibaba.dubbo.rpc.service.GenericException
diff --git a/java_exception.go b/java_exception.go
index 010a6dc..6190c18 100644
--- a/java_exception.go
+++ b/java_exception.go
@@ -104,4 +104,5 @@
 	RegisterPOJO(&java_exception.IllegalFormatCodePointException{})
 	RegisterPOJO(&java_exception.MissingFormatArgumentException{})
 	RegisterPOJO(&java_exception.MissingFormatWidthException{})
+	RegisterPOJO(&java_exception.DubboGenericException{})
 }
diff --git a/java_exception/dubbo_generic_exception.go b/java_exception/dubbo_generic_exception.go
new file mode 100644
index 0000000..83cfc8b
--- /dev/null
+++ b/java_exception/dubbo_generic_exception.go
@@ -0,0 +1,37 @@
+// Copyright 2016-2019 tianying Pan
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package java_exception
+
+type DubboGenericException struct {
+	SerialVersionUID     int64
+	DetailMessage        string
+	SuppressedExceptions []Throwabler
+	StackTrace           []StackTraceElement
+	Cause                Throwabler
+	ExceptionClass       string
+	ExceptionMessage     string
+}
+
+func NewDubboGenericException(exceptionClass, exceptionMessage string) *DubboGenericException {
+	return &DubboGenericException{ExceptionClass: exceptionClass, ExceptionMessage: exceptionMessage}
+}
+
+func (e DubboGenericException) Error() string {
+	return e.DetailMessage
+}
+
+func (DubboGenericException) JavaClassName() string {
+	return "com.alibaba.dubbo.rpc.service.GenericException"
+}
diff --git a/java_exception_test.go b/java_exception_test.go
index bf5b06e..9028c13 100644
--- a/java_exception_test.go
+++ b/java_exception_test.go
@@ -106,6 +106,7 @@
 	doTestException(t, "throw_IllegalFormatCodePointException", "Code point = 0x1")
 	doTestException(t, "throw_MissingFormatArgumentException", "Format specifier 'MissingFormatArgumentException'")
 	doTestException(t, "throw_MissingFormatWidthException", "MissingFormatWidthException")
+	doTestException(t, "throw_DubboGenericException", "DubboGenericException")
 }
 
 func doTestException(t *testing.T, method, content string) {
diff --git a/test_hessian/pom.xml b/test_hessian/pom.xml
index 031ddd1..e15e228 100644
--- a/test_hessian/pom.xml
+++ b/test_hessian/pom.xml
@@ -25,6 +25,11 @@
             <version>9.4.16.v20190411</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>dubbo</artifactId>
+            <version>2.6.5</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/test_hessian/src/main/java/test/TestThrowable.java b/test_hessian/src/main/java/test/TestThrowable.java
index faf4b64..686f379 100644
--- a/test_hessian/src/main/java/test/TestThrowable.java
+++ b/test_hessian/src/main/java/test/TestThrowable.java
@@ -14,13 +14,14 @@
 
 package test;
 
+
+import com.alibaba.dubbo.rpc.service.GenericException;
+
 import java.io.*;
-import java.lang.*;
-import java.lang.annotation.*;
 import java.lang.instrument.IllegalClassFormatException;
-import java.lang.invoke.WrongMethodTypeException;
-import java.lang.invoke.LambdaConversionException;
 import java.lang.instrument.UnmodifiableClassException;
+import java.lang.invoke.LambdaConversionException;
+import java.lang.invoke.WrongMethodTypeException;
 import java.lang.reflect.*;
 import java.time.DateTimeException;
 import java.time.format.DateTimeParseException;
@@ -390,4 +391,8 @@
   public static Object throw_MissingFormatWidthException() {
     return new MissingFormatWidthException("MissingFormatWidthException");
   }
+
+  public static Object throw_DubboGenericException() {
+    return new GenericException("DubboGenericExceptionClass","DubboGenericException");
+  }
 }