What's up with the Sun Java coding convention

I thought Sun leading the Java development should also be a better example on the Java coding convention.
They do publish a coding convention guide, I believe. But looking at Java core library's source code, so long, coding convention! :(
Just looked at ArrayList.java source for the version 1.4.2. There are method names like RangeCheck(). Shouldn't a method start with lowercase? Shouldn't a method be verb first like checkRange() instead?
And there are statements like this all over the place:
if (foo)
bar();
shouldn't that be:
if (foo) {
bar();
man, I thought this golden version of the Java Foundation Library code should be almost perfect by this time now. :(
--

if (foo)
bar();
// I think the most important part of the if statement
is the condition for executing the following
statement(s).
// Using this style the condition is separated from
the code by white space which I find easier to read
// It's also easier to maintain as you don't have to
remember to add {} if you need to add additional
statements.I follow camickr's example. I think it's more readable. Whitespace is a good thing, IMO, and not used enough. Putting the brace on the next line down not only makes it easier to associate opening and closing braces visually but it sets the block of code off visually from the rest. Personally, I get a gestalt effect from that.
I don't worry about a byte here or there. It might sound like heresy, but Moore's Law makes memory and disk space cheaper and more plentiful all the time. I think maintainability and readability trumps being miserly about bytes in my thinking these days. ;)
Spare me the "inefficiency" lectures. I know - performance matters. The 80/20 rule says that byte won't be killer.
It's too bad that Sun doesn't follow their own conventions. Don't they do code review there?
Joshua Bloch didn't follow the standard? Too bad - he did a great job on the collections design. Maybe he delegated it to a younger coder and missed that during the code review. Yeah, that's it! ;)

