Imported GNU Classpath 0.92
2006-08-14 Mark Wielaard <mark@klomp.org> Imported GNU Classpath 0.92 * HACKING: Add more importing hints. Update automake version requirement. * configure.ac (gconf-peer): New enable AC argument. Add --disable-gconf-peer and --enable-default-preferences-peer to classpath configure when gconf is disabled. * scripts/makemake.tcl: Set gnu/java/util/prefs/gconf and gnu/java/awt/dnd/peer/gtk to bc. Classify gnu/java/security/Configuration.java as generated source file. * gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java, gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java, gnu/java/lang/management/VMClassLoadingMXBeanImpl.java, gnu/java/lang/management/VMRuntimeMXBeanImpl.java, gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java, gnu/java/lang/management/VMThreadMXBeanImpl.java, gnu/java/lang/management/VMMemoryMXBeanImpl.java, gnu/java/lang/management/VMCompilationMXBeanImpl.java: New VM stub classes. * java/lang/management/VMManagementFactory.java: Likewise. * java/net/VMURLConnection.java: Likewise. * gnu/java/nio/VMChannel.java: Likewise. * java/lang/Thread.java (getState): Add stub implementation. * java/lang/Class.java (isEnum): Likewise. * java/lang/Class.h (isEnum): Likewise. * gnu/awt/xlib/XToolkit.java (getClasspathTextLayoutPeer): Removed. * javax/naming/spi/NamingManager.java: New override for StackWalker functionality. * configure, sources.am, Makefile.in, gcj/Makefile.in, include/Makefile.in, testsuite/Makefile.in: Regenerated. From-SVN: r116139
This commit is contained in:
parent
abab460491
commit
ac1ed908de
1294 changed files with 99479 additions and 35933 deletions
|
@ -1,5 +1,5 @@
|
|||
/* InitialContext.java --
|
||||
Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
/* InitialContext.java -- Initial naming context.
|
||||
Copyright (C) 2000, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -43,170 +43,291 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.naming.spi.NamingManager;
|
||||
|
||||
/**
|
||||
* The starting context for performing naming operations. All naming operations
|
||||
* are performed in the scope of some context. The initial context is the
|
||||
* starting point for the name resolution.
|
||||
*/
|
||||
public class InitialContext implements Context
|
||||
{
|
||||
/**
|
||||
* Contains the default initial context. This value is returned by
|
||||
* {@link NamingManager#getInitialContext}. It is set by this method
|
||||
* when calling it first time. The subsequent calls return the value of
|
||||
* this field.
|
||||
*/
|
||||
protected Context defaultInitCtx;
|
||||
|
||||
/**
|
||||
* Indicates if the initial context was obtained by calling
|
||||
* {@link NamingManager#getInitialContext}.
|
||||
*/
|
||||
protected boolean gotDefault = false;
|
||||
|
||||
/**
|
||||
* The environment, associated with this initial context.
|
||||
*/
|
||||
protected Hashtable myProps;
|
||||
|
||||
public InitialContext (Hashtable environment)
|
||||
throws NamingException
|
||||
/**
|
||||
* The list of the properties, to that the second alternative value must
|
||||
* be appended after the colon to the first possible value. Used in
|
||||
* {@link #merge(Hashtable, Hashtable)}
|
||||
*/
|
||||
static final HashSet colon_list;
|
||||
static
|
||||
{
|
||||
colon_list = new HashSet();
|
||||
colon_list.add(Context.OBJECT_FACTORIES);
|
||||
colon_list.add(Context.URL_PKG_PREFIXES);
|
||||
colon_list.add(Context.STATE_FACTORIES);
|
||||
};
|
||||
|
||||
/**
|
||||
* The properties that are searched in the agreed places in the
|
||||
* {@link #init(Hashtable)} method.
|
||||
*/
|
||||
static final String[] use_properties =
|
||||
{
|
||||
Context.DNS_URL,
|
||||
Context.INITIAL_CONTEXT_FACTORY,
|
||||
Context.OBJECT_FACTORIES,
|
||||
Context.PROVIDER_URL,
|
||||
Context.STATE_FACTORIES,
|
||||
Context.URL_PKG_PREFIXES,
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Creates the new initial context with the given properties.
|
||||
*
|
||||
* @param environment the properties, used by the initial context being
|
||||
* created.
|
||||
* @throws NamingException
|
||||
*/
|
||||
public InitialContext(Hashtable environment) throws NamingException
|
||||
{
|
||||
init (environment);
|
||||
init(environment);
|
||||
}
|
||||
|
||||
protected InitialContext (boolean lazy)
|
||||
throws NamingException
|
||||
/**
|
||||
* Creates the initial context with the possibility to delay its
|
||||
* initialisation.
|
||||
*
|
||||
* @param lazy specified if the initialization should not be performed by this
|
||||
* constructor (true). If the valueis false, it works the same way as
|
||||
* the parameterless constructor.
|
||||
* @throws NamingException
|
||||
*/
|
||||
protected InitialContext(boolean lazy) throws NamingException
|
||||
{
|
||||
if (! lazy)
|
||||
init (null);
|
||||
init(null);
|
||||
}
|
||||
|
||||
public InitialContext ()
|
||||
throws NamingException
|
||||
/**
|
||||
* Creates teh new initial context with no properties. Same as
|
||||
* InitialContext(null).
|
||||
*
|
||||
* @throws NamingException
|
||||
*/
|
||||
public InitialContext() throws NamingException
|
||||
{
|
||||
init (null);
|
||||
init(null);
|
||||
}
|
||||
|
||||
/** @since 1.3 */
|
||||
protected void init (Hashtable environment)
|
||||
throws NamingException
|
||||
/**
|
||||
* <p>
|
||||
* Initialises the context, using the properties, specified in the passed
|
||||
* table.
|
||||
* </p>
|
||||
* The missing properties are additionally obtained (in order) from the
|
||||
* following locations:
|
||||
* <ul>
|
||||
* <li>If the passed parameter contains the key Context.APPLET, its value
|
||||
* must be the instance of the {@link Applet}. Then the properties are
|
||||
* requested via {@link Applet#getParameter(String)}.</li>
|
||||
* <li>The value of the system property is used.</li>
|
||||
* <li>The resource "jndi.properties" is requested from the context class
|
||||
* loader of the current thread</li>
|
||||
* <li>The property file "jndi.properties" is read from the location,
|
||||
* specified by the system property "gnu.classpath.home.url".
|
||||
* </ul>
|
||||
* </p>
|
||||
*
|
||||
* @param environment the table of the properties, may be null. The method
|
||||
* modifies the table and stores the reference to it. The caller must
|
||||
* not later reuse this structure for other purposes.
|
||||
* @since 1.3
|
||||
*/
|
||||
protected void init(Hashtable environment) throws NamingException
|
||||
{
|
||||
// FIXME: Is this enough?
|
||||
final String[] properties = {
|
||||
Context.DNS_URL,
|
||||
Context.INITIAL_CONTEXT_FACTORY,
|
||||
Context.OBJECT_FACTORIES,
|
||||
Context.PROVIDER_URL,
|
||||
Context.STATE_FACTORIES,
|
||||
Context.URL_PKG_PREFIXES,
|
||||
};
|
||||
|
||||
// Create myProps, cloning environment if needed.
|
||||
// If is documented that the caller should not modify the environment.
|
||||
if (environment != null)
|
||||
myProps = (Hashtable) environment.clone ();
|
||||
myProps = environment;
|
||||
else
|
||||
myProps = new Hashtable ();
|
||||
|
||||
Applet napplet = (Applet) myProps.get (Context.APPLET);
|
||||
|
||||
for (int i = properties.length - 1; i >= 0; i--)
|
||||
myProps = new Hashtable();
|
||||
|
||||
Applet napplet = (Applet) myProps.get(Context.APPLET);
|
||||
|
||||
Properties pApplet = null;
|
||||
if (napplet != null)
|
||||
pApplet = new Properties();
|
||||
Properties pSystem = new Properties();
|
||||
Object value;
|
||||
|
||||
for (int i = use_properties.length - 1; i >= 0; i--)
|
||||
{
|
||||
Object o = myProps.get (properties[i]);
|
||||
|
||||
if (o == null)
|
||||
{
|
||||
if (napplet != null)
|
||||
o = napplet.getParameter (properties[i]);
|
||||
if (o == null)
|
||||
o = System.getProperty (properties[i]);
|
||||
if (o != null)
|
||||
myProps.put (properties[i], o);
|
||||
}
|
||||
String key = use_properties[i];
|
||||
if (napplet != null)
|
||||
{
|
||||
value = napplet.getParameter(key);
|
||||
if (value != null)
|
||||
pApplet.put(key, value);
|
||||
}
|
||||
|
||||
value = System.getProperty(key);
|
||||
if (value != null)
|
||||
pSystem.put(key, value);
|
||||
}
|
||||
|
||||
merge(myProps, pSystem);
|
||||
if (pApplet != null)
|
||||
merge(myProps, pApplet);
|
||||
|
||||
try
|
||||
{
|
||||
Enumeration ep = Thread.currentThread().getContextClassLoader().getResources("jndi.naming");
|
||||
while (ep.hasMoreElements ())
|
||||
{
|
||||
URL url = (URL) ep.nextElement ();
|
||||
Properties p = new Properties ();
|
||||
|
||||
try
|
||||
{
|
||||
InputStream is = url.openStream ();
|
||||
p.load (is);
|
||||
is.close ();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
}
|
||||
Enumeration ep = Thread.currentThread().
|
||||
getContextClassLoader().getResources("jndi.properties");
|
||||
while (ep.hasMoreElements())
|
||||
{
|
||||
URL url = (URL) ep.nextElement();
|
||||
Properties p = new Properties();
|
||||
|
||||
merge (myProps, p);
|
||||
}
|
||||
try
|
||||
{
|
||||
InputStream is = url.openStream();
|
||||
p.load(is);
|
||||
is.close();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
merge(myProps, p);
|
||||
}
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
String home = System.getProperty("gnu.classpath.home.url");
|
||||
if (home != null)
|
||||
{
|
||||
String url = home + "/jndi.properties";
|
||||
Properties p = new Properties ();
|
||||
|
||||
try
|
||||
{
|
||||
InputStream is = new URL(url).openStream();
|
||||
p.load (is);
|
||||
is.close ();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
// Ignore.
|
||||
}
|
||||
String url = home + "/jndi.properties";
|
||||
Properties p = new Properties();
|
||||
|
||||
merge (myProps, p);
|
||||
try
|
||||
{
|
||||
InputStream is = new URL(url).openStream();
|
||||
p.load(is);
|
||||
is.close();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
merge(myProps, p);
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: Is this enough?
|
||||
private static final String[] colon_list =
|
||||
{
|
||||
Context.OBJECT_FACTORIES,
|
||||
Context.URL_PKG_PREFIXES,
|
||||
Context.STATE_FACTORIES
|
||||
};
|
||||
|
||||
private static void merge (Hashtable h1, Hashtable h2)
|
||||
|
||||
/**
|
||||
* Merge the content of the two tables. If the second table contains the key
|
||||
* that is missing in the first table, this key - value pair is copied to the
|
||||
* first table. If both first and second tables contain the same key AND the
|
||||
* {@link #colon_list} set also contains this key, the value from the second
|
||||
* table is appended to the value from the first table after semicolon, and
|
||||
* the resulted value replaces the value in the first table.
|
||||
*
|
||||
* @param primary the first table to merge. The merged result is also stored
|
||||
* in this table.
|
||||
* @param additional the second table, from where additional values are taken
|
||||
*/
|
||||
static void merge (Hashtable primary, Hashtable additional)
|
||||
{
|
||||
Enumeration e2 = h2.keys();
|
||||
Enumeration en = additional.keys();
|
||||
|
||||
while (e2.hasMoreElements())
|
||||
while (en.hasMoreElements())
|
||||
{
|
||||
String key2 = (String) e2.nextElement();
|
||||
Object value1 = h1.get(key2);
|
||||
if (value1 == null)
|
||||
h1.put(key2, h2.get(key2));
|
||||
else if (key2.compareTo(colon_list[0]) == 0
|
||||
|| key2.compareTo(colon_list[1]) == 0
|
||||
|| key2.compareTo(colon_list[2]) == 0
|
||||
|| key2.compareTo(colon_list[3]) == 0)
|
||||
{
|
||||
String value2 = (String) h2.get(key2);
|
||||
h1.put(key2, (String) value1 + ":" + value2);
|
||||
}
|
||||
String key2 = (String) en.nextElement();
|
||||
Object value1 = primary.get(key2);
|
||||
if (value1 == null)
|
||||
primary.put(key2, additional.get(key2));
|
||||
else if (colon_list.contains(key2))
|
||||
{
|
||||
String value2 = (String) additional.get(key2);
|
||||
primary.put(key2, (String) value1 + ":" + value2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected Context getDefaultInitCtx () throws NamingException
|
||||
|
||||
/**
|
||||
* Get the default initial context. If {@link #gotDefault} == false, this
|
||||
* method obtains the initial context from the naming manager and sets
|
||||
* gotDefault to true. Otherwise the cached value ({@link #defaultInitCtx} is
|
||||
* returned.
|
||||
*
|
||||
* @return the default initial context
|
||||
* @throws NamingException
|
||||
*/
|
||||
protected Context getDefaultInitCtx() throws NamingException
|
||||
{
|
||||
if (! gotDefault)
|
||||
{
|
||||
defaultInitCtx = NamingManager.getInitialContext (myProps);
|
||||
gotDefault = true;
|
||||
defaultInitCtx = NamingManager.getInitialContext(myProps);
|
||||
gotDefault = true;
|
||||
}
|
||||
return defaultInitCtx;
|
||||
}
|
||||
|
||||
|
||||
protected Context getURLOrDefaultInitCtx (Name name)
|
||||
throws NamingException
|
||||
/**
|
||||
* Obtains the context for resolving the given name. If the first component of
|
||||
* the name is the URL string, this method tries to find the corressponding
|
||||
* URL naming context. If it is not an URL string, or the URL context is not
|
||||
* found, the default initial context is returned.
|
||||
*
|
||||
* @param name the name, for that it is required to obtain the context.
|
||||
* @return the context for resolving the name.
|
||||
* @throws NamingException
|
||||
*/
|
||||
protected Context getURLOrDefaultInitCtx(Name name) throws NamingException
|
||||
{
|
||||
if (name.size () > 0)
|
||||
return getURLOrDefaultInitCtx (name.get (0));
|
||||
if (name.size() > 0)
|
||||
return getURLOrDefaultInitCtx(name.get(0));
|
||||
else
|
||||
return getDefaultInitCtx ();
|
||||
return getDefaultInitCtx();
|
||||
}
|
||||
|
||||
protected Context getURLOrDefaultInitCtx (String name)
|
||||
throws NamingException
|
||||
/**
|
||||
* Obtains the context for resolving the given name. If the first component of
|
||||
* the name is the URL string, this method tries to find the corressponding
|
||||
* URL naming context. If it is not an URL string, or the URL context is not
|
||||
* found, the default initial context is returned.
|
||||
*
|
||||
* @param name the name, for that it is required to obtain the context.
|
||||
* @return the context for resolving the name.
|
||||
* @throws NamingException
|
||||
*/
|
||||
protected Context getURLOrDefaultInitCtx(String name) throws NamingException
|
||||
{
|
||||
String scheme = null;
|
||||
|
||||
|
@ -214,178 +335,211 @@ public class InitialContext implements Context
|
|||
return getDefaultInitCtx();
|
||||
int colon = name.indexOf(':');
|
||||
int slash = name.indexOf('/');
|
||||
if (colon > 0 && (slash == -1 || colon < slash))
|
||||
if (colon > 0 && (slash == - 1 || colon < slash))
|
||||
scheme = name.substring(0, colon);
|
||||
if (scheme != null)
|
||||
if (scheme != null)
|
||||
{
|
||||
Context context =
|
||||
NamingManager.getURLContext(scheme, myProps);
|
||||
if (context != null)
|
||||
return context;
|
||||
Context context = NamingManager.getURLContext(scheme, myProps);
|
||||
if (context != null)
|
||||
return context;
|
||||
}
|
||||
|
||||
|
||||
return getDefaultInitCtx();
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void bind (Name name, Object obj) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).bind (name, obj);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void bind (String name, Object obj) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).bind (name, obj);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Object lookup (Name name) throws NamingException
|
||||
{
|
||||
try
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).lookup (name);
|
||||
return getURLOrDefaultInitCtx (name).lookup (name);
|
||||
}
|
||||
catch (CannotProceedException cpe)
|
||||
{
|
||||
Context ctx = NamingManager.getContinuationContext (cpe);
|
||||
return ctx.lookup (cpe.getRemainingName());
|
||||
Context ctx = NamingManager.getContinuationContext (cpe);
|
||||
return ctx.lookup (cpe.getRemainingName());
|
||||
}
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Object lookup (String name) throws NamingException
|
||||
{
|
||||
try
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).lookup (name);
|
||||
}
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).lookup (name);
|
||||
}
|
||||
catch (CannotProceedException cpe)
|
||||
{
|
||||
Context ctx = NamingManager.getContinuationContext (cpe);
|
||||
return ctx.lookup (cpe.getRemainingName());
|
||||
}
|
||||
{
|
||||
Context ctx = NamingManager.getContinuationContext (cpe);
|
||||
return ctx.lookup (cpe.getRemainingName());
|
||||
}
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void rebind (Name name, Object obj) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).rebind (name, obj);
|
||||
}
|
||||
|
||||
|
||||
/** @inheritDoc */
|
||||
public void rebind (String name, Object obj) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).rebind (name, obj);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void unbind (Name name) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).unbind (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void unbind (String name) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).unbind (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void rename (Name oldName, Name newName) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (oldName).rename (oldName, newName);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void rename (String oldName, String newName) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (oldName).rename (oldName, newName);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public NamingEnumeration list (Name name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).list (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public NamingEnumeration list (String name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).list (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public NamingEnumeration listBindings (Name name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).listBindings (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public NamingEnumeration listBindings (String name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).listBindings (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void destroySubcontext (Name name) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).destroySubcontext (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void destroySubcontext (String name) throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitCtx (name).destroySubcontext (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Context createSubcontext (Name name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).createSubcontext (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Context createSubcontext (String name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).createSubcontext (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Object lookupLink (Name name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).lookupLink (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Object lookupLink (String name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).lookupLink (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public NameParser getNameParser (Name name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).getNameParser (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public NameParser getNameParser (String name) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).getNameParser (name);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Name composeName (Name name, Name prefix) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).composeName (name, prefix);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public String composeName (String name,
|
||||
String prefix) throws NamingException
|
||||
String prefix) throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitCtx (name).composeName (name, prefix);
|
||||
}
|
||||
|
||||
|
||||
/** @inheritDoc */
|
||||
public Object addToEnvironment (String propName,
|
||||
Object propVal) throws NamingException
|
||||
Object propVal) throws NamingException
|
||||
{
|
||||
return myProps.put (propName, propVal);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Object removeFromEnvironment (String propName) throws NamingException
|
||||
{
|
||||
return myProps.remove (propName);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public Hashtable getEnvironment () throws NamingException
|
||||
{
|
||||
return myProps;
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public void close () throws NamingException
|
||||
{
|
||||
myProps = null;
|
||||
defaultInitCtx = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This operation is not supported for the initial naming context.
|
||||
*
|
||||
* @throws OperationNotSupportedException always, unless the method is
|
||||
* overridden in the derived class.
|
||||
*/
|
||||
public String getNameInNamespace () throws NamingException
|
||||
{
|
||||
throw new OperationNotSupportedException ();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue