Where's the Exception???

Try creating a JSP containing nothing but this:
<%
String bad = null;
bad.equals("death");
%>
This will show a 404 error and NOT display a stack trace! What gives? When
I have a real problem, how I am I supposed to debug it if
handlePageException eats the exceptions without giving me a stack trace or
even a Exception name?
Try the same code under tomcat and it prints the exception. If I wanted to
put a error page in I believe it would display the page, but I don't care
about that right now. For now I'm just trying to get my stack trace so I
can debug the application.
Any help is greatly appreciated.
[email protected]

And you think this is bad.... Try using entity EJBs and throw an exception
in ejbStore. In the 'standard' SP2, the client (typically a servlet) will
never be notified.
JdV!!
Jason Henriksen wrote:
Try creating a JSP containing nothing but this:
<%
String bad = null;
bad.equals("death");
%>
This will show a 404 error and NOT display a stack trace! What gives?
When I have a real problem, how I am I supposed to debug it if
handlePageException eats the exceptions without giving me a stack trace or
even a Exception name?
Try the same code under tomcat and it prints the exception. If I wanted
to put a error page in I believe it would display the page, but I don't
care
about that right now. For now I'm just trying to get my stack trace so I
can debug the application.
Any help is greatly appreciated.
[email protected]
==============================================================
Jan de Visser Digital Fairway Corp.
tel. (416) 628 7525 [email protected]
<Enter any 12 digit prime to continue>
==============================================================

