References when extending class

I have a general question about extending a class.
If I have
public class B extends A
does Java create a reference to A and B?
Imagine I call a method of A with super from a method of B, this method is not static, so I must have a reference, I think.
Thanks Caroline

If a class B is a subclass of A, the class A is instantiated when B is instantiated.
class A{
  A(){;}// default constructor of A
class B extends A{ // default constructor of B
  B(){
      super();// A is instantiated
}(The reference to B already refers to A.)

Similar Messages

  • NoMatchingActionMethodException error when extending class

    I have a base class (BaseProcess) that extends the PageFlowController. This class has an instance of a form:
    ,FSFormBean. I also have an action method that uses this form:
    * @jpf:action
    * @jpf:forward name="success" path="../hub/HubController.jpf"
    public Forward submitNext(FSFormBean form){
    return new Forward("success");
    When I extend this class
    public class TestController extends BaseProcess
    and a JSP calls the action "submitNext", I get the following error:
    No Matching Action Method Exception. I noticed that the form (FSFormBean) is empty when this is called from the parents class. Can anyone tell me why? Is it because of the notations? There are several action methods that are used throughout my class and I trying to simply my code, how can I make this to work?
    Thanks,
    Marcelo

    Check the build directory - do a clean build - or delete following folder in your webapp directory
    build/netui/weboutput/_pageflow

  • Problem occuring when extending classes coming from 2 signed JAR

    Hi everyone,
    I have 2 signed jar called "base_signed.jar" and "extended_signed.jar" using keytool with a testing certificate generated at runtime. All goes well because with both signed JARs I can use the URLClassLoader without any java.security.AccessControlException exception.
    But the first JAR contains abstract class B, the latter JAR contains a concrete class A.
    The problem occurs when I try to instantiate some class A coming from "extended_signed.jar" using Class.forName("blablaclassA").newInstance() and occurs only if this class A extends some other abstract class B contained inside "base_signed.jar" .
    Pratically if the class A is casted as its common JVM ancestor of B (JInternalFrame) all goes well, otherwise if I try to cast A using its direct ancestor B, I receive the following exception:
    network: Connessione a http://www.orion.lan/~antares/it/weev/wipidea/plugins/MeteoradarArpavPlugin$7.class con proxy=DIRECT
    Exception in thread "AWT-EventQueue-35" java.lang.ClassCastException: it.weev.wipidea.plugins.MeteoradarArpavPlugin cannot be cast to it.weev.wipidea.base.AWipideaPlugin
         at it.weev.wipidea.base.PluginLoader.loadNetworkPlugin(Unknown Source)
         at it.weev.wipidea.applet.WipideaApplet.loadPlugin(Unknown Source)
         at it.weev.wipidea.applet.WipideaApplet$1.actionPerformed(Unknown Source)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    network: Voce cache non trovata [url: http://www.orion.lan/~antares/it/weev/wipidea/base/PluginLoader.class, versione: null]
    network: Connessione a http://www.orion.lan/~antares/it/weev/wipidea/base/PluginLoader.class con proxy=DIRECT
    network: Voce cache non trovata [url: http://www.orion.lan/~antares/it/weev/wipidea/base/network-classpath.class, versione: null]
    ---The strange thing is that if I don't sign both JARs the class A is casted on B without any exception, could for security reason like hash or other? Ideally I need all JAR signed only because I plan to load classes from all over the net, but seems that URLClassLoader throws an AccessControlException when called.
    Anyway just now I solve all using only the common JVM ancestor of A and B, but what could be the final solution?
    Thanks, bye.

    Hi Sean,
    The file in question has been signed which causes issues in both OSB directly and in Eclipse when we do an import into that tool first.Can you let us know what issues you faced? Any errors? If yes, please post the same here.
    Regards,
    Anuj
    Edited by: Anuj Dwivedi on Feb 23, 2011 9:10 PM

  • When extending class do constructors get implemented as well

    Say i need to call a list as an object and it was an extension of another list. Would the constructor be the same but with the extended list name??
    For example:
    First class:
    public class ListR
            //variables
         public ListModelR()
              trackCount = 0;
              firstTrack = null;
              lastTrack = null;
         }///rest of code...
    Would the class that extended this hav a constructor of its class name or would i have to reference ListModelR?
    Thanks James

    You cant have a constructor that is different from your classes name.
    class A
         public A()
              int a = 5;
    class B
         public B()
              super(); //executes the super class's default constructor
    }

  • [svn:osmf:] 11139: Extending class with a 'processLoadingState' stub, invoked when load state is set to LOADING.

    Revision: 11139
    Author:   [email protected]
    Date:     2009-10-26 03:02:38 -0700 (Mon, 26 Oct 2009)
    Log Message:
    Extending class with a 'processLoadingState' stub, invoked when load state is set to LOADING.
    Modified Paths:
        osmf/trunk/framework/MediaFramework/org/osmf/media/LoadableMediaElement.as

    Strobe was used to verify that the problem was not with my OSMF implementation. Since the results were the same, I am more supsicious of OSMF itself or the underlying AIR framework than the player implementation. Either way, the information I've seen says that progressive download of h.264 video is supported on mobile devices with AIR. It would appear that this is not true in all cases.
    The issue has not been observed on not occur on the desktop. It only occurs with StageVideo enabled playback with autoplay on.
    In the actual product the videos play one at a time. Once the user has finished with a video, the player clears the references to the media. These are OSMF calls; the media assigned to the player is nulled. If this is not sufficient for garbage collection, then I am at a loss as to how to proceed. My test uses four videos that are roughly 1 MB. If there is a memory use problem, then it would appear something is broken in AIR or OSMF.
    I want to be sure I report this correctly. The code involved is more than a snippet, it's a media player designed to be embedded in an app. Do I need to include the complete implementation or will a description be sufficient?

  • Reference extending class name

    I have a base class that instantiates a Logger object via: Logger.getLogger(this.getClass().getName());
    When a class extends the base class the Logger still maintains the name of the base class. How do I initiate the Logger, in the base class, with the name of the extending class? Or is that not possible without the extending class passing its name to some sort of instantiation function?
    Thanks,
    jpbarto

    When a class extends the base class the Logger still maintains the name of the base class.I'm surprised to hear that, as this.getClass() will return the object's class, not the reference type's. Instead of this.getClass(), you can call Logger.getLogger(TheClassYouWantToUse.class.getName());

  • 12.4 beta: private copy constructor in base class required to be called from temporary reference when -g option used

    Hi,
    We've got an abstract base class (StringBase) which various types of strings inherit from. The copy constructor for this base class is private, since we don't want to allow copying when this class shouldn't be directly instantiated. A number of our methods take specify the base class as a reference, but take a derived class temporary as a default argument (see code appended).
    This worked fine in 12.3, but in 12.4 beta, this now says:
       Error: StringBase::StringBase(const StringBase&) is not accessible from __dflt_argA().
    This works fine in clang and gcc, and indeed, this GNU document says it was a bug which was fixed in gcc 4.3.0:
        Copy constructor access check while initializing a reference
    which references http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#391
    It only appears to error when the "-g" option is used, however, which doesn't seem right, and compiles fine if the "-g" option is removed, which makes me think it's a bug. Presumably the optimizer is eliding the copy when not using -g, but it's left in for debug mode, causing the compile error?
    Many thanks,
    Jonathan.
    $ clang++ -std=c++11 defaultarg.cpp
    $ g++ -std=c++11 defaultarg.cpp
    $ /opt/SolarisStudio12.4-beta_mar14-solaris-x86/bin/CC -c defaultarg.cpp
    $ /opt/SolarisStudio12.4-beta_mar14-solaris-x86/bin/CC -g -c defaultarg.cpp
    "defaultarg.cpp", line 6: Error: StringBase::StringBase(const StringBase&) is not accessible from __dflt_argA().
    1 Error(s) detected.
    $ cat defaultarg.cpp
    #include "stringbase.h"
    #include "conststring.h"
    static const ConstString S_DEFAULT("default value");
    void SomeMethod( const StringBase& str = S_DEFAULT )
       (void) str;
    int main( void )
       SomeMethod();
    $ cat stringbase.h
    #ifndef STRINGBASE_H
    #define STRINGBASE_H
    class StringBase
    protected:
       StringBase() {}
    private:
       StringBase( const StringBase& );
    #endif
    $ cat conststring.h
    #ifndef CONSTSTRING_H
    #define CONSTSTRING_H
    #include "stringbase.h"
    class ConstString : public StringBase
    public:
       ConstString() {}
       ConstString( const char* ) {}
       ConstString( const ConstString& );
    #endif

    Thanks for reporting the problem!
    This looks like a compiler bug, I think an artifact of creating a helper function for the debugger for the default argument.
    I have filed bug 18505648 for you.

  • When we extends class then what comes default

    class base
    void one()throws IOException
    class derived extends base
         void one()
    when derived class override the function of one of base class then why it not give errror ?

    Oh, is that what you're asking--why the child class doesn't have to declare that it throws the exception? If that's what you're asking...
    The child has to honor its parent's contracts. When the parent's method declares throws IOException, it's not promising that it does throw that exception. Rather, it is promising that it won't throw any exception except that one (and unchecked exceptions--RuntimeException, Error, and their descendants).
    Since the parent promises not to throw any checked exception other than IOException, the child must also not throw any other checked exception. For instance, the child can't throw SQLException. However the child is free to not throw the exception--that doesn't violate the contract, because the parent isn't promising to throw that exception.

  • 'My Application Page' is not allowed here because it does not extend class 'System.Web.UI.Page'

    I have a custom SharePoint 2010 solution that includes an aspx page. The aspx page in is in the /layouts folder within the solution and I created it by just adding an application page to the solution. I am trying to create a parent-child relationship between
    two different lists in SharePoint. From the parent I have a custom button on the ribbon that creates a child item with the ID of the parent stamped on it.
    The page is just a processing page that forwards on parameters from the parent to the new child item. (i.e. the ID value)
    The code generated when I add the aspx page is below:
    <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
    <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <%@ Import Namespace="Microsoft.SharePoint" %>
    <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="processingpage.aspx.cs" Inherits="MY.Solution.Layouts.MY.Solution.processingpage" MasterPageFile="~/_layouts/application.master" %>
    <asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
    </asp:Content>
    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    </asp:Content>
    <asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server"> Processing Page </asp:Content>
    <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" > Processing Page </asp:Content>
    The code behind is as follows:
    using System;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Administration;
    using Microsoft.SharePoint.WebControls;
    using Microsoft.SharePoint.Utilities;
    using System.Reflection;
    namespace MY.Solution.Layouts.MY.Solution
    public partial class processingpage : LayoutsPageBase
    protected void Page_Load(object sender, EventArgs e)
    try
    //Get a reference to the SPWeb object
    SPWeb oWeb = SPContext.Current.Web;
    //Use the Parameters That Are Passed In
    SPList thisList = oWeb.Lists[new Guid(Request.QueryString["List"])];
    SPListItem thisItem = thisList.GetItemById(int.Parse(Request.QueryString["ID"]));
    sContentType = thisItem["ContentType"].ToString();
    sContentTypeID = thisItem.ContentTypeId.ToString();
    if (sContentType == "Some Content Type")
    sContentTypeID = "";
    sAIID = thisItem["ID"].ToString();
    //Redirect to newform.aspx with the Appropriate parameters.
    Context.Response.Redirect(oWeb.Url + "/Lists/Blist" + "/NewForm.aspx?AIID=" + sAIAuditID.ToString() + "&ContentTypeId=" + sContentTypeID + "&ParentItemID" + Context.Request["ID"]);
    else if (sContentType == "Some Content Type")
    sContentTypeID = "";
    sAIID = thisItem["AIID"].ToString();
    //Redirect to newform.aspx with the Appropriate parameters.
    Context.Response.Redirect(oWeb.Url + "/Lists/AList" + "/NewForm.aspx?AIID=" + sAIID.ToString() + "&ContentTypeId=" + sContentTypeID + "&ParentItemID" + Context.Request["ID"]);
    else if (sContentType == "Some Content Type")
    sContentTypeID = "";
    sAICID = thisItem["AICID"].ToString();
    //Redirect to newform.aspx with the Appropriate parameters.
    Context.Response.Redirect(oWeb.Url + "/Lists/CList" + "/NewForm.aspx?AICID=" + sAICID.ToString() + "&ContentTypeId=" + sContentTypeID + "&ParentItemID" + Context.Request["ID"]);
    else
    LoggingService.LogError("MY.Solution - Processing Page", "No Applicable Content Type Found.");
    catch (Exception ex)
    LoggingService.LogError("My.Solution - Processing Page", ex.Message);
    finally
    //DO SOME FINAL THINGS HERE WHEN REQUIRED.
    In the page I need to use Request.QueryString to get the values from the URL. But when I deploy the solution and load the page I get the error:
    'MY.Solution.Layouts.MY.Solution.processingpage' is not allowed here because it does not extend class 'System.Web.UI.Page'.
    When I change the line:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="processingpage.aspx.cs" Inherits="MY.Solution.Layouts.MY.Solution.processingpage" MasterPageFile="~/_layouts/application.master" %>
    to inherit as follows:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="processingpage.aspx.cs" Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" MasterPageFile="~/_layouts/application.master" %>
    it does not work either.
    If I change it to inherit like below:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="processingpage.aspx.cs" Inherits="System.Web.UI.Page" MasterPageFile="~/_layouts/application.master" %>
    it also does not work.
    What does this error actually mean?  And why doesn't the default code generated by Visual Studio work?

    @NadeemYousuf I have tried this too and it didn't work.  
    What does the error even mean?  And why does the error appear with default Visual Studio code?  In my example I have just added a basic application page with no other code in it and it still does not work.

  • Extending class gives unexpected behaviour

    Hello forumusers
    I am making my own table model by extending DefaultTableModel. When calling insertRow(int, Object[]) in my own code, super.insertRow calls insertRow(int, Vector) in my code instead of in the superclass. I didn't think that the superclass would hold any reference to my class and when the superclass calls insertRow(int, Vector) it would be a method in the DefaultTableModel class.
    Please see the code below. Can anyone explain this behaviour to me?
    import java.awt.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    class TableModelTest {
      public TableModelTest() {
        BundleTableModel m = new BundleTableModel(
            new String[][]{{"aaa", "aab", "aba"}, {"ccc", "cca", "cac"}},
            new String [] {"header0", "header1", "header2"});
        m.insertRow(1, new String[]{"BBB", "BBA", "BAB"});
      public static void main(String[] args) {
        TableModelTest dut = new TableModelTest();
      public class BundleTableModel extends DefaultTableModel {
        public BundleTableModel(String[][] dataIds, String[] columnNameIds) {
          super();
          setColumnCount(columnNameIds.length);
          setRowCount(dataIds.length);
          // My own code comes here
        public void insertRow(int row, Object[] rowData) {
          System.out.println("insertRow(int, Object[] called");
          super.insertRow(row, rowData);
          // My own code comes here
        public void insertRow(int row, Vector rowData) {
          System.out.println("insertRow(int, Vector) called");
          super.insertRow(row, rowData);
          // My own code comes here
    }

    Lesson learned.
    ejp was correct from the beginning.
    JLS section 8.4.10.6 'Large Example of Overriding' explains:
    "The critical point about overriding in this example is that the method putstr, which is declared in class BufferOutput, invokes the putchar method defined by the *current object this*, which is not necessarily the putchar method declared in class BufferOutput.
    This allows a subclass of BufferOutput to change the behavior of the putstr method without redefining it."
    Thanks for all comments.

  • JDeveloper error when extending VO

    I have had problems yesterday and today attempting to create an extending VO with the "mandated" RowImpl class. When I click on the Finish button in the wizard, I get the following error:
    Error in updating the java files for component: AbcMyReqsVO
    Exception: java.lang.NullPointerException
    Exception stack trace:
    java.lang.NullPointerException
         at oracle.jbo.dt.objects.JboAttribute.getSuperAttr(JboAttribute.java:1147)
         at oracle.jbo.dt.objects.JboView.doGenerateAttributeGetCode(JboView.java:2375)
         at oracle.jbo.dt.objects.JboView.generateCalculatedAttributeGetBody(JboView.java:2577)
         at oracle.jbo.dt.objects.JboView.generateAttributeMethods(JboView.java:2673)
         at oracle.jbo.dt.objects.JboView.createViewRowFile(JboView.java:1909)
         at oracle.jbo.dt.objects.JboView.saveToJavaFile(JboView.java:1813)
         at oracle.jbo.dt.objects.JboBaseObject.saveObject(JboBaseObject.java:2084)
         at oracle.jbo.dt.objects.JboView.saveObject(JboView.java:1719)
         at oracle.jbo.dt.ui.main.DtuSaveThread.doSaveObject(DtuUtil.java:1538)
         at oracle.jbo.dt.ui.main.DtuSaveThread.run(DtuUtil.java:1528)
    If I uncheck the "Generate Accessors" checkbox (as the stack talks about doGenerateAttributeGetCode), the error does not occur.
    Can anyone explain this and provide an alternative workaround that allows me to generate by accessor methods?

    The problem is in the AllReqsVO.xml. All of the view attributes have the following:
    <DesignTime>
    <Attr Name="_OverrideAttr" Value="true" />
    </DesignTime>
    This VO doesn’t extend another VO, therefore the _OverrideAttr shouldn’t be in the ViewAttribute definitions. If you manually edit the AllReqsVO.xml file and remove each of those references, then you will be able to Generate Accessors without getting the nullpointerexception. This will also fix the problem with the other VOs that extend this one, like MyReqsGlanceVO. You don’t have to change the MyReqsGlanceVO.xml, just fix AllReqsVO.xml and then you will be able to Generate Accessors when extending MyReqsGlanceVO.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Interface extends class

    Anyone think it'd be useful to allow interfaces to extend classes? I'd expect such a construct to guarantee that concrete implementers of said interface descend from the 'extended' class. Maybe it's just bad design but I often find myself doing a lot of needless casting due to this feature's non-existence. Has this been discussed elsewhere? Is it a JSR-worthy idea or just another needless complication?

    my interface to HAVE A Component, instead of BEING A Component.Providing a method that returns the desired class is a good workaround. As the good doctor concedes, though, there is no guarantee that implementers will return 'this'. Actually, there's no assurance that the method will even consistently return the same reference. That leaves just one more uncertainty to deal with when you're debugging. One more opportunity for third parties to misuse your API.
    The objections to class/interface hybrids sound pretty similar to the arguments against multiple inheritance. "If you're using it, your design is probably flawed," they say. Also, "there's no functionality that cannot be achieved without this." I'd argue that some situation probably exists in which these features can be used to achieve more elegant solutions. Nonetheless, I can't confidently claim that such fringe cases merit a change to the language specification. The added complexity might outweigh the rare benefits. I guess that's the consensus here.
    But the implementors of the interface are free to extend those subclasses.
    What's your goal in trying to restrict them to only extending certain classes?Clarity and type safety are my goals. Covariant return types don't really add anything either but the powers that be saw fit to include them in Java 5.

  • Error When Using Class :(

    Hey,
    Class:
    package
        import flash.display.MovieClip;
        import flash.events.Event;
        public class Main extends MovieClip
            public var enemyA:Array = [];
            public var birdA:Array = [];
            public var rowNum:int = 2;
            private var gap:int = 100;
            private var obj_no = 2;
            public var enemy1:mychar = new mychar();
            public var TheBird:BirdChar = new BirdChar();
            public function Main()
                // constructor code
                createEnemyF();
                createBirdF();
                this.addEventListener(Event.ENTER_FRAME,loopF);
            public function createEnemyF()
                for (var i:int = 0; i < rowNum; i++)
                    for (var j:int = 0; j < obj_no; j++)
                        enemy1.x = Math.random() * stage.stageWidth - enemy1.width;
                        enemy1.y = - i * (gap + enemy1.height) - 30.65;
                        enemyA.push(enemy1);
                        addChild(enemy1);
            public function createBirdF() {
                TheBird.x = 270.95;
                TheBird.y = 350.95;
                birdA.push(TheBird);
                addChild(TheBird);
            public function loopF(event:Event) {
                updateEnemyPositionsF();
                updateBirdPositionsF();
                hitTestF();
            public function updateEnemyPositionsF() {
                enemy1.y +=  2;
            public function updateBirdPositionsF() {
                TheBird.x = mouseX;
            public function hitTestF() {
                if(TheBird.hitTestObject(enemy1))
                    gotoAndPlay(5);
                    trace('The Bird Hit Enemy 1');
    This conflicts and causes this error:
    1046: Type was not found or was not a compile-time constant: MouseEvent
    ^ ^ Code repeats to all of my event listeners
    Thanks for your time.

    Thanks, i thought it might be this because of previous problems but i seen i already had : import flash.events.Event; so i thought that would be OK!
    Second Error:
    1180: Call to an undefined method Timer.
    I think this is the same sort of thing but what to import to fix this?
    So far these are my imports:
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.events.TimerEvent;
    Thanks for helping.
    Date: Thu, 3 Nov 2011 05:36:22 -0600
    From: [email protected]
    To: [email protected]
    Subject: Error When Using Class
        Re: Error When Using Class
        created by markerline in Flash Pro - General - View the full discussion
    Looks like you imported events.Event but not events.MouseEvent (or some similar syntax) basically you must import MouseEvents separately from other Events.
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/4005227#4005227
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/4005227#4005227. In the Actions box on the right, click the Stop Email Notifications link.
         Start a new discussion in Flash Pro - General by email or at Adobe Forums
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • NoClassDefFoundError extending class in separate JAR

    I have a class Foo which gets called from my servlet (extends HttpServlet) class. Both Foo and the servlet class are located in WEB-INF/classes and are deployed as part of the war file. Class Foo extends class Bar, which is a different .jar file located in the /WEB-INF/lib directory of the webapp. When I attempt to create an instance of Foo, I get the following exception:
    java.lang.NoClassDefFoundError: /general/client/common/beans/Bar
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1267)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at server.DBServlet.createFoo(DBServlet.java:236)
         at server.DBServlet.processInput(DBServlet.java:333)
         at server.DBServlet.doGet(DBServlet.java:154)
         at server.DBServlet.doPost(DBServlet.java:205)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)
    I'm running this on Windows, and found if I added the classpath the the jar file where the Bar class is located, that it worked fine. But my expectation is that the jar file should have been found because it is in the /WEB-INF/lib dir. There is a line the Tomcat docs that says:
    "Last, any JAR containing servlet API classes will be ignored by the classloader. All other class loaders in Tomcat 5 follow the usual delegation pattern."
    So maybe I need to do something special to load the Bar class, or there's something strange about the way the classes and jars are being loaded that I don't fully understand. I was able to instantiate the Bar class directly from w/in my servlet class, I just can't create an instance of the Foo class that is in /WEB-INF/classes along with the servlet class. So I'm not convinced that the Bar class or associated jar file isn't being loaded.
    I don't want to have to set the classpath explicitly, so I'm looking for advice on why I'm getting this exception and how best to dynamically load the classes I need.
    Thanks.
    ab.

    Thanks for hanging in there so far. Here's the specifics if you want to try to re-create this.
    I have a webapp, which contains the class DBServlet:
    package com.hm.dhca.server;
    public class DBServlet extends HttpServlet
    // Stuff
         public void processInput()
              Foo foo = new Foo();
    The webapp also contains the class Foo:
    package com.hm.dhca.common;
    import com.general.client.common.beans.Bar;
    public class Foo extends Bar
         public Foo()
              super();
              System.out.println("Foo");
    Both of the classes are located in webapps\DHCA\WEB-INF\classes...
    The Bar class is in a separate jar called HMJCommon.jar in the webapps\DHCA\WEB-INF\lib dir.
    Class Bar looks like this:
    package com.general.client.common.beans;
    public class Bar
         public Bar()
              System.out.println("Bar");
    DBServlet creates an instance of Foo as:      
    Foo foo = new Foo();
    Which throws the Exception:
    java.lang.NoClassDefFoundError: com/general/client/common/beans/Bar
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1267)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at com.hm.dhca.server.DBServlet.processInput(DBServlet.java:236)
         at com.hm.dhca.server.DBServlet.doGet(DBServlet.java:154)
         at com.hm.dhca.server.DBServlet.doPost(DBServlet.java:205)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:595)
    Clues:
    1. All three classes exist in the locations specified above - I have checked this manually.
    2. Within DBServlet, I can create an instance of Bar. But I cannot create an instance of Foo without the exception.
    3. If I move the Foo class from package com.hm.dhca.common to package com.hm.dhca.server (same package as DBSerlvet), everything works fine.
    4. If I modify Tomcat's classpath to include the HMJCommon.jar, it works fine (as previously discussed).
    Theory:
    I have a vague theory that what is happening is that two different webappclassloaders are loading the Foo and Bar classes, for whatever reason. As a result, they can't see each other, because neither is up the hierarchy tree from the other.
    This does not explain how I can instantiate Bar from DBServlet, but not Foo.
    Hope this helps. I think I've corrected previous mistake w/ removing too much from package naming. I'm resorting to the workaround in clue #3 for the moment. But it's not the correct solution, and it's showing that I don't really understand what's going on here.

  • Extending classes at runtime

    Hi,
    Is there a way to extend a class at runtime? What I'd like to do is the following:
    I want to have a tabbed pane component that does not stretch its tabs when there are several lines of tabs. The stretching of the tabs is implemented in the UI component of JTabbedPane - and this depends on the look & feel - it can be MetalTabbedPaneUI, WindowsTabbedPaneUI, etc.
    I want to extend the currently-used UI class (which is only known at runtime) with my own class that overrides a single method.
    I can extend all those that I currently know and use some mapping from the currently used class to the one extending it - but tomorrow someone may install a new look & feel which uses a different UI component, for which I will not have an extending class.
    Therefore, I'd like to find the currently used UI component class and extend it at runtime.
    Thanks,
    Shlomy

    Shlomy-Reinstein wrote:
    Thanks. It's a good solution, but it requires me to write wrappers for all the public methods of BasicTabbedPaneUI, doesn't it? All I'm interested in is to override a single method. If there is no easier way, that's okay, but since there are scripting languages that interface with Java (e.g. BeanShell), in which I can extend classes, I thought there should be an easy way to extend a class at runtime.You don't write code that is "easy". You write code that is correct.
    If there are several different ways to write code which are all correct then you use other criteria to determine the best one. The first criteria is how much maintenance each would require. And how complex each solution would be. Complexity also impacts maintenance.
    And nothing I have seen in this thread would suggest that anything but a wrapper is a correct solution. Certainly unless you can demonstrate that it would not work then I doubt anything would be better.
    And using beanshell just so you don't have to type is definitely not the correct solution.

Maybe you are looking for

  • Search panel in Acrobat 9 Mac disappeared to unusable vertical sliver

    Running Acrobat 9.3 on Snow Leopard, the Search Panel has become a tiny vertical sliver only just visible – see attachment. It is unusable. The drop down Window dialog shows the Search window as active. I cannot find out how to restore the Search pan

  • How do I import clips without the "Handles"?

    I'm trying to build a project from several different iMovie 5.0.2 projects. The problem is, after trimming the clips I need in one project, in attempting to import the individual clip to my new project, iMovie tries to import the ENTIRE project and n

  • Objective Setting and Appraisals: No BSP-Template found!

    I am implementing MSS and am getting an error under tab Employee Review for Objective Setting and Appraisals.  The error is: An error occurred: java.lang.Exception: Error in CFViewgroup.createListModel: No BSP-Template found! Any clues as to how to f

  • Correcting non-text photos when camera was in text mode?

    Hello, for capturing text the text scene mode for the camera is very handy. However, I did not realize that the Blackberry saves the mode for the next time and does not go back to the automatic scene mode when turned off. So I now have a whole set of

  • I can't download an app I have paid for, please help!

    Hey everyone, this morning I purchased Empire: Total War Gold Edition (13.1GB) for my macbook (late 2011). However, when I try to download the game, it says 'an error has occured' in red writing beside the install button. When I press the install but