// Copyright 2016-2019 Yincheng Fang
//
// 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 hessian

import "github.com/dubbogo/hessian2/java_exception"

func init() {
	RegisterPOJO(&java_exception.Method{})
	RegisterPOJO(&java_exception.Class{})
	RegisterPOJO(&java_exception.Throwable{})
	RegisterPOJO(&java_exception.Exception{})
	RegisterPOJO(&java_exception.IOException{})
	RegisterPOJO(&java_exception.RuntimeException{})
	RegisterPOJO(&java_exception.StackTraceElement{})
	RegisterPOJO(&java_exception.ClassCastException{})
	RegisterPOJO(&java_exception.ArrayStoreException{})
	RegisterPOJO(&java_exception.IllegalStateException{})
	RegisterPOJO(&java_exception.IllegalMonitorStateException{})
	RegisterPOJO(&java_exception.EnumConstantNotPresentException{})
	RegisterPOJO(&java_exception.CloneNotSupportedException{})
	RegisterPOJO(&java_exception.InterruptedException{})
	RegisterPOJO(&java_exception.InterruptedIOException{})
	RegisterPOJO(&java_exception.LambdaConversionException{})
	RegisterPOJO(&java_exception.UnmodifiableClassException{})
	RegisterPOJO(&java_exception.MalformedParameterizedTypeException{})
	RegisterPOJO(&java_exception.MalformedParametersException{})
	RegisterPOJO(&java_exception.TypeNotPresentException{})
	RegisterPOJO(&java_exception.UndeclaredThrowableException{})
	RegisterPOJO(&java_exception.WrongMethodTypeException{})
	RegisterPOJO(&java_exception.NullPointerException{})
	RegisterPOJO(&java_exception.UncheckedIOException{})
	RegisterPOJO(&java_exception.FileNotFoundException{})
	RegisterPOJO(&java_exception.EOFException{})
	RegisterPOJO(&java_exception.SyncFailedException{})
	RegisterPOJO(&java_exception.ObjectStreamException{})
	RegisterPOJO(&java_exception.WriteAbortedException{})
	RegisterPOJO(&java_exception.InvalidObjectException{})
	RegisterPOJO(&java_exception.StreamCorruptedException{})
	RegisterPOJO(&java_exception.InvalidClassException{})
	RegisterPOJO(&java_exception.OptionalDataException{})
	RegisterPOJO(&java_exception.NotActiveException{})
	RegisterPOJO(&java_exception.NotSerializableException{})
	RegisterPOJO(&java_exception.UTFDataFormatException{})
	RegisterPOJO(&java_exception.SecurityException{})
	RegisterPOJO(&java_exception.IllegalArgumentException{})
	RegisterPOJO(&java_exception.IllegalThreadStateException{})
	RegisterPOJO(&java_exception.NumberFormatException{})
	RegisterPOJO(&java_exception.IndexOutOfBoundsException{})
	RegisterPOJO(&java_exception.ArrayIndexOutOfBoundsException{})
	RegisterPOJO(&java_exception.StringIndexOutOfBoundsException{})
	RegisterPOJO(&java_exception.IllegalFormatWidthException{})
	RegisterPOJO(&java_exception.IllegalFormatConversionException{})
	RegisterPOJO(&java_exception.DuplicateFormatFlagsException{})
	RegisterPOJO(&java_exception.MissingResourceException{})
	RegisterPOJO(&java_exception.ConcurrentModificationException{})
	RegisterPOJO(&java_exception.RejectedExecutionException{})
	RegisterPOJO(&java_exception.CompletionException{})
	RegisterPOJO(&java_exception.EmptyStackException{})
	RegisterPOJO(&java_exception.IllformedLocaleException{})
	RegisterPOJO(&java_exception.NoSuchElementException{})
	RegisterPOJO(&java_exception.NegativeArraySizeException{})
	RegisterPOJO(&java_exception.UnsupportedOperationException{})
	RegisterPOJO(&java_exception.ArithmeticException{})
	RegisterPOJO(&java_exception.InputMismatchException{})
	RegisterPOJO(&java_exception.ExecutionException{})
	RegisterPOJO(&java_exception.InvalidPreferencesFormatException{})
	RegisterPOJO(&java_exception.TimeoutException{})
	RegisterPOJO(&java_exception.BackingStoreException{})
	RegisterPOJO(&java_exception.DataFormatException{})
	RegisterPOJO(&java_exception.BrokenBarrierException{})
	RegisterPOJO(&java_exception.TooManyListenersException{})
	RegisterPOJO(&java_exception.InvalidPropertiesFormatException{})
	RegisterPOJO(&java_exception.ZipException{})
	RegisterPOJO(&java_exception.JarException{})
	RegisterPOJO(&java_exception.IllegalClassFormatException{})
	RegisterPOJO(&java_exception.ReflectiveOperationException{})
	RegisterPOJO(&java_exception.InvocationTargetException{})
	RegisterPOJO(&java_exception.NoSuchMethodException{})
	RegisterPOJO(&java_exception.NoSuchFieldException{})
	RegisterPOJO(&java_exception.IllegalAccessException{})
	RegisterPOJO(&java_exception.ClassNotFoundException{})
	RegisterPOJO(&java_exception.InstantiationException{})
	RegisterPOJO(&java_exception.DateTimeException{})
	RegisterPOJO(&java_exception.UnsupportedTemporalTypeException{})
	RegisterPOJO(&java_exception.ZoneRulesException{})
	RegisterPOJO(&java_exception.DateTimeParseException{})
	RegisterPOJO(&java_exception.FormatterClosedException{})
	RegisterPOJO(&java_exception.CancellationException{})
	RegisterPOJO(&java_exception.UnknownFormatConversionException{})
	RegisterPOJO(&java_exception.UnknownFormatFlagsException{})
	RegisterPOJO(&java_exception.IllegalFormatFlagsException{})
	RegisterPOJO(&java_exception.IllegalFormatPrecisionException{})
	RegisterPOJO(&java_exception.IllegalFormatCodePointException{})
	RegisterPOJO(&java_exception.MissingFormatArgumentException{})
	RegisterPOJO(&java_exception.MissingFormatWidthException{})
	RegisterPOJO(&java_exception.DubboGenericException{})
	RegisterPOJO(&java_exception.IncompleteAnnotationException{})
	RegisterPOJO(&java_exception.AnnotationTypeMismatchException{})
}