Similar Messages

  • Where is the exception stacktrace - weblogic.webservice.core.handler.Invoke

    Hi, I am debugging a Web Service. It sometimes throws an exception while deserializing the input. But when I look through the log all I see is:
    ####<Jul 27, 2010 9:20:43 AM EDT> <Info> <WebService> <myhost.net> <prodServer114> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1280236843573> <BEA-220024> <Handler weblogic.webservice.core.handler.InvokeHandler threw an exception from its handleRequest method. The exception was:
    java.lang.NumberFormatException: For input string: "".>
    How do I make weblogic spit out the exception stacktrace?
    I am using Weblogic 9.2.
    Thanks in advance!

    Hi, I am debugging a Web Service. It sometimes throws an exception while deserializing the input. But when I look through the log all I see is:
    ####<Jul 27, 2010 9:20:43 AM EDT> <Info> <WebService> <myhost.net> <prodServer114> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1280236843573> <BEA-220024> <Handler weblogic.webservice.core.handler.InvokeHandler threw an exception from its handleRequest method. The exception was:
    java.lang.NumberFormatException: For input string: "".>
    How do I make weblogic spit out the exception stacktrace?
    I am using Weblogic 9.2.
    Thanks in advance!

  • Where is the cookie exception list in Firefox 17.0.1

    i'm looking for the cookie exception list that seems to have moved in later versions. I'm having trouble with Facebook and yahoo mail in that Firefox is showing those sites in frames. If I reset Firefox it works fine, but I am tiring of resetting it twice a day to read my email. It was suggested to add these sites to the cookies exception list - except that it's not where it used to be.

    Hi,
    You can try setting '''Firefox will:''' to '''Use custom settings for history''' in '''Tools''' ('''Alt''' + '''T''') > '''Options''' > [https://support.mozilla.org/en-US/kb/Options%20window%20-%20Privacy%20panel?as=u Privacy] to reveal the '''Exceptions''' button.
    [https://support.mozilla.org/en-US/kb/Options%20window Options]
    Please also try these direct links for signing in:
    https://www.facebook.com/
    https://login.yahoo.com/

  • Is there any exception used any where in the block

    Hi All,
    Is there is any Exception that can be used inside any where in the pl/sql block.
    Thanks & Regards
    Srikkanth.M

    Yes, Srikanth.. many kind of exceptions are there which can be raised within a pl/sql block, after a begin keyword..
    for example: if you have wrote select query, it can raise no data found exception (if select query doesn't return anything), multiple rows fond exception ( if query selects multiple rows) other select query related exceptions like table or column not found..
    Exception List is here:
    http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784
    Regards,
    Dipali..

  • How do I delete a Security Exception from the list of items where 'Confirm Security Exception' has been selected?

    I looked at all the previous solutions, some of which were the same., but they didn't answer my question.
    Firefox 17.01
    Ubuntu 12.04
    If I go to
    Edit --> Preferences --> Advanced --> Encryption
    it looks like 'View Certificates' is the likeliest place to look for the Security Exceptions resulting from me clicking 'Confirm Security Exception'.
    I have looked at the five tabs on the next dialog box 'Certificate Manager', and the most likely looks like the 'Servers' tab.
    On this tab, I can see that there is a button to 'Add Exception...', but nowhere to 'Show Exceptions', and the 'Add Exception...' button only provides means to add a new exception.

    Correct: you can find the exceptions under the '''Servers''' tab. Unlike other entries, your custom exceptions should have the '''Server''' column filled out; this should make them easier to locate. Select an entry, then click the '''Delete...''' button.

  • How to log the exception using Log action in Oracle Service Bus

    Hi,
    Whenever an exception is raised how to log the exception using Log action in oracle service bus.After logging where I have to find the logged message.

    It would be in the log file for the managed server which ran the request. If you are logging the message at a lower level than your app server, however, you won't see it. You should be logging the exception at Error level.

  • How to get rid of the Exceptions

    When I tried to open the client i.e User interface which is MainMenuApp received NO_PERMISSION CORBA exception while attempting to get an initial reference to the mvcf_ControllerFactory from the FactoryFinder. Software defect that should be addressed is that the UI did not recover after catching the exception and required a restart of the UI to connect.
    The problem is that cleanWorkspace() in CorbaAdapter doesn't have any failover logic in it at all. The adapter is assumed to be good and if it is not cleanWorkspace() attempts to use a factory that doesn't exist. This throws an uncaught NullPointerException that blows out to MainMenuApp where it is interpreted as a fatal exception and prevents the main menu from starting. So please help me in writing the failover logic in CorbaAdapter
    The code for cleanWorkspace is
    * Cleans up the entire logical positions workspace.
    * @throws AdapterException UserError or Error occured
    public synchronized void cleanWorkspace() throws AdapterException
    cut_ContextInitData cid = getContextInitData();
    cid.clientId = "*";
    MVC2CleanWorkspaceCmd cmd = new MVC2CleanWorkspaceCmd(cid);
    execute(cmd);
    I am giving the whole logic of Corba Adapter. This might help:
    package com.ge.trans.tms.comm;
    import java.util.*;
    import org.omg.CORBA.CompletionStatus;
    import com.beasys.Tobj.FactoryFinder;
    import com.ge.trans.tms.ui.util.ExceptionHandler;
    import com.ge.trans.tms.util.Log;
    import com.ge.trans.tms.util.StringUtils;
    import com.ge.trans.tms.forms.mainmenu.Globals;
    import pds.cut_IDLCommon.cut_ContextInitData;
    import pds.cut_IDLCommon.cut_ValidationResult;
    import pds.cut_IDLContainers.cut_KeyValuePair;
    import pds.cut_IDLContainers.cut_KeyValueSequenceHolder;
    import pds.cut_IDLContainers.cut_StringSeqSeqHolder;
    import pds.cut_IDLContainers.cut_StringSequenceHolder;
    import pds.cut_IDLExceptions.cut_Error;
    import pds.cut_IDLExceptions.cut_InternalError;
    import pds.cut_IDLExceptions.cut_UserError;
    import pds.cut_IDLExceptions.cut_ModelNotFoundError;
    import pds.cut_IDLExceptions.cut_DBDeadlockError;
    import pds.mvct.mvct_ParentTableInfo;
    import com.ge.trans.tms.util.BM;
    import pds.mvcs_ControllerFactory;
    import pds.mvcs_ControllerFactoryHelper;
    import pds.mvcs_ControllerProxy;
    * Title: CorbaAdapter Description: This class provides a generic, 100% java
    * interface for its clients (UI for example) to create, query, and modify
    * remote data models. The methods in this class foward client requests through
    * calls on generated Java/Corba client stubs with disregard to the server-side
    * controller/model objects location or language implementation. This is
    * currently the only portal for the clients to communicate with the
    * server-side model/controller framework. Therefore, this class should mirror
    * the complete model/controller interface as provide in the mvcs_Controller
    * idl. This class provides constructors that hide all Corba initialization and
    * messaging implementation from its clients.
    public class CorbaAdapter extends AbstractAdapter
    protected String factoryDomainSuffix = "MVC";
    private mvcs_ControllerFactory factory;
    private mvcs_ControllerProxy controller;
    public synchronized mvcs_ControllerProxy getController()
    return controller;
    protected String getFactoryDomainSuffix() {
    return _factoryDomainSuffix;
    * Constructor Initializes the connection and generic factory finder. This
    * constructor should be used when the cleint does not want to immediately
    * create a new handle (controller) to a new or existing model. <p>
    * Preconditions: none
    * @param domain
    * @param listener <p>
    * Postconditions: If domain is null, then
    * AdapterConstants.DEFAULT_DOMAIN will be used as the domain name. If
    * listener is null, neither the caller or any other client will
    * receive error messages
    public CorbaAdapter(
    String domain,
    MessageListener listener,
    ConnectionListener connectionListener,
    boolean uniqueConnection ) throws AdapterException
    this(domain, listener, connectionListener, uniqueConnection, true);
    public CorbaAdapter(
    String domain,
    MessageListener listener,
    ConnectionListener connectionListener,
    boolean uniqueConnection,
    boolean geoAdapter ) throws AdapterException
    super( listener );
    setDomain( domain );
    _geoPartitioned = geoAdapter;
    //flag to stop retrying after failure to find factory
    this.uniqueConnection = uniqueConnection;
    String param = System.getProperty(AdapterConstants.POOLED_CONNECTION);
    if((param != null) && (param.equals("true"))) {
    this.pooledConnection = true;
    initialize();
    protected Connection makeConnection() throws Exception
    Connection connection = null;
    if( !pooledConnection )
    connection = (CorbaConnection)ConnectionFactory.getDefaultConnection(
    new ConnectionListener[] { this, additionalConnectionListener } );
    else
    String tempDomain = "";
    if(domain.equals("LOGICAL_POSITION")) {
    tempDomain = "MVC_LOGICAL_POSITION";
    } else {
    tempDomain = domain;
    connection = (CorbaConnection)
    PooledConnectionFactory.instance().getPooledConnection(tempDomain);
    if(connection != null) {
    connection.addConnectionListeners(
    new ConnectionListener[] { this, additionalConnectionListener } );
    return connection;
    * clients should never call this method as this is a the destructor for
    * this class and should only be called by the system before the garbage
    * collector sweeps away this object NOTE: there is no guarantee when the
    * system will call this method, so if a resource is in short supply,
    * manage that resource another way
    protected void finalize()
    if(Log.isEnterEnabled())Log.enter( CorbaAdapter.class, "Entering finalize..." );
    // cannot enusre all clients call cleanup fromt their code
    // so do this is defensive programming
    cleanup();
    if(Log.isLeaveEnabled())Log.leave( CorbaAdapter.class, "Leaving finalize..." );
    /** This should only be called when the adapter knows that it's
    * current connection has been repaired and the adapater's current
    * workspace (remote stub) needs to be initialized using the new connection
    * (IOR for new server).
    * This method should only be called from another which has a lock on the
    * current connection. Currently this method is only called from
    * verifyConnectionStatus().
    private boolean convertController()
    if ( controller == null ) {
    Log.error(CorbaAdapter.class, "convertController()",
    "CONVERT_CONTROLLER CALLED WITH CONTROLLER == NULL",
    new Exception("Fix Me"));
    MVC2ConvertControllerCmd cmd = new MVC2ConvertControllerCmd();
    execute(cmd);
    return (((String) cmd.getReturnValue()).equals(AdapterConstants.SUCCESS));
    * Initializes an existing adapter to a new controller/model.
    * @return AdapterConstants.ERROR or AdapterConstants.SUCCESS
    public synchronized String setController()
    AbstractCmd cmd = new MVC2SetControllerCmd();
    execute(cmd);
    Log.debug (getClass (), "returning from set controller :"+(String) cmd.getReturnValue());
    return ((String) cmd.getReturnValue());
    * Initializes an existing adapter to a new controller/existing model using
    * the current domain name and user data <p>
    * Preconditions:
    * @param domainName must represent a valid domain name
    * @param businessKey must represent a valid business key of an existing
    * model in the database. <p>
    * Postconditions: If the adapter has a initailized controller it is
    * uninitialized notifies registered MessageListener if businessKey
    * does not represent a valid model that already exists in the
    * database. notifies registered UIIFatalMessageListener of all fatal
    * server errors
    * @return Description of the Return Value
    * @returns AdapterConstants.SUCCESS or AdapterConstants.ERROR
    public synchronized String setController(Map businessKey)
    AbstractCmd cmd = new MVC2SetControllerCmd(businessKey);
    execute(cmd);
    Log.debug (getClass (), "returning from set controller bus key:"+(String) cmd.getReturnValue());
    return ((String) cmd.getReturnValue());
    private boolean clientInitialized()
    return clientInitialized( true );
    private boolean clientInitialized( boolean remoteStub )
    forceConnectionChange = false;
    if(getController()==null)
    Log.info(CorbaAdapter.class,
    "clientInitialized()",
    "(getController()==null):'"+(getController()==null)+"'");
    // obtain lock on used by this adapter and its' connection
    // before checking any values that could be changed by a shared
    // connection in another thread
    synchronized( this.adapterConnectionMonitor )
    if( !this.connectionRepaired && !this.connectionBroken )
    if( !healthyConnection )
    Log.debug(CorbaAdapter.class,
    "clientInitialized()",
    "connectionRepaired:'"+connectionRepaired+"' "+
    "connectionBroken:'"+connectionBroken+"' "+
    "healthyConnection:'"+healthyConnection+"' "+
    "calling fireFatalErrorHandler with 'AdapterConstants.NULL_CONNECTION'");
    fireFatalErrorHandler( AdapterConstants.NULL_CONNECTION );
    return false;
    else if( !healthyRemoteFactory )
    Log.debug(CorbaAdapter.class,
    "clientInitialized()",
    "connectionRepaired:'"+connectionRepaired+"' "+
    "connectionBroken:'"+connectionBroken+"' "+
    "healthyRemoteFactory:'"+healthyRemoteFactory+"' "+
    "calling fireFatalErrorHandler with 'AdapterConstants.NULL_REMOTE_FACTORY'");
    fireFatalErrorHandler( AdapterConstants.NULL_REMOTE_FACTORY );
    return false;
    else if( remoteStub && !healthyRemoteStub )
    Log.debug(CorbaAdapter.class,
    "clientInitialized()",
    "connectionRepaired:'"+connectionRepaired+"' "+
    "connectionBroken:'"+connectionBroken+"' "+
    "remoteStub:'"+remoteStub+"' "+
    "healthyRemoteStub:'"+healthyRemoteStub+"' "+
    "calling fireFatalErrorHandler with 'AdapterConstants.NULL_REMOTE_STUB'");
    fireFatalErrorHandler( AdapterConstants.NULL_REMOTE_STUB );
    return false;
    return true;
    } // release lock on used by this adapter and its' connection
    * This method should be called when the client has finished working with
    * the controller. <p>
    * Preconditions: controller (domain specific remote stub) must be
    * initialized. <p>
    * Postconditions: Cleans up any session state and removes the client's
    * workspace from existence. After this method is called, the client will
    * no longer be able to make calls on the controller without obtaining
    * another controller reference and re-initializing. Any changes made by
    * the client since calling commitChanges() are lost (i.e., the client is
    * responsible for calling commitChanges() before exiting).
    * @return AdapterConstants.SUCCESS or AdapterConstants.ERROR
    public synchronized String exit()
    AbstractCmd cmd = new MVC2ExitCmd();
    execute(cmd);
    String returnValue = (String) cmd.getReturnValue();
    if(returnValue.equals(AdapterConstants.SUCCESS))
    controller = null;
    healthyRemoteStub = false;
    return returnValue;
    * Reports whether adapters controller is currently initialized
    * @return The active value
    public synchronized boolean isActive()
    // obtain lock used by this adapter so that another method can NOT be
    // called on this adapter instance from another thread at the same
    // time
    synchronized( this.adapterConnectionMonitor )
    return ( controller != null );
    * Preconditions: the controller is initialized Postconditions: Returns the
    * domain name from the model we are controlling. <p>
    * notifies registered UIIFatalMessageListener of all fatal server errors
    * @return The domainName value or AdapterConstants.ERROR
    public synchronized String getDomainName() // throws cut_InternalError
    AbstractCmd cmd = new MVC2GetDomainNameCmd();
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller is initialized Postconditions: Returns a
    * "user context," set by the user of this controller and otherwise not
    * used by the mvc2 framework. Context is data only kept in the controller
    * (if at all) and not the model. <p>
    * notifies registered UIIFatalMessageListener of all fatal server errors
    * @return The context value or AdapterConstants.ERROR
    public synchronized String getContext() // throws cut_InternalError
    AbstractCmd cmd = new MVC2GetContextCmd();
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller is initialized
    * @param value saved as a "user context," set by the user of this
    * controller and used by domain or customer derived controllers. <p>
    * notifies registered UIIFatalMessageListener of all fatal server
    * errors
    * @return AdapterConstants.ERROR or AdapterConstants.SUCCESS
    public synchronized String setContext( String value )
    AbstractCmd cmd = new MVC2SetContextCmd(value);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Sets a key on the server.
    * @param property key to set
    * @param value value
    * @return String retruned by service provider or Adapter.ERROR
    public synchronized String setValue( String key, String value )
    AbstractCmd cmd = new MVC2SetValueCmd(key, value);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller has been initialized
    * @param property is a valid property of the model <p>
    * Postconditions: notifies registered UIMessageListeners if property
    * is not valid notifies registered UIIFatalMessageListener(s) of any
    * fatal server errors
    * @return The value value
    * @returns the current value of the specified property or
    * AdapterConstants.ERROR
    public synchronized String getValue( String property ) // throws cut_InternalError
    AbstractCmd cmd = new MVC2GetValueCmd(property);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller has been initialized and propertyValueMap
    * is not null All properties given is propertyValueMap are valid
    * properties of the model.
    * Postconditions: All values for the properties in the map are added to
    * the map.
    * @param propertyValueMap each KeyValuePair element will have its value
    * set based on its key notifies registered UIMessageListeners if any
    * property given in the map is not a valid property of the model. If
    * this happens, the map is unchanged. notifies registered
    * UIIFatalMessageListener(s) of any fatal server errors
    * @return The values value
    * @returns AdapterConstants.SUCCESS or
    * AdapterConstants.ERROR
    public synchronized String getValues( Map propertyValueMap )
    AbstractCmd cmd = new MVC2GetValuesCmd(propertyValueMap);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: controller has been initialized and propertyValueMap is
    * not null <p>
    * Postconditions: All properties and their associated values are added to
    * the propertyValueMap. Prior contents of the map are NOT erased.
    * @param propertyValueMap will be cleared then filled with KeyValuePair
    * object references notifies registered UIIFatalMessageListener(s) of
    * any fatal server errors <p>
    * @return The allValues value
    * @returns AdapterConstants.SUCCESS or
    * AdapterConstants.ERROR NOTE: The actual definition of what "all
    * values" mean is left to the designers of the UI and the Controller
    * but should reflect what is in the models' metamodel
    public synchronized String getAllValues( Map propertyValueMap )
    AbstractCmd cmd = new MVC2GetAllValuesCmd(propertyValueMap);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Invoke a method on controller.
    * @param method Method to invoke on controller
    * @param values input/output values sent and returned from controller
    * @return String from service on success or AdapterConstrants.ERROR
    public synchronized String invokeMethod( String method, List values )
    AbstractCmd cmd = new MVC2InvokeMethodCmd(method, values);
    execute(cmd);
    return (String) cmd.getReturnValue();
    * Preconditions: the controller has been initialized Postconditions:
    * Validates the state of the model for committing, copies the transient
    * model to the persistent model, and commits it to the database. <p>
    * reports a user error(s) to registered MessageListener s if the state of
    * the model is not a valid one for commiting. reports all fatal server
    * errors to registered UIIFatalMessageListener s <p>
    * @return Description of the Return Value
    * @returns AdapterConstants.ERROR or AdapterConstants.SUCCESS
    public synchronized String commitChanges()
    AbstractCmd cmd = new MVC2CommitChangesCmd();
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller has been initialized. Postconditions:
    * Aborts all changes to the model since commitChanges() was last called.
    * <p>
    * reports all fatal server errors to registered UIIFatalMessageListener s
    * <p>
    * @return Description of the Return Value
    * @returns AdapterConstants.ERROR or AdapterConstants.SUCCESS
    public synchronized String abortChanges()
    AbstractCmd cmd = new MVC2AbortChangesCmd();
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller has been initialized and columnName is not
    * null
    * @param tableName must be a valid table of the model.
    * @param columnName is a valid column in the table of the model.
    * @param rowNum is a valid row in the table of the model.
    * @param parents used if the table is a subtable of another table, its
    * parent table(s) info must be specified and must be valid. If the
    * table is not a subtable, then parents should be empty. <p>
    * Postconditions: <p>
    * asserts columnName or rowNum have valid values for the table asserts
    * the information in parents is valid and complete; reports to
    * registered MessageListener s if the table is not a table of the
    * model
    * @return The tableValue value
    * @todo talk to Kelly because an invalid table name should
    * not be a user error but a programming error reports all fatal server
    * errors to registered UIIFatalMessageListener s <p>
    * @returns the value of the table element located in the
    * specified column at the specified row or AdapterConstants.ERROR
    public synchronized String getTableValue(
    String tableName,
    String columnName,
    int rowNum,
    ParentTableInfo[] parents )
    AbstractCmd cmd = new MVC2GetTableValueCmd(tableName, columnName, rowNum, parents);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * @param tableId The new tableValue value
    * @param columnName The new tableValue value
    * @param row The new tableValue value
    * @param value The new tableValue value
    * @return Description of the Return Value
    * @see setTableValue(String tableName, String columnName,
    * int rowNum, String value, ParentTableInfo[] parents) for method
    * contract
    public synchronized String setTableValue(
    String tableId,
    String columnName,
    int row,
    String value )
    return setTableValue( tableId, columnName, row, value,
    ( ( ParentTableInfo[] ) null ) );
    * Preconditions: asserts the controller has been initialized and
    * columnName is not null
    * @param tableName must be a valid table of the model.
    * @param columnName is a valid column in the table of the model.
    * @param rowNum is a valid row in the table of the model.
    * @param value is a valid value of the tables column and row (cell)
    * @param parents used if the table is a subtable of another table, its
    * parent table(s) info must be specified and must be valid. If the
    * table is not a subtable, then parents should be empty. <p>
    * Postconditions: Sets the value of the table cell located in the
    * specified column at the specified rowNum to the new value. <p>
    * asserts both the columnName or rowNum have valid values for the
    * table asserts the information in parents is valid and complete
    * reports to registered MessageListener s if the table is not a table
    * of the model and if the value is not a valid value for the cell of
    * the table reports all fatal server errors to registered
    * UIIFatalMessageListener s
    * @return Description of the Return Value
    * @returns the value that the table cell is set to or
    * AdapterConstants.ERROR
    public synchronized String setTableValue(
    String tableName,
    String columnName,
    int rowNum,
    String value,
    ParentTableInfo[] parents )
    AbstractCmd cmd = new MVC2SetTableValueCmd(tableName, columnName,
    rowNum, value, parents);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * Preconditions: the controller has been initialized and tableName is not
    * null
    * @param tableName must be a valid table of the model.
    * @param parents used if the table is a subtable of another table, its
    * parent table(s) info must be specified and must be valid. If the
    * table is not a subtable, then parents should be empty. <p>
    * Postconditions: <p>
    * asserts the information in parents argument is valid and complete.
    * reports to registered MessageListener s if table is not a valid
    * table reports all fatal server errors to registered
    * UIIFatalMessageListener s
    * @return The numberOfRows value
    * @returns the number of rows in the table if successful, else -1
    public synchronized int getNumberOfRows(
    String tableName,
    ParentTableInfo[] parents )
    AbstractCmd cmd = new MVC2GetNumberOfRowsCmd(tableName, parents);
    execute(cmd);
    Object returnValue = cmd.getReturnValue();
    if(returnValue.equals(AdapterConstants.ERROR))
    return -1;
    return ((Integer) cmd.getReturnValue()).intValue();
    * Preconditions: the controller has been initialized and tableName is not
    * null
    * @param tableName must be a valid table of the model.
    * @param parents used if the table is a subtable of another table,
    * its parent table(s) info must be specified and must be valid. If the
    * table is not a subtable, then parents should be empty.
    * @param rowPosition represents the (zero-based) position where you want
    * the new row <p>
    * Postconditions: Adds one row to the table at the specified position.
    * <p>
    * asserts that the rowPosition is within range to add to the table
    * asserts that the information in parents is valid and complete.
    * reports to registered MessageListener s if table is not a valid
    * table and if it is not valid to add the row to the specified
    * position reports all fatal server errors to registered
    * UIIFatalMessageListener s
    * @return Description of the Return Value
    * @returns the new row number of the inserted row if
    * successful, else -1
    public synchronized int addRow(
    String tableName,
    int rowPosition,
    ParentTableInfo[] parents )
    AbstractCmd cmd = new MVC2AddRowCmd(tableName, rowPosition, parents);
    execute(cmd);
    return ((Integer) cmd.getReturnValue()).intValue();
    * Preconditions: the controller has been initialized, tableName is not
    * null, and rowsToDelete is not null or empty
    * @param tableName must be a valid table of the model.
    * @param parents used if the table is a subtable of another table,
    * its parent table(s) info must be specified and must be valid. If the
    * table is not a subtable, then parents should be empty.
    * @param rowsToDelete all rows specified in this container must exist in
    * the table 'tableName' <p>
    * Postconditions: Deletes all rows specified in rowsToDelete from the
    * table. <p>
    * asserts all row indexes in rowsToDelete are valid asserts the
    * information in parents argument is valid and complete reports to
    * registered MessageListener s if the 'tableName' is not a valid table
    * of the model and if it is not valid to delete the rows at the
    * specified positions reports all fatal server errors to registered
    * UIIFatalMessageListener s
    * @return Description of the Return Value
    * @returns AdapterConstants.SUCCESS or AdapterConstants.ERROR
    public synchronized String deleteRows(
    String tableName,
    int[] rowsToDelete,
    ParentTableInfo[] parents )
    AbstractCmd cmd = new MVC2DeleteRowsCmd(tableName, rowsToDelete, parents);
    execute(cmd);
    return ((String) cmd.getReturnValue());
    * This method retrieves all values for a specified row. The value in each
    * column is retrieved and stored in the row container. The row container
    * is column ordered. Prior contents in the row container are lost as the
    * container is initialized within this method. <p>
    * Preconditions: the controller has been initialized and the container
    * 'row' is not null
    * @param tableName must be a valid table of the model.
    * @param rowPosition represents a valid row in the table.
    * @param parents used if the table is a subtable of another table,
    * its parent table(s) info must be specified and must be valid. If the
    * table is not a subtable, then parents should be empty.
    * @param row container which will be filled with the specified
    * table rows values <p>
    * Postconditions: asserts that rowPosition is valid (i.e not out of
    * range) asserts the information in parents argument is valid and
    * complete asserts that the container row is a valid as an
    * input/output parameter (i.e. not null) reports to registered
    * MessageListener s if tableName is not a valid table of the model
    * reports all fatal server errors to registered
    * UIIFatalMessageListener s
    * @return The row value
    * @returns AdapterConstants.SUCCESS or AdapterConstants.ERROR
    * <p>
    * NOTE: All columns and all rows have zero-based indices.
    public synchronized String getRow(
    String tableName,
    int rowPosition,
    List row,
    ParentTableInfo[] parents )
    AbstractCmd cmd = new MVC2GetRowCmd(tableName, rowPosition, row, paren

    Please can u answer it fast

  • Is there a report to track the exception messages after a MRP run ?

    We have a scenario at our client site where MRP run is not optimized to the fullest.
    The planners are not trained on how to interpret those exception messages.
    They are not trained on how to reschedule / expedite planned orders resulting from an MRP run.
    Is there a report out in SAP that keeps track of
    1) History of number of exception messages by type ( Expedite/Reschedule/Cancel)
    2) History of number of exception messages that were acted on or ignored by the planner.
    This is to create metrics on the usage of MRP exception reports by planners.
    Appreciate your inputs..

    Hi
    The exception messages are dynamic and time dependant. You cannot have history of exception message.. If your user is feeling difficult to use standard MRP reports. Create a new report using a function module MD_STOCK_REQUIREMENTS_LIST_API
    It gives all MRP data including exception messages.
    Regards
    Antony

  • Where is the parameter panel on the embedded Crystal Report preview in Visu

    Where is the parameter panel on the embedded Crystal Report preview in Visual Studio?
    I found a tweet on google about this.. but the link is invalid.. and I could not find the article on SDN.
    KB #1486469 - Where is the parameter panel on the embedded Crystal Report preview in Visual Studio? http://tinyurl.com/22thlcg
    How do I the show parameter dialog in either WPF or Winforms viewer of Visual Studio 2010.
    Parameters are not even visible in the Parameters Side panel. It is empty too..
    I see two classes ParameterPrompting and ParameterPrompt both, on initialization throws exception.. even to manually invoke them...
    Is it permanently removed?

    Hello,
    Seems like a reported Bug.
    Please check:
    Re: CRVS2010 - Hide Group Tree and Parameter Panel
    A possible woraround but you need to change as per your need:
    CRVS 2010 BETA - WPF Viewer - How to hide SidePanel?
    Hope it helps.
    Thanks.

  • How to handle the Exception when RegisterEventProcessorAsync

    In our Cloud Service project, we have 2 instances for work role (deploy to Azure), the work role is consume events from the EventHub using EventProcessorHost).
    When we want to register EventProcessor to consume data (see below):
    await eventProcessorHost.RegisterEventProcessorAsync<eventProcessor>();
    Sometimes we will got the Exception:
    Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (412) There is
    currently a lease on the blob and no lease ID was specified in the request.. ---> System.Net.WebException: The remote server returned an error: (412)
    There is currently a lease on the blob and no lease ID was specified in the request..
      at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase`1 cmd, Exception ex)
       at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpWebResponse resp, T retVal, StorageCommandBase`1 cmd, Exception ex)
       at Microsoft.WindowsAzure.Storage.Blob.CloudBlobSharedImpl.<DeleteBlobImpl>b__1b(RESTCommand`1 cmd, HttpWebResponse resp, Exception ex, OperationContext ctx)
       at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult)
       --- End of inner exception stack trace ---
       at Microsoft.WindowsAzure.Storage.Core.Util.StorageAsyncResult`1.End()
       at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.EndDeleteIfExists(IAsyncResult asyncResult)
       at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass1`1.<CreateCallback>b__0(IAsyncResult ar)
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
       at Microsoft.ServiceBus.Messaging.BlobLeaseManager.<DeleteAllAsync>d__2a.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.ServiceBus.Messaging.EventProcessorHost.<InitializeAsync>d__4.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.ServiceBus.Messaging.EventProcessorHost.<StartAsync>d__e.MoveNext()
       --- End of inner exception stack trace ---
       at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
       at System.Threading.Tasks.Task.Wait()
    at awaiteventProcessorHost.RegisterEventProcessorAsync<eventProcessor>();
    If we got the Exception, we won’t got messages any more.
    From the Call Stack, we found it was cause by delete the Blob. So we wonder that, when we call
    RegisterEventProcessorAsync,
    the hub will delete the blob and renew one in Storage?
    If we delete the blob for the EventHub manually and then run our server again. It worked as usual.
    But we can do it like this way manually, so is there any way to handle the exception in code to make the EventProcessorHost worked?
    Thanks so much!

    If we use different blob container name for different EventProcessorHost, is it a workaround for the issue?
       var
    eventProcessorHost = new
    EventProcessorHost(
                    hostName,
                    hubName,
                    consumerGroupName,
                    serviceBusConnectionString,
                    storageConnectionString,
    leaseContainerName);

  • Where is the software for the Lenovo G550???

    I want to do a clean install and replace the pre-installed Vista with Windows 7.
    I see that the Lenovo G550 download page has drivers for Windows 7, but where is the pre-installed software, like Veriface, camera software, and all other pre-installed Lenovo software? I looked at all OS options for the G550 on the download page, and NONE of them had the G550 laptop software, all they had for each OS option was only  the drivers.
    I understand that I can make a recovery DVD, but as I understand  it, it will return the system to the factory fresh state (all pre-installed programs installed, but also with the factory installed VISTA  - yuck!). I didn't see any option to only re-install the  Lenovo software without also re-installing the OS.
    When I look at the download pages for other Lenovo  laptops, I see that they have drivers AND SOFTWARE, but the G550 has no software except for the drivers. Since the G550 came with no software disks, and there doesn't seem to be any of the software online, how exactly does one do a clean installation of an operating system, and then re-install the Lenovo software, on a G550?
    I was able to find downloads of programs like Veriface on the Lenovo site for different laptop models, but unfortunately those were much older software versions, and for a different Operating system.
    Why can't Lenovo post all of the software online? If they aren't going to provide the software on DVD when they ship the PC, then they should at least have it online; so that people can do a reinstallation if necessary. DELL doesn't seem to have a problem putting all of the software for their PCs online, and they also provide it on disk with the PC.
    Do I have to find the hidden backup partition and then copy the Lenovo software installation files to a DVD or different drive myself? Has anyone done this, and if so, can they please provide some assistance as to the best way to accomplish this task?
    If there is a different/easier way to accomplish my end goal of a G550 with a Windows 7 clean install, and also with a re-installation of all pre-installed Lenovo software, I would be extremely grateful for any assistance. If there is also a way for me to select which factory software I wanted to install, that would be even better ( I don't need all of the crapware that came on the PC)
    Thanks in advance,
    Sven

    Thanks, I'll give that a try when I finally get the Windows 7 upgrade disk.
    It seems ridiculous that Lenovo doesn't support this product for Windows 7, especially when they mentioned the "FREE" upgrade (with ridiculous "shipping and handling charge") to Windows 7 on the web page where I ordered it. Being a reasonable person, I assumed that when they offered a "Free" upgrade to Windows 7 with the PC, they would also provide the basic software to allow the built-in hardware like webcams to keep on functioning as they did under Vista.
    Had I known that they would refuse to offer any software on disks or download, I would have ordered a DELL or some other PC that has a reasonable level of customer service. I am not a typical user; I don't call in for customer support. All I need is the software and drivers, and I will install it myself.

  • The exception Privileged instruction.

    Hello,
    I builded a dll which communicates with TDC card. But when I call dll from labview. It gives me the error
    The exception Privileged instruction.
    (0xc0000096) occured in the application at location 0x02e6121c.
    I have installed giveio driver.
    I am not getting where am I geeting wrong. Can somebody help me out.
    Regards,
    Maithili

    Maithili,
    It very much sounds like the error is in the DLL that you built. I assume that you have tested it outside of LabVIEW?
    Do you know exactly where the error is happening? You should set a breakpoint on the Call Library Function node and if the error happens before then, then the error is in LabVIEW. If the error happens during the Call Library Function, then the error is in the DLL itself. From there, you can print information from your DLL as you go to see where the crash is happening or use the information in the "Using External Code in LabVIEW" manual that is on your PC in the manuals directory under your LabVIEW directory.
    With no files (and no hardware to test if I had), I cannot offer any more advice. If you can do a little more digging or post a
    more detailed explaination of your issue, then the community can take another look.
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://ww.ni.com/ask

  • Where did the analogue in feature go?

    Where did the analogue in feature go?
    None of the HD cameras I have searched for have a analogue input. In fact, I have found only one MD camera that has that capability.
    http://www.sonystyle.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=1055 1&storeId=10151&langId=-1&productId=11038809

    Hello! I said... I want the ability to input analogue video into my camcorder so I can continue to transfer VHS and input and record video from other sources. The new HD cameras on the market will not allow you to record video from any source except for the lens.
    I have HD cable box. I want to record my HD programs from cable (HBO, Starz, etc) to my camera, download the video to my Mac from the camera and then edit them in iMovie and create professional looking movie DVD's in iMovie.
    iMovie HD can work with mini DV HD cameras and HD video. I was not aware of a system requirement for working with HD content.

  • How to write the exceptions in function module

    dear all,
         how to write the exceptions in function modules with example.
    thanq
    jyothi

    Hi,
    Raising Exceptions
    There are two ABAP statements for raising exceptions. They can only be used in function modules:
    RAISE except.
    und
    MESSAGE.....RAISING except.
    The effect of these statements depends on whether the calling program handles the exception or not. The calling program handles an exception If the name of the except exception or OTHERS is specified after the EXCEPTION option of the CALL FUNCTION statement.
    If the calling program does not handle the exception
    · The RAISEstatement terminates the program and switches to debugging mode.
    · The MESSAGE..... RAISING statement displays the specified message. Processing is continued in relation to the message type.
    If the calling program handles the exception, both statements return control to the program. No values are transferred. The MESSAGE..... RAISING statement does not display a message. Instead, it fills the system fields sy-msgid, sy-msgty, sy-msgno , and SY-MSGV1 to SY-MSGV4.
    Source Code of READ_SPFLI_INTO_TABLE
    The entire source code of READ_SPFLI_INTO_TABLE looks like this:
    FUNCTION read_spfli_into_table.
    ""Local Interface:
    *" IMPORTING
    *" VALUE(ID) LIKE SPFLI-CARRID DEFAULT 'LH '
    *" EXPORTING
    *" VALUE(ITAB) TYPE SPFLI_TAB
    *" EXCEPTIONS
    *" NOT_FOUND
    SELECT * FROM spfli INTO TABLE itab WHERE carrid = id.
    IF sy-subrc NE 0.
    MESSAGE e007(at) RAISING not_found.
    ENDIF.
    ENDFUNCTION.
    The function module reads all of the data from the database table SPFLI where the key field CARRID is equal to the import parameter ID and places the entries that it finds into the internal table spfli_tab. If it cannot find any entries, the exception NOT_FOUND is triggered with MESSAGE ... RAISING. Otherwise, the table is passed to the caller as an exporting parameter.
    Calling READ_SPFLI_INTO_TABLE
    The following program calls the function module READ_SPFLI_INTO_TABLE:
    REPORT demo_mod_tech_fb_read_spfli.
    PARAMETERS carrier TYPE s_carr_id.
    DATA: jtab TYPE spfli_tab,
    wa LIKE LINE OF jtab.
    CALL FUNCTION 'READ_SPFLI_INTO_TABLE'
    EXPORTING
    id = carrier
    IMPORTING
    itab = jtab
    EXCEPTIONS
    not_found = 1
    OTHERS = 2.
    CASE sy-subrc.
    WHEN 1.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno.
    WHEN 2.
    MESSAGE e702(at).
    ENDCASE.
    LOOP AT jtab INTO wa.
    WRITE: / wa-carrid, wa-connid, wa-cityfrom, wa-cityto.
    ENDLOOP.
    The actual parameters carrier and jtab have the same data types as their corresponding interface parameters in the function module. The exception NOT_FOUND is handled in the program. It displays the same message that the function module would have displayed had it handled the error.
    Or
    just have to decide what exceptions u want and under what conditions.
    then declarethese exeptions under the exceptions tab.
    in the source code of ur function module.
    if
    like this u can code .
    now when u call the function module in tme mainprogram.
    if some error occurs and u have declared a exception for this then it will set sy-subrc = value u give inthe call of this fm.
    in the fm u can program these sy-subrc values and trigger the code for ur exception.
    Please reward if useful
    Regards,
    Ravi
    Edited by: Ravikanth Alapati on Mar 27, 2008 9:36 AM

  • Unable to resolve the exception  READ_REPORT_LINE_TOO_LONG in Abap program.

    Hi,
      I am getting the exception READ_REPORT_LINE_TOO_LONG in my abap program.Given below is the full analysis of the exception and then the program code :-
    Error Analysis :-
      An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_READ_SRC_LINE_TOO_LONG', was
      not caught in
    procedure "K_KKB_FIELDCAT_MERGE" "(FUNCTION)", nor was it propagated by a
      RAISING clause.
    Since the caller of the procedure could not have anticipated that the
    exception would occur, the current program is terminated.
    The reason for the exception is:
    There was an attempt to read program "ZANI_TEST_INTERACTIVE_ALV" from the
      database.
    The READ REPORT statement allows you to copy a program text into an
    internal table. The occupied line length in the program text must not
    exceed the width of the internal table.
    The internal table "\FUNCTION=K_KKB_FIELDCAT_MERGE\DATA=L_ABAP_SOURCE[]" is 72
      characters wide. The program line is
    91 characters wide.
    Program Code :-
    *& Report  ZANI_TEST_INTERACTIVE_ALV
    REPORT  ZANI_TEST_INTERACTIVE_ALV.
    TABLES: LFA1.
    TYPE-POOLS: slis.
    DATA: it_lfa1 TYPE TABLE OF lfa1,
          wa_lfa1 TYPE lfa1,
          it_fieldcat TYPE slis_t_fieldcat_alv.
    SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE input.
      SELECT-OPTIONS: acc_no FOR LFA1-LIFNR.
    SELECTION-SCREEN END OF BLOCK input.
    START-OF-SELECTION.
      IF NOT acc_no IS INITIAL.
        SELECT * FROM LFA1
          INTO CORRESPONDING FIELDS OF TABLE it_lfa1
          WHERE LIFNR IN acc_no.
      ELSE.
        SELECT * FROM LFA1
          INTO CORRESPONDING FIELDS OF TABLE it_lfa1.
      ENDIF.
      PERFORM form_build_fieldcatalog USING 'IT_LFA1' CHANGING it_fieldcat.
      PERFORM form_display_alv USING it_lfa1 it_fieldcat.
    *&      Form  form_build_fieldcatalog
          text
         -->P_0058   text
         <--P_IT_FIELDCAT  text
    form form_build_fieldcatalog  using    p_it_tabname TYPE slis_tabname
                                  changing p_it_fieldcat TYPE slis_t_fieldcat_alv.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME               = sy-repid
          I_INTERNAL_TABNAME           = p_it_tabname
        I_STRUCTURE_NAME             =
        I_CLIENT_NEVER_DISPLAY       = 'X'
          I_INCLNAME                   = sy-repid
        I_BYPASSING_BUFFER           =
        I_BUFFER_ACTIVE              =
        CHANGING
          ct_fieldcat                  = p_it_fieldcat
        EXCEPTIONS
          INCONSISTENT_INTERFACE       = 1
          PROGRAM_ERROR                = 2
          OTHERS                       = 3
      IF sy-subrc <> 0.
         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    endform.                    " form_build_fieldcatalog
    *&      Form  form_display_alv
          text
         -->P_IT_LFA1  text
    form form_display_alv using p_it_lfa1 LIKE it_lfa1  p_it_fieldcat TYPE slis_t_fieldcat_alv.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
        I_INTERFACE_CHECK                 = ' '
        I_BYPASSING_BUFFER                = ' '
        I_BUFFER_ACTIVE                   = ' '
          I_CALLBACK_PROGRAM                = sy-repid
        I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
        I_CALLBACK_TOP_OF_PAGE            = ' '
        I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
        I_CALLBACK_HTML_END_OF_LIST       = ' '
        I_STRUCTURE_NAME                  =
        I_BACKGROUND_ID                   = ' '
        I_GRID_TITLE                      =
        I_GRID_SETTINGS                   =
        IS_LAYOUT                         =
          IT_FIELDCAT                       = P_it_fieldcat
        IT_EXCLUDING                      =
        IT_SPECIAL_GROUPS                 =
        IT_SORT                           =
        IT_FILTER                         =
        IS_SEL_HIDE                       =
        I_DEFAULT                         = 'X'
        I_SAVE                            = ' '
        IS_VARIANT                        =
        IT_EVENTS                         =
        IT_EVENT_EXIT                     =
        IS_PRINT                          =
        IS_REPREP_ID                      =
        I_SCREEN_START_COLUMN             = 0
        I_SCREEN_START_LINE               = 0
        I_SCREEN_END_COLUMN               = 0
        I_SCREEN_END_LINE                 = 0
        I_HTML_HEIGHT_TOP                 = 0
        I_HTML_HEIGHT_END                 = 0
        IT_ALV_GRAPHICS                   =
        IT_HYPERLINK                      =
        IT_ADD_FIELDCAT                   =
        IT_EXCEPT_QINFO                   =
        IR_SALV_FULLSCREEN_ADAPTER        =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER           =
        ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = p_it_lfa1
        EXCEPTIONS
          PROGRAM_ERROR                     = 1
          OTHERS                            = 2
      IF sy-subrc <> 0.
         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    endform.                    " form_display_alv
    Please suggest a solution for this problem.. Thanks in advance.

    hi,
    it is getting because of fieldcat hear ur internal table is having all fields in lfa1, lfa1 is having more fileds alv cont display that much fields at a time . for that u are getting that messgae .  u can solve this problem by  filling fieldcat table manuvally insted of by FM 'fieldcat_merge'.  fill filedcat table some fields which are need to display by manuvally.
    thanq,
    rajesh.k

Maybe you are looking for