Similar Messages

  • Does anyone have SSL working with the Sun Java System App Server PE?

    We have been having problems (to say the least) getting SSL to work with the Sun Java Application Server 8.1 Platform Edition.
    We have a signed certificate from VeriSign and have it imported correctly, but when you test it by going to https://localhost:8182/ (note that 8182 is the port set up for SSL) you get a warning mesage saying that the certificate cannot be verified. When you view the certificate you see that it is the one that got automatically generated for you by the app server and not the one we purchased from VeriSign.
    So, I was just wondering if anyone out there has gotten this to work and if so, what document did you follow to tell yoiu how it was done!
    THANK YOU!

    once apon a time i had a real problem with the same issue.. best of luck.. i forget now how to fix.. sorry.

  • Will weblogic 4.5 work with the Sun Java Servlet Development Kit Version 2.1?

              Will weblogic 4.5 work with the Sun Java Servlet Development Kit Version 2.1
              (JSDK 2.1). The reason I want this is we want our application servlets to
              use the new 2.1 redirection mechanism to redirect to JSP files.
              

    WL 4.5 supports JSP 1.0 (and, therefore Servlet 2.1).
              What I want to know is when will it support JSP 1.1 (and, therefore Servlet
              2.2)!
              Regards,
              Murali Krishna Devarakonda
              Cox News <[email protected]> wrote in message
              news:7rk40p$s00$[email protected]..
              >
              > Will weblogic 4.5 work with the Sun Java Servlet Development Kit Version
              2.1
              > (JSDK 2.1). The reason I want this is we want our application servlets to
              > use the new 2.1 redirection mechanism to redirect to JSP files.
              >
              >
              >
              >
              

  • Reminder: Online chat, June 14: What's New in the Sun Java Wireless Toolkit

    Got a question about the Sun Java Wireless Toolkit (formerly known at the J2ME Wireless Toolkit)? Want to learn what's new and cool in the Sun Java Wireless Toolkit?
    (One thing new is that the Sun Java Wireless Toolkit 2.3 beta has been recently released.) Then join this chat with Ariel Levin, lead engineer for the Toolkit, writer Jonathan Knudsen, who's written a lot about the Toolkit, and product marketing manager E-ming Saung. They'll answer your questions on Tuesday, June 14, at 9:00 A.M. PDT (12:00 noon EDT/16:00 UTC).
    To join the chat, go to http://java.sun.com/developer/community/chat/index.html on June 14 and click on the "Join" link for the session.

    How about a link to a document for those of us who (a) don't want to spend a whole hour on the issue (b) don't want to do it at that particular time (c) both?

  • What is wrong with the following Java servlet code that downloads files?

    Hi,
    I need urgent help.
    This is the issue. I have a JSP code that calls a Java servlet class. This class is used to download files from the JSP page. The following is the piece of code that does the file download.
    String pathOfFile = gsPath + "/" + gsFileName.substring(gsFileName.indexOf("~")+1);
    File F = new File(pathOfFile);
    res.setContentType("application/stream");
    res.setHeader("Content-Disposition", "attachment; filename=" +gsFileName.trim());
    This code works just fine with IE. However, when this is used with Netscape, the class name gets added to the original file name extension. For example, if the class name is 'FileRetriever' and the file being downloaded is originally named 'a.doc', the file gets a name of 'a.doc.FileRetriever' after download using Netscape or Mozilla.
    One way to solve this is by adding the appropriate file type in the MIME settings in browser preference. However, this not a permanent solution.
    Can somebody let me know the correct code to fix this issue?
    Thanks for your time.

    We loose control of the file name once we pass the original file name to the input stream. When our code instructs Netscape to write the file on the local disk using an output stream, that is when Netscape/Mozilla adds this additional extension to the original file. So, essentially, we do not know about this additional extension.
    Any ideas on how to resolve this?
    Thanks.

  • What is wrong with the idl code generated by packager.exe?

    Hello everybody,
    I am trying to figure out what is wrong with the idl code generated by packager.exe. In the evaluation for the bug posted at http://developer.java.sun.com/developer/bugParade/bugs/4964563.html it says that the IDispatch interface is not exposed correctly and thus early binding of java objects is not possible using the current activex bridge implementation.
    As I am no idl expert I have no idea what that means. However, I managed to dig out the idl code generated by packager.exe for the following example bean:
    package test;
    public class MyBean
         protected int value;
         public MyBean()
         public void setMyValue(int _value)
              value = _value;
         public int getMyValue()
              return value;
         public MyBean getSelfReference()
              return this;
    }The corresponding idl code generated by packager.exe is
    uuid(81B0BF63-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    library MyBean
    importlib("Stdole2.tlb");
    dispinterface MyBeanSource;
    dispinterface MyBeanDispatch;
    uuid(81B0BF64-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    dispinterface MyBeanSource {
    properties:
    methods:
    uuid(81B0BF65-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    dispinterface MyBeanDispatch {
    properties:
    [id(4097)]
    int myValue;
    methods:
    [id(32768)]
    VARIANT_BOOL equals(IDispatch* arg0);
    [id(32769)]
    IDispatch* getClass();
    [id(32770)]
    int getMyValue();
    [id(32771)]
    IDispatch* getSelfReference();
    [id(32772)]
    int hashCode();
    [id(32773)]
    void notify();
    [id(32774)]
    void notifyAll();
    [id(32775)]
    void setMyValue(int arg0);
    [id(32776)]
    BSTR toString();
    [id(32779)]
    VARIANT wait([optional] VARIANT var0, [optional] VARIANT var1);
    uuid(81B0BF62-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    coclass MyBean {
    [default, source] dispinterface MyBeanSource;
    [default] dispinterface MyBeanDispatch;
    };Does anyone know what is wrong with this code and maybe how to fix the idl code? Generating the dll should then be easy (I already tried several variations of the idl code but as my idl knowledge is limited it didn't really do what I wanted).

    Then the question is why it does work with visual controls (even if you set them to non-visible)?

  • Issue about Invoking a BPEL Process with the Generic Java API

    I Invoking a BPEL Process with the Generic Java API and apache axis or axis2
    it turn up a error as follow:
    org.apache.axis2.AxisFault: ORABPEL-08021
    Cannot find partner wsdl.
    parnterLink "BPELProcess1" is not found in process "BPELProcess1" (revision "v2008_11_17__38943").
    Please check the deployment descriptor of the process to find the correct partnerLink name.
         at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
         at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
         at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
         at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
         at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
         at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
         at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
         at wf.Test_axis2_callws.main(Test_axis2_callws.java:41)
    i can't solve it !
    what's problem ???
    anyone use java code to invoke bpel process successfully..can show me some example?
    thanks
    chan

    Hi,
    Check below link may help you solve your problem.
    http://www.activevos.com/cec/samples/content/sample-invoke/doc/index.html
    Regards

  • What's wrong with the code?

    public void run()
    try
    {     for(;;)
         mgr = (RTPManager)RTPManager.newInstance();
         mgr.addSessionListener(this);
         mgr.addReceiveStreamListener(this);
         try{  /*****port1 = port2 = 29261, which port is only used in here
         localAddr = new SessionAddress(InetAddress.getLocalHost(), port1);
         destAddr = new SessionAddress(ipAddr, port2);
         }catch(Exception e)
              System.out.println(e + " 4");
         try{
         mgr.initialize(localAddr);
         }catch(Exception e)
         System.out.println(e + " 5");
         //set buffer
         bc = (BufferControl)mgr.getControl("javax.media.control.BufferControl");
         if (bc != null)
         bc.setBufferLength(20);
         try{
              mgr.addTarget(destAddr);
         }catch(Exception e)
         System.out.println(e + " 2");
    catch(Exception e)
         System.out.println(e+ " 3");
    the error when i run the code is like that:
    javax.media.rtp.InvalidSessionAddressException: Can't open local data port: 29261
    5
    java.io.IOException: Address already in use: Cannot bind 2
    which means there is error in :
    mgr.initialize(localAddr);
    mgr.addTarget(destAddr);
    But i don't know what's wrong with the code,
    can any one help me?

    I do not find any problem using the same ports for local and destination address with several unicasts. My problems are others.
    But note that the error is even at constructing the localAddress, I mean before trying the destinationAddress. Thus the reason cannot be the former is already in use. In fact I think the later belongs to a remote hosts. Likely, it is trying to access the destinationAddress through the localAddress, but this has not been constructed properly.

  • What's wrong with the server?

    execute me ~what's wrong with the server? I can‘t use the command nohup any longer.Can somebody help me?
    root@shhis1new # nohup
    Segmentation Fault (core dumped)
    root@shhis1new # nohup ls
    Segmentation Fault (core dumped)
    root@shhis1new # nohup /opt/SUNWexplo/bin/explorer -w all &
    [1] 6871
    root@shhis1new #
    [1]+ Segmentation Fault (core dumped) nohup /opt/SUNWexplo/bin/explorer -w all
    root@shhis1new # uname -a
    SunOS shhis1new 5.9 Generic_122300-19 sun4u sparc SUNW,Netra-T12
    System Configuration: Sun Microsystems sun4u Sun Fire E2900
    System clock frequency: 150 MHZ
    Memory size: 49152 Megabytes
    Best Regards
    <email address removed by moderator>
    Edited by: 884082 on 2011-11-22 下午10:00

    Moderator Action:
    You email address has been removed from your post.
    You wouldn't want bad people to send you spam messages for the rest of your life, eh?
    Moderator Advice:
    If this is the same E2900 that you have mentioned in every one of your other forum posts, then it would seem you need to contact Technical Support and open a proper support request. These forums are NOT techsupport and that system seems so poorly configured that it needs deep analysis. Such investigation cannot be done by using an online forum.
    The immediate solution is to log on to the SC of that box and power it down, then boot it back up. At least it will be running after that.

  • The Sun Java Application Server 8.1 could not start anymore

    Very incredible I was working fine from may days with Stydio Creator 2
    but yesterday I run the project and it does not work anymore, please can you suggest something:
    The Sun Java Application Server 8.1 could not start.
    from the Output console:
    C:\Sun\Creator2\SunAppServer8\bin\asadmin.bat start-domain --domaindir C:\Sun\Creator2\SunAppServer8\domains\ creator
    Failed to start server localhost:4848
    Deployment error: Failed to start server localhost:4848. See the server log file for details.
    Exception=Deployment error: Failed to start server localhost:4848. See the server log file for details.
    Deployment error: Failed to start server localhost:4848. See the server log file for details.
    at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:198)
    at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:75)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    at org.apache.tools.ant.Task.perform(Task.java:364)
    at org.apache.tools.ant.Target.execute(Target.java:341)
    at org.apache.tools.ant.Target.performTasks(Target.java:369)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:234)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:242)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:125)
    Caused by: Failed to start server localhost:4848
    at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:152)
    ... 10 more
    and in the log file:
    [#|2006-02-24T11:49:51.296+0100|WARNING|sun-appserver-pe8.1_02|
    javax.enterprise.system.core|_ThreadID=25;|CORE5061: Exception :
    com.sun.appserv.server.ServerLifecycleException: [C4073]: A JMS destination limit was reached.
    Too many Subscribers/Receivers for Queue :
    temporary_destination://queue/192.168.0.159/3376/2 user=admin, broker=127.0.0.1:27676(2403)
         at com.sun.enterprise.jms.JmsProviderLifecycle.onTermination(JmsProviderLifecycle.java:476)
         at com.sun.enterprise.server.ApplicationServer.onTermination(ApplicationServer.java:454)
         at com.sun.enterprise.server.Shutdown.startShutdown(Shutdown.java:42)
         at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeShutdownEventListener(AdminEventMulticaster.java:1445)
         at com.sun.enterprise.admin.event.AdminEventMulticaster.handleShutdownEvent(AdminEventMulticaster.java:1434)
         at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:443)
         at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:139)
         at com.sun.enterprise.admin.server.core.channel.AdminChannelServer.sendNotification(AdminChannelServer.java:90)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
         at sun.rmi.transport.Transport$1.run(Transport.java:153)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
         at java.lang.Thread.run(Thread.java:595)
    thanks

    I just had the same problem this morning. I believe the app server starts and if you browser directly to your app you'd get it, but the connection between the appserver and the IDE is somehow lost. An easier solution than completely reinstalling for me was to delete the .Creator folder in my home directory (C;|Documents and Setting\<username>\.Creator) and restart Creator

  • The Sun Java System Application Server could not start

    Hello All,
    I downloaded the Java Pet Store example from sun's website and followed the instructions for installation. After successful installation, I tried to deploy the project and gave the following error
    C:\Documents and Settings\sina\My Documents\Projects\services\nbproject\build-impl.xml:194: Deployment error:
    The Sun Java System Application Server could not start.
    More information about the cause is in the Server log file.
    Possible reasons include:
    - IDE timeout: refresh the server node to see if it's running now.
    - Port conflicts. (use netstat -a to detect possible port numbers already used by the operating system.)
    - Incorrect server configuration (domain.xml to be corrected manually)
    - Corrupted Deployed Applications preventing the server to start.(This can be seen in the server.log file. In this case, domain.xml needs to be modified).
    - Invalid installation location.
    See the server log for details.
    BUILD FAILED (total time: 5 minutes 20 seconds)
    The link above points to the following line in the build-impl.xml file
    <nbdeploy debugmode="false" forceRedeploy="${forceRedeploy}" clientUrlPart="${client.urlPart}" clientModuleUri="${client.module.uri}"/>
    Can any one help whats wrong.An early response will be highly appreciated.
    Kind Regards.
    Hasnain Javed.

    Hi,
    Maybe you already got this fix but here is a suggestion, a snippet from the readme index,html of the petstore download
    # Start the Sun Java System Application Server and the JavaDB database. To do so, open a command prompt and change directory to <javaeesdk.home>/bin and issue the following commands:
    asadmin start-database
    asadmin start-domain
    # Change directory to <petstore.home> and enter the following commands
    ant setup
    ant run
    This will setup, build and deploy the petstore on the application server, and then launch the application homepage in your default browser.
    The "ant setup" that you run from <petstore.home> (petstore.home is the directory where petstore is installed or where you unzipped it) will populate the database wth data and setup the proper database tables etc that are used by the application.
    hth,
    Sean

  • Not able to start the Sun Java System Access Manager 7 Console

    Hi All,
    I have successfully installed the Sun Java System Portal Server 7 on RHEL 4.0.The problem I am facing is not able to start the Sun Java System Access Manager 7 Console while accessing the URL: http://fqdn:8080/amconsole
    As soon as I try to access this URL it gives me following Excepiton:::::::
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    com.iplanet.jato.NavigationException: Exception encountered during forward
    Root cause = [java.lang.NullPointerException]
         com.iplanet.jato.view.ViewBeanBase.forward(ViewBeanBase.java:386)
         com.iplanet.jato.view.ViewBeanBase.forwardTo(ViewBeanBase.java:267)
         com.iplanet.am.console.base.ConsoleServletBase.onUncaughtException(ConsoleServletBase.java:338)
         com.iplanet.jato.ApplicationServletBase.fireUncaughtException(ApplicationServletBase.java:1023)
         com.iplanet.jato.ApplicationServletBase.processRequest(ApplicationServletBase.java:469)
         com.iplanet.jato.ApplicationServletBase.doPost(ApplicationServletBase.java:324)
         com.iplanet.jato.ApplicationServletBase.doGet(ApplicationServletBase.java:294)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
         sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:585)
         org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
         java.security.AccessController.doPrivileged(Native Method)
         javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
         org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
         org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
    If anyone have any idea about the cause of this error,please let me know.All suggestions are welcome .
    Thanx and Regards,
    Chirag.

    Hi All,
    I am having exactly the same problem with the same stack trace. Has anybody have an idea how to fix this?
    I have downloaded the Java Identity Management Suite.(java_es-5-identsuite-ga-windows-x86.zip) The first time installation was fine and I was able to bring the Access Manager console. I was able to create users groups etc.
    However, when I uninstalled and installed it again, I got exactly the same error described in the thread. Running "amserver start" and "amserver restart" did not help. I did the installation one more time
    but again I got the same error.
    Thanks for the help.
    celikkan

  • How deploy the EJB in security on the Sun Java System Application Server 9?

    I hava deploied a simple Hello EJB Object on PE 9(Sun Java System Application Server Platform Edition 9). I can use this EJB object without user name an password On any client. See the following code section:
         public static void main(String[] args) {
              try{
                   Properties props = System.getProperties();
                   props.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
                   props.put(Context.PROVIDER_URL,"iiop://localhost:3700");
                   Context ctx = new InitialContext(props);
                   Hello h = (Hello) ctx.lookup("ejb/test/Hello");
                   System.out.println(h.sayHello());
              }catch(Exception e){
                   e.printStackTrace();
    Please tell me how deploy the EJB in security on the Sun Java System Application Server 9? So that, The client must set the user name and password when lookup the ejb object. Like the following:
    props.put(Context.SECURITY_PRINCIPAL,"admin")
    props.put(Context.SECURITY_CREDENTIALS,"1234");

    Guys,
    I too have the same issue. If anyone has an answer, please let me know.
    Is this GlassFish problem? or Prgram issue?
    Find below the source code
    package TransactionSecurity.bean;
    import javax.annotation.Resource;
    import javax.annotation.security.DeclareRoles;
    import javax.annotation.security.PermitAll;
    import javax.annotation.security.RolesAllowed;
    import javax.ejb.Remote;
    import javax.ejb.SessionContext;
    import javax.ejb.Stateless;
    import javax.ejb.TransactionAttribute;
    import javax.ejb.TransactionAttributeType;
    @Stateless
    @Remote(TSCalculator.class)
    @DeclareRoles({"student", "teacher"})
    public class TSCalculatorBean implements TSCalculator {
         private @Resource SessionContext ctx;
         @PermitAll
    //     @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
         public int add(int x, int y) {
              System.out.println("CalculatorBean.add  Caller Principal:" + ctx.getCallerPrincipal().getName());
              return x + y;
         @RolesAllowed( { "student" })
         public int subtract(int x, int y) {
              System.out.println("CalculatorBean.subtract  Caller Principal:" + ctx.getCallerPrincipal().getName());
              System.out.println("CalculatorBean.subtract  isCallerInRole:" + ctx.isCallerInRole("student"));
              return x - y;
         @RolesAllowed( { "teacher" })
         public int divide(int x, int y) {
              System.out.println("CalculatorBean.divide  Caller Principal:" + ctx.getCallerPrincipal().getName());
              System.out.println("CalculatorBean.divide  isCallerInRole:" + ctx.isCallerInRole("teacher"));
              return x / y;
    package TransactionSecurity.bean;
    import javax.ejb.Remote;
    @Remote
    public interface TSCalculator {
            public int add(int x, int y);
            public int subtract(int x, int y);
            public int divide(int x, int y);
    package TransactionSecurity.client;
    import java.util.Properties;
    import javax.ejb.EJBAccessException;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import TransactionSecurity.bean.TSCalculator;
    public class TSCalculatorClient {
         public static void main(String[] args) throws Exception {
              // Establish the proxy with an incorrect security identity
              Properties env = new Properties();
              env.setProperty(Context.SECURITY_PRINCIPAL, "kabir");
              env.setProperty(Context.SECURITY_CREDENTIALS, "validpassword");
            env.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.sun.appserv.naming.S1ASCtxFactory");
            env.setProperty(Context.PROVIDER_URL,"iiop://127.0.0.1:3700");
            env.setProperty("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory");
            env.setProperty("java.naming.factory.url.pkgs","com.sun.enterprise.naming");
            env.setProperty("java.naming.factory.state","com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
            env.setProperty("org.omg.CORBA.ORBInitialHost", "127.0.0.1");
            env.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
              InitialContext ctx = new InitialContext(env);
              TSCalculator calculator = null;
              try {
                   calculator = (TSCalculator) ctx.lookup(TSCalculator.class.getName());
              } catch (Exception e) {
                   System.out.println ("Error in Lookup");
                   e.printStackTrace();
                   System.exit(1);
              System.out.println("Kabir is a student.");
              System.out.println("Kabir types in the wrong password");
              try {
                   System.out.println("1 + 1 = " + calculator.add(1, 1));
              } catch (EJBAccessException ex) {
                   System.out.println("Saw expected SecurityException: "
                             + ex.getMessage());
              System.out.println("Kabir types in correct password.");
              System.out.println("Kabir does unchecked addition.");
              // Re-establish the proxy with the correct security identity
              env.setProperty(Context.SECURITY_CREDENTIALS, "validpassword");
              ctx = new InitialContext(env);
              calculator = (TSCalculator) ctx.lookup(TSCalculator.class.getName());
              System.out.println("1 + 1 = " + calculator.add(1, 1));
              System.out.println("Kabir is not a teacher so he cannot do division");
              try {
                   calculator.divide(16, 4);
              } catch (javax.ejb.EJBAccessException ex) {
                   System.out.println(ex.getMessage());
              System.out.println("Students are allowed to do subtraction");
              System.out.println("1 - 1 = " + calculator.subtract(1, 1));
    }The user kabir is created in the server and this user belongs to the group student.
    Also, I have enabled the "Default Principal To Role Mapping"
    BTW, I'm able to run other EJB3 examples [that does'nt involve any
    security features] without any problems.
    Below is the ERROR
    Error in Lookupjavax.naming.NamingException: ejb ref resolution error for remote business interfaceTransactionSecurity.bean.TSCalculator [Root exception is java.rmi.AccessException: CORBA NO_PERMISSION 0 No; nested exception is:
         org.omg.CORBA.NO_PERMISSION: ----------BEGIN server-side stack trace----------
    org.omg.CORBA.NO_PERMISSION:   vmcid: 0x0  minor code: 0  completed: No
         at com.sun.enterprise.iiop.security.SecServerRequestInterceptor.handle_null_service_context(SecServerRequestInterceptor.java:407)
         at com.sun.enterprise.iiop.security.SecServerRequestInterceptor.receive_request(SecServerRequestInterceptor.java:429)
         at com.sun.corba.ee.impl.interceptors.InterceptorInvoker.invokeServerInterceptorIntermediatePoint(InterceptorInvoker.java:627)
         at com.sun.corba.ee.impl.interceptors.PIHandlerImpl.invokeServerPIIntermediatePoint(PIHandlerImpl.java:530)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.getServantWithPI(CorbaServerRequestDispatcherImpl.java:406)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:224)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    ----------END server-side stack trace----------  vmcid: 0x0  minor code: 0  completed: No]
         at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:425)
         at com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:74)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
         at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:403)
         at javax.naming.InitialContext.lookup(InitialContext.java:351)
         at TransactionSecurity.client.TSCalculatorClient.main(TSCalculatorClient.java:35)
    Caused by: java.rmi.AccessException: CORBA NO_PERMISSION 0 No; nested exception is:
         org.omg.CORBA.NO_PERMISSION: ----------BEGIN server-side stack trace----------
    org.omg.CORBA.NO_PERMISSION:   vmcid: 0x0  minor code: 0  completed: No
         at com.sun.enterprise.iiop.security.SecServerRequestInterceptor.handle_null_service_context(SecServerRequestInterceptor.java:407)
         at com.sun.enterprise.iiop.security.SecServerRequestInterceptor.receive_request(SecServerRequestInterceptor.java:429)
         at com.sun.corba.ee.impl.interceptors.InterceptorInvoker.invokeServerInterceptorIntermediatePoint(InterceptorInvoker.java:627)
         at com.sun.corba.ee.impl.interceptors.PIHandlerImpl.invokeServerPIIntermediatePoint(PIHandlerImpl.java:530)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.getServantWithPI(CorbaServerRequestDispatcherImpl.java:406)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:224)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    ----------END server-side stack trace----------  vmcid: 0x0  minor code: 0  completed: No
         at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:277)
         at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
         at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
         at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
         at com.sun.ejb.codegen._GenericEJBHome_Generated_DynamicStub.create(com/sun/ejb/codegen/_GenericEJBHome_Generated_DynamicStub.java)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:372)
         ... 5 more
    Caused by: org.omg.CORBA.NO_PERMISSION: ----------BEGIN server-side stack trace----------
    org.omg.CORBA.NO_PERMISSION:   vmcid: 0x0  minor code: 0  completed: No
         at com.sun.enterprise.iiop.security.SecServerRequestInterceptor.handle_null_service_context(SecServerRequestInterceptor.java:407)
         at com.sun.enterprise.iiop.security.SecServerRequestInterceptor.receive_request(SecServerRequestInterceptor.java:429)
         at com.sun.corba.ee.impl.interceptors.InterceptorInvoker.invokeServerInterceptorIntermediatePoint(InterceptorInvoker.java:627)
         at com.sun.corba.ee.impl.interceptors.PIHandlerImpl.invokeServerPIIntermediatePoint(PIHandlerImpl.java:530)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.getServantWithPI(CorbaServerRequestDispatcherImpl.java:406)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:224)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    ----------END server-side stack trace----------  vmcid: 0x0  minor code: 0  completed: No
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:913)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:131)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:685)
         at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:472)
         at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:363)
         at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
         at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
         ... 13 moreAny help is appreciated.
    Regards!
    Nithi.
    Edited by: EJB3 on Aug 17, 2008 8:17 PM

  • Welcome to this forum on "Core J2EE Patterns" by the Sun Java Center

    Welcome to this forum on Core J2EE Patterns by the Sun Java Center!
    CONTEXT:
    This forum is intended for discussing the patterns from the Sun Java Center J2EE Pattern Catalog and other topics discussed in our book, Core J2EE Patterns.
    We, the authors of the book, welcome you to this forum.
    WHO WE ARE:
    We are Enterprise Java Architects from the Sun Java Center (SJC), which is the Java consulting organization of Sun Microsystems. We are a world-wide group of architects focusing on all consulting related to Java technologies.
    Visit our web-site for more information on SJC:
    http://www.sun.com/service/sunps/jdc/index.html
    BACKGROUND:
    Over the last few years, we at SJC have worked with our customers in architecting, designing, and implementing solutions on the J2EE platform. We have worked on documenting the J2EE patterns for over two years and released the patterns for public review in Beta form via the Java Developer Connection in May, 2001.
    The beta version of the patterns is available online as The Sun Java Center J2EE Pattern Catalog at:
    http://developer.java.sun.com/developer/technicalArticles/J2EE/patterns/
    Subsequent to the release, we received great feedback and comments from hundreds of reviewers. We then worked towards incorporating the feedback into the pattern documentation. One of the common comments was about the lack of code examples in the online documentation. The latest pattern documentation provides many code examples and incorporates all the feedback received so far.
    BOOK INFORMATION:
    Core J2EE Patterns, the book, was released at JavaOne 2001 during June 4-9, and will be available in stores around the end of June 2001.
    The book includes the complete updated Sun Java Center J2EE Pattern Catalog with 15 patterns covering these J2EE technologies: Java Server Pages (JSP), Servlets, Enterprise JavaBeans (EJB), and Java Message Service (JMS). In addition to the J2EE Pattern Catalog, the book also provides other chapters that discuss design considerations,
    bad practices, and J2EE Refactorings. Example code is included for all patterns and strategies.
    If you wish to view the complete table of contents or order the book, please visit one of the following online bookstores:
    Fatbrain.com: http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=0130648841
    Amazon.com: http://www.amazon.com/exec/obidos/ASIN/0130648841
    COMMUNITY:
    The online community for discussing the patterns included in our book Core J2EE Patterns has grown over the past year, since our first presentation at JavaOne 2000. This community is supported by our LISTSERV and is available for public participation at:
    http://archives.java.sun.com/j2eepatterns-interest.html
    You can view the past discussions on this list at the above URL.
    FORUM LOGISTICS:
    John and Dan are on the east coast and Deepak is on the west coast. We will be tuned into the forum and answering the messages periodically between June 19 and June 25, 2001. If you want to discuss the J2EE Patterns after June 25, you are invited to join the aforementioned J2EE Patterns Interest list.
    FORUM DISCLAIMER:
    All responses to questions posed in this News Group are given on an "as is" basis. We believe the solutions or explanations given here are correct, but do not guarantee that responses will be complete, without error and/or work for all platforms and system configurations.
    The forum is now open! Let the discussion begin...
    John Crupi - Chief Java Architect
    Dan Malks - Enterprise Java Architect
    Deepak Alur - Enterprise Java Architect
    ---Authors of Core J2EE Patterns

    Rajakannan,
    There are numerous ways to implement a templating mechanism in support of the composite view pattern, included in the catalog as a presentation-tier pattern.
    The goal is to avoid simply having monolithic views with all the formatting code embedded directly withing the view. If we have common subviews that are shared across several or more views then we end up with a copy-and-paste type of reuse...undesirable. So, modularity is one issue. Another major force when considering the Composite View pattern is that we may want to manage the layout of our pages and the content of our pages separately. We may have some logical regions defined, such as a search panel and main body, and a subview that plugs into those logical regions that map to a physical page (ie: x.jsp and y.jsp). We may then want to vary one independent of the other...ie: we may want to modify the layout of the page w/o changing the content and we may want to vary the content w/o touching the layout.
    There are a number of implementation strategies that can be used to implement the Composite View pattern, ranging from relatively simple to much more sophisticated. We describe each in our book and include source code examples.
    The example in the book that allows for supporting all the issues described above is implemented using the "Custom Tag View Management Strategy" and uses a tag library written by David Geary, that supports the Composite View pattern. The library is also included in David's new book, Adv. JavaServer Pages, Prentice Hall, 2001.
    Again, it's simply one implementation and, as you mention, there are many different ways to implement this strategy.
    Thanks for your question,
    Dan

  • I'm trying to add the system date with a Label. What is wrong with the code

    import java.util.*;
    import javax.swing.*;
    public class CurrentDateApplet extends JApplet
         Calendar currentCalendar = Calendar.getInstance();
         JLabel dateLabel = new JLabel();
         JPanel mainPanel = new JPanel();
         int dayInteger = currentCalendar.get(Calendar.DATE);
         int monthInteger = currentCalendar.get(Calendar.MONTH)+1;
         int yearInteger = currentCalendar.get(Calendar.YEAR);
         public void init()
              mainPanel.add(dateLabel);
              setContentPane(mainPanel);
              dateLabel.append(currentCalendar.get(Calendar.HOUR) + currentCalendar.get
                        (Calendar.MINUTE);
    }

    As for what's wrong with the code, it would be easier if you said: it doesn't show the date (it does this instead), it doesn't compile (I get this message) etc.
    Anyway I'll assume you want to display the time in a label...
    dateLabel.append(currentCalendar.get(Calendar.HOUR) + currentCalendar.get
    (Calendar.MINUTE);This won't compile: the parentheses are mismatched, and there is simply no such thing as append(). So we could trydateLabel.setText("" + currentCalendar.get(Calendar.HOUR) + currentCalendar.get(Calendar.MINUTE));This wroks, but looks pretty nasty and it's not how you are supposed to format dates and times. Here's the unofficial party line, nicked from one of jverd's posts:
    Calculating Java dates: Take the time to learn how to create and use dates
    Formatting a Date Using a Custom Format
    Parsing a Date Using a Custom Format
    From those links you should be able to find those applicable to times like this: http://www.exampledepot.com/egs/java.text/FormatTime.html
    Using this approach you would end up with something like:import java.text.Format;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javax.swing.JApplet;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    public class CurrentDateApplet extends JApplet
        private Date date;
        private JLabel timeLabel;
        private JPanel mainPanel;
        public void init()
            mainPanel = new JPanel();
            timeLabel = new JLabel();
            mainPanel.add(timeLabel);
            setContentPane(mainPanel);
            date = new Date();
            Format formatter = new SimpleDateFormat("HH:ss a");
            timeLabel.setText(formatter.format(date));
    }

Maybe you are looking for

  • How to find imei number

    hi my name is james bowd and i was wondering how to find my imei number/code as i need prof that the iphone is mine please reply on [email protected] thank you

  • Maintaining Multiple Vendor Phone Fax and Email using IDOC

    Hello Guru's, I have a requirement where I must be able to maintain multiple phone and fax entries for all of our vendors.  Is there a standard segment in IDOC CREMAS05 that will allow for this maintenance?  Or will I have to use a separate BAPI / FM

  • SAP ECC 6.0 GUI

    Hi,       can anyone tell me is there any version related to 4.7 which has the GUI as ECC 6.0?

  • Mac Tone Software

    Not completely iBook G4 Related, but I put this here since this is my primary computer. Before the HD failed and I had Panther, I had a nice little piece of software that let me look up info on every Mac and Apple ever made, and to hear their startup

  • Role creation in CUA

    Hi All, We have a CUA environement in our lab. There is CUA admin sytem and one cua child system. Admin system :HR6CLNT800 Child system :HR4CLNT800 I wanted to know how to create the role in CUA. If i create locally on CUA admin system by going to Me