Top Description Fields Constructors Methods
org.apache.derby.impl.db

pack-priv final Class DatabaseContextImpl

extends ContextImpl
implements DatabaseContext
Class Inheritance
All Implemented Interfaces
org.apache.derby.iapi.db.DatabaseContext, org.apache.derby.iapi.services.context.Context
Imports
org.apache.derby.iapi.services.context.ContextImpl, .ContextManager, .ContextService, org.apache.derby.iapi.sql.dictionary.DataDictionary, org.apache.derby.iapi.services.monitor.ModuleFactory, .Monitor, org.apache.derby.iapi.db.Database, .DatabaseContext, org.apache.derby.shared.common.error.StandardException, .ExceptionSeverity

A context that shutdowns down the database on a databsae exception.

Field Summary

Modifier and TypeField and Description
private final Database

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
cleanupOnError(Throwable
The original error
t
)

Implements org.apache.derby.iapi.services.context.Context.cleanupOnError.

Contexts will be passed errors that are caught by the outer system when they are serious enough to require corrective action.

public boolean
equals(Object
the reference object with which to compare.
other
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

private static ContextService
getContextService()

Must be private so that user code can't call this entry point.

public Database
private static ModuleFactory
getMonitor()

Must be private so that user code can't call this entry point.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

Inherited from org.apache.derby.iapi.services.context.ContextImpl:
appendErrorInfogetContextManagergetIdNameisLastHandlerpopMepushMe

Field Detail

dbback to summary
private final Database db

Constructor Detail

DatabaseContextImplback to summary
pack-priv DatabaseContextImpl(ContextManager cm, Database db)

Method Detail

cleanupOnErrorback to summary
public void cleanupOnError(Throwable t)

Implements org.apache.derby.iapi.services.context.Context.cleanupOnError.

Doc from org.apache.derby.iapi.services.context.Context.cleanupOnError.

Contexts will be passed errors that are caught by the outer system when they are serious enough to require corrective action. They will be told what the error is, so that they can react appropriately. Most of the time, the contexts will react by either doing nothing or by removing themselves from the context manager. If there are no other references to the context, removing itself from the manager equates to freeing it.
On an exception that is session severity or greater the Context must push itself off the stack. This is to ensure that after a session has been closed there are no Contexts on the stack that potentially hold references to objects, thus delaying their garbage collection.

Contexts must release all their resources before removing themselves from their context manager.

The context manager will "unwind" the contexts during cleanup in the reverse order they were placed on its global stack.

If error is an instance of StandardException then an implementation of this method may throw a new exception if and only if the new exception is an instance of StandardException that is more severe than the original error or the new exception is a not an instance of StandardException (e.g java.lang.NullPointerException).

Parameters
t:Throwable

The original error

equalsback to summary
public boolean equals(Object other)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
other:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

getContextServiceback to summary
private static ContextService getContextService()

Must be private so that user code can't call this entry point.

getDatabaseback to summary
public Database getDatabase()

Implements org.apache.derby.iapi.db.DatabaseContext.getDatabase.

getMonitorback to summary
private static ModuleFactory getMonitor()

Must be private so that user code can't call this entry point.

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object