# Class SyncProviderException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.sql.SQLException
javax.sql.rowset.spi.SyncProviderException

All Implemented Interfaces:
  `Serializable, Iterable<Throwable>`

public class SyncProviderException extends SQLException
Indicates an error with the `SyncProvider` mechanism. This exception is created by a `SyncProvider` abstract class extension if it encounters violations in reading from or writing to the originating data source.

If it is implemented to do so, the `SyncProvider` object may also create a `SyncResolver` object and either initialize the `SyncProviderException` object with it at construction time or set it with the `SyncProvider` object at a later time.

The method `acceptChanges` will throw this exception after the writer has finished checking for conflicts and has found one or more conflicts. An application may catch a `SyncProviderException` object and call its `getSyncResolver` method to get its `SyncResolver` object. See the code fragment in the interface comment for `SyncResolver` for an example. This `SyncResolver` object will mirror the `RowSet` object that generated the exception, except that it will contain only the values from the data source that are in conflict. All other values in the `SyncResolver` object will be `null`.

The `SyncResolver` object may be used to examine and resolve each conflict in a row and then go to the next row with a conflict to repeat the procedure.

A `SyncProviderException` object may or may not contain a description of the condition causing the exception. The inherited method `getMessage` may be called to retrieve the description if there is one.

Since:
  1.5
See Also:
  - `SyncFactory`
  - `SyncResolver`
  - `SyncFactoryException`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`SyncProviderException()`
Creates a new `SyncProviderException` object without a detail message.
`SyncProviderException(String msg)`
Constructs a `SyncProviderException` object with the specified detail message.
`SyncProviderException(SyncResolver syncResolver)`
Constructs a `SyncProviderException` object with the specified `SyncResolver` instance.

## Method Summary

Modifier and Type
Method
Description
`SyncResolver`
`getSyncResolver()`
Retrieves the `SyncResolver` object that has been set for this `SyncProviderException` object, or if none has been set, an instance of the default `SyncResolver` implementation included in the reference implementation.
`void`
`setSyncResolver(SyncResolver syncResolver)`
Sets the `SyncResolver` object for this `SyncProviderException` object to the one supplied.

### Methods declared in class SQLException

`getErrorCode, getNextException, getSQLState, iterator, setNextException`
Modifier and Type
Method
Description
`int`
`getErrorCode()`
Retrieves the vendor-specific exception code for this `SQLException` object.
`SQLException`
`getNextException()`
Retrieves the exception chained to this `SQLException` object by setNextException(SQLException ex).
`String`
`getSQLState()`
Retrieves the SQLState for this `SQLException` object.
`Iterator<Throwable>`
`iterator()`
Returns an iterator over the chained SQLExceptions.
`void`
`setNextException(SQLException ex)`
Adds an `SQLException` object to the end of the chain.

### Methods declared in class Throwable

`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
Modifier and Type
Method
Description
`final void`
`addSuppressed(Throwable exception)`
Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.
`Throwable`
`fillInStackTrace()`
Fills in the execution stack trace.
`Throwable`
`getCause()`
Returns the cause of this throwable or `null` if the cause is nonexistent or unknown.
`String`
`getLocalizedMessage()`
Creates a localized description of this throwable.
`String`
`getMessage()`
Returns the detail message string of this throwable.
`StackTraceElement[]`
`getStackTrace()`
Provides programmatic access to the stack trace information printed by `Throwable.printStackTrace()`.
`final Throwable[]`
`getSuppressed()`
Returns an array containing all of the exceptions that were suppressed, typically by the `try`-with-resources statement, in order to deliver this exception.
`Throwable`
`initCause(Throwable cause)`
Initializes the cause of this throwable to the specified value.
`void`
`printStackTrace()`
Prints this throwable and its backtrace to the standard error stream.
`void`
`printStackTrace(PrintStream s)`
Prints this throwable and its backtrace to the specified print stream.
`void`
`printStackTrace(PrintWriter s)`
Prints this throwable and its backtrace to the specified print writer.
`void`
`setStackTrace(StackTraceElement[] stackTrace)`
Sets the stack trace elements that will be returned by `Throwable.getStackTrace()` and printed by `Throwable.printStackTrace()` and related methods.
`String`
`toString()`
Returns a short description of this throwable.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

### Methods declared in interface Iterable

`forEach, spliterator`
Modifier and Type
Method
Description
`default void`
`forEach(Consumer<? super Throwable> action)`
Performs the given action for each element of the `Iterable` until all elements have been processed or the action throws an exception.
`default Spliterator<Throwable>`
`spliterator()`
Creates a `Spliterator` over the elements described by this `Iterable`.

## Constructor Details

### SyncProviderException

public SyncProviderException()
Creates a new `SyncProviderException` object without a detail message.

### SyncProviderException

public SyncProviderException(String msg)
Constructs a `SyncProviderException` object with the specified detail message.

Parameters:
  `msg` - the detail message

### SyncProviderException

public SyncProviderException(SyncResolver syncResolver)
Constructs a `SyncProviderException` object with the specified `SyncResolver` instance.

Parameters:
  `syncResolver` - the `SyncResolver` instance used to to process the synchronization conflicts
Throws:
  `IllegalArgumentException` - if the `SyncResolver` object is `null`.

## Method Details

### getSyncResolver

public SyncResolver getSyncResolver()
Retrieves the `SyncResolver` object that has been set for this `SyncProviderException` object, or if none has been set, an instance of the default `SyncResolver` implementation included in the reference implementation.

If a `SyncProviderException` object is thrown, an application may use this method to generate a `SyncResolver` object with which to resolve the conflict or conflicts that caused the exception to be thrown.

Returns:
  the `SyncResolver` object set for this `SyncProviderException` object or, if none has been set, an instance of the default `SyncResolver` implementation. In addition, the default `SyncResolver` implementation is also returned if the `SyncResolver()` or `SyncResolver(String)` constructors are used to instantiate the `SyncResolver` instance.

### setSyncResolver

public void setSyncResolver(SyncResolver syncResolver)
Sets the `SyncResolver` object for this `SyncProviderException` object to the one supplied. If the argument supplied is `null`, a call to the method `getSyncResolver` will return the default reference implementation of the `SyncResolver` interface.

Parameters:
  `syncResolver` - the `SyncResolver` object to be set; cannot be `null`
Throws:
  `IllegalArgumentException` - if the `SyncResolver` object is `null`.
See Also:
  - `getSyncResolver()`