Javac AST Symbol Resolving for JavacTask.parse()

Hello!
I am currently working on a source code processor, based on an AST. I use the original javac library. I know that the javac package is not provided as API, but it suffices for a first prototype.
I parse a file (multiple files) with JavacTask.parse() and descent into the AST. Please don't hit me for the solution using Reflection! The interesting lines are on *321-328*, where I try to resolve the Symbols manually, because it seems all .sym properties are set to null.
I don't understand how to resolve the AST previous to descent into it. Is it possible to resolve Symbols with the original library code?
Warning, big Code:
package runtimeLoader;
import java.io.StringWriter;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Stack;
import javax.tools.JavaCompiler;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
import runtimeLoader.RuntimeLoader.Trace.RuntimeLoaderTrace;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.tree.MethodInvocationTree;
import com.sun.source.tree.MethodTree;
import com.sun.source.util.JavacTask;
import com.sun.source.util.TreeScanner;
import com.sun.tools.javac.api.JavacTaskImpl;
import com.sun.tools.javac.api.JavacTrees;
import com.sun.tools.javac.code.Scope;
import com.sun.tools.javac.code.Symbol.MethodSymbol;
import com.sun.tools.javac.code.Symbol.PackageSymbol;
import com.sun.tools.javac.code.Type;
import com.sun.tools.javac.code.TypeTags;
import com.sun.tools.javac.comp.AttrContext;
import com.sun.tools.javac.comp.Env;
import com.sun.tools.javac.comp.Resolve;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.JCAnnotation;
import com.sun.tools.javac.tree.JCTree.JCAssign;
import com.sun.tools.javac.tree.JCTree.JCBlock;
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
import com.sun.tools.javac.tree.JCTree.JCExpression;
import com.sun.tools.javac.tree.JCTree.JCFieldAccess;
import com.sun.tools.javac.tree.JCTree.JCIdent;
import com.sun.tools.javac.tree.JCTree.JCLabeledStatement;
import com.sun.tools.javac.tree.JCTree.JCLiteral;
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
import com.sun.tools.javac.tree.JCTree.JCMethodInvocation;
import com.sun.tools.javac.tree.JCTree.JCPrimitiveTypeTree;
import com.sun.tools.javac.tree.JCTree.JCStatement;
import com.sun.tools.javac.tree.JCTree.JCVariableDecl;
import com.sun.tools.javac.tree.Pretty;
import com.sun.tools.javac.util.List;
import com.sun.tools.javac.util.ListBuffer;
import com.sun.tools.javac.util.Name;
import com.sun.tools.javac.util.Name.Table;
public class Compile {
      * parse, pretty, store temp
      * copy tree, process, pretty, store, compile, EXECUTE, TEST
      * process back, pretty, COMPARE EQUAL
      * nested vars
      * nested classes, methods
      * vars there
     static class ReferenceList {
          public Object ref;
          public LinkedList list = new LinkedList();
          public ReferenceList(Object ref) {
               this.ref = ref;
               list.add(ref);
     static class TraceStructure {
          public JCMethodInvocation call = null;
          public JCStatement stat = null;
          public LinkedList<TraceStructure> stats = new LinkedList<TraceStructure>();
     enum UpdateAction {
          UPDATE_CLEANUP,
          UPDATE_PROCESS,
          SCAN_CODE,
          SCAN_SYMBOLS,
          SCAN_RESOLVE,
     static boolean traceHeader = false;
     static boolean traceCall = false;
     static Resolve resolve = null;
     //static TreeScanner treeScanner = null;
     static Stack objectRefStack = new Stack();
     static LinkedList<JCVariableDecl> variableList = new LinkedList<JCVariableDecl>();
     static LinkedList<JCMethodDecl> methodList = new LinkedList<JCMethodDecl>();
     static TraceStructure traceStructure = null;
     public static boolean traceMethod(JCMethodDecl method) {
          boolean traceMethod = false;
          for (JCAnnotation anno : method.mods.annotations) {
               if (anno.annotationType instanceof JCIdent) {
                    if ("RuntimeLoaderTrace".equals(((JCIdent) anno.annotationType).name.toString())) {
                         traceMethod = true;
                         break;
          return traceMethod;
     public static boolean findMethod(JCMethodDecl method, Object instance) {
          boolean traceMethod = false;
          for (JCAnnotation anno : method.mods.annotations) {
               if (anno.annotationType instanceof JCIdent) {
                    if ("RuntimeLoaderTrace".equals(((JCIdent) anno.annotationType).name.toString())) {
                         traceMethod = true;
                         break;
          return traceMethod;
     public static void updateTreeRecur(ReferenceList objectRef, UpdateAction action) throws Exception {
          Field[] sourceFieldList = objectRef.ref.getClass().getDeclaredFields();
          HashMap<String, Field> sourceFieldMap = new HashMap<String, Field>();
          if (!traceHeader) {
               for (Field sourceField : sourceFieldList) {
                    Object value = sourceField.get(objectRef.ref);
                    String name = sourceField.getName();
                    if (value instanceof List) {
                         List sourceList = (List) value;
                         ListBuffer targetListBuffer = new ListBuffer();
                         //System.out.println(objectRef.ref.getClass().getName());
                         if (UpdateAction.UPDATE_PROCESS.equals(action)
                                        && objectRefStack.lastElement() instanceof JCMethodDecl
                                        && objectRef.ref instanceof JCBlock
                                        && "stats".equals(name)) {
                              if (traceMethod((JCMethodDecl) objectRefStack.lastElement())) {
                                   Table table1 = ((JCMethodDecl) objectRefStack.lastElement()).getName().table;
                                   variableList.clear();
                                   traceStructure = new TraceStructure();
                                   // Analyze
                                   updateTreeRecur(new ReferenceList(objectRef.ref), UpdateAction.SCAN_CODE);
                                   // Header
                                   targetListBuffer.append(
                                             new CustomLabeledStatement(Name.fromString(table1, "RuntimeLoaderT1"),
                                                       new CustomBlock(0, new ListBuffer().toList())));
                                   targetListBuffer.append(
                                             new CustomLabeledStatement(Name.fromString(table1, "RuntimeLoaderT2"),
                                                       new CustomBlock(0, new ListBuffer().toList())));
                                   // Variables
                                   for (JCVariableDecl variable : variableList) {
                                        //System.out.println(variable.getType().getClass().getName());
                                        if (variable.getType() instanceof JCPrimitiveTypeTree) {
                                             int typetag = ((JCPrimitiveTypeTree) variable.getType()).typetag;
                                             variable.init = new CustomLiteral(typetag, 0);
                                        else {
                                             variable.init = new CustomLiteral(TypeTags.BOT, null);
                                        targetListBuffer.append(variable);
                                   // Trace
                                   targetListBuffer.append(
                                             new CustomLabeledStatement(Name.fromString(table1, "RuntimeLoaderC"),
                                                       new CustomBlock(0, new ListBuffer().toList())));
                         for (Object sourceObject : sourceList) {
                              ReferenceList targetObjectRef = new ReferenceList(sourceObject);
                              objectRefStack.push(objectRef.ref);
                              updateTreeRecur(targetObjectRef, action);
                              objectRefStack.pop();
                              if (targetObjectRef.ref != null) {
                                   targetObjectRef.list.set(0, targetObjectRef.ref);
                                   for (Object targetObject : targetObjectRef.list) {
                                        if (targetObject != null) {
                                             targetListBuffer.append(targetObject);
                         sourceField.set(objectRef.ref, targetListBuffer.toList());
                    else if (value instanceof JCTree) {
                         ReferenceList valueRef = new ReferenceList(value);
                         objectRefStack.push(objectRef.ref);
                         updateTreeRecur(valueRef, action);
                         objectRefStack.pop();
                         if (valueRef.ref == null) {
                              objectRef.ref = null;
                              return;
                         sourceField.set(objectRef.ref, valueRef.ref);
          if (UpdateAction.UPDATE_CLEANUP.equals(action)) {
               if (objectRef.ref instanceof JCLabeledStatement) {
                    String label1 = ((JCLabeledStatement) objectRef.ref).label.toString();
                    if ("RuntimeLoaderT1".equals(label1)) {
                         traceHeader = true;
                         objectRef.ref = null;
                         return;
                    else if ("RuntimeLoaderT2".equals(label1)) {
                         traceHeader = false;
                         objectRef.ref = null;
                         return;
                    else if ("RuntimeLoaderC".equals(label1)) {
                         objectRef.ref = ((JCLabeledStatement) objectRef.ref).body;
                         if (objectRef.ref instanceof JCBlock) {
                              switch (((JCBlock) objectRef.ref).stats.size()) {
                              case 0:
                                   objectRef.ref = null;
                                   return;
                              case 1:
                                   objectRef.ref = ((JCBlock) objectRef.ref).stats.get(0);
                                   break;
               if (traceHeader) {
                    objectRef.ref = null;
                    return;
          else if (UpdateAction.SCAN_CODE.equals(action)) {
               if (objectRef.ref instanceof JCVariableDecl) {
                    JCVariableDecl object1 = (JCVariableDecl) objectRef.ref;
                    variableList.add(object1);
                    objectRef.ref = new CustomAssign(object1.vartype, object1.init);
               else if (objectRef.ref instanceof JCMethodInvocation) {
                    JCMethodInvocation object1 = (JCMethodInvocation) objectRef.ref;
                    //System.out.println(object1.meth);
                    if (object1.meth instanceof JCIdent) {
                         System.out.println(((JCIdent)object1.meth).sym);
                         /*if(((JCIdent)object1.meth).sym instanceof MethodSymbol) {
                              System.out.println(((MethodSymbol)((JCIdent)object1.meth).sym).code);
                    else if (object1.meth instanceof JCFieldAccess) {
                         System.out.println(((JCFieldAccess) object1.meth).sym);
                         //System.out.println(((JCFieldAccess) object1.meth).getExpression() + " " + ((JCFieldAccess) object1.meth).name);
          else if (UpdateAction.SCAN_SYMBOLS.equals(action)) {
               if (objectRef.ref instanceof JCMethodDecl) {
                    JCMethodDecl object1 = (JCMethodDecl) objectRef.ref;
                    //resolve.resolveInternalMethod(object1.pos(), null, object1.type, object1.getName(), object1.);
                    System.out.println(object1.sym);
                    methodList.add(object1);
               if (objectRef.ref instanceof JCMethodInvocation) {
                    JCMethodInvocation object1 = (JCMethodInvocation) objectRef.ref;
                    Name name = null;
                    Type type = null;
                    System.out.println(object1.meth.getClass().getName());
                    if (object1.meth instanceof JCIdent) {
                         name = ((JCIdent)object1.meth).name;
                         type = ((JCIdent)object1.meth).type;
                         //System.out.println(object1.type);
                         //System.out.println(((JCIdent)object1.meth).type);
                    else if (object1.meth instanceof JCFieldAccess) {
                         name = ((JCFieldAccess)object1.meth).name;
                         type = ((JCFieldAccess)object1.meth).type;
                    //type = new Type(TypeTags.VOID, null);
                    //type = new Type(TypeTags.VOID, new TypeSymbol());
                    ListBuffer<Type> argtypeListBuffer = new ListBuffer<Type>();
                    AttrContext attrContext = new AttrContext();
                    Env<AttrContext> env = new Env<AttrContext>((JCTree) objectRef.ref, attrContext);
                    System.out.println(type);
                    System.out.println(type.tsym);
                    resolve.resolveInternalMethod(object1.pos(), env, type, name, argtypeListBuffer.toList(), null);
     public static void main(String[] args) throws Exception {
          JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
          StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
          Iterable<? extends JavaFileObject> fileObjects = fileManager.getJavaFileObjects(
                    "C:/Users/user2/workspace/runtimeLoader/src/runtimeLoader/Test.java"
                    //"C:/Users/user2/workspace/runtimeLoader/src/runtimeLoader/Test2.java"
          JavacTaskImpl javacTaskImpl = (JavacTaskImpl) compiler.getTask(null, fileManager, null, null, null, fileObjects);
          Iterable<? extends CompilationUnitTree> treeList = javacTaskImpl.parse();
          resolve = Resolve.instance(javacTaskImpl.getContext());
          for (CompilationUnitTree sourceTree : treeList) {
               /*treeScanner = new SourceTreeProcessor();
               sourceTree.accept(treeScanner, null);*/
               /*System.out.println(
                         JavacTrees.instance(
                                   javacTaskImpl).getScope(
                                             JavacTrees.instance(javacTaskImpl).getPath(
                                                       sourceTree, sourceTree)).getEnv());*/
               objectRefStack.clear();
               objectRefStack.push(new Object());
               updateTreeRecur(new ReferenceList(sourceTree), UpdateAction.SCAN_SYMBOLS);
          /*for (CompilationUnitTree sourceTree : treeList) {
               objectRefStack.clear();
               objectRefStack.push(new Object());
               updateTreeRecur(new ReferenceList(sourceTree), UpdateAction.UPDATE_CLEANUP);
               updateTreeRecur(new ReferenceList(sourceTree), UpdateAction.UPDATE_PROCESS);
               StringWriter s = new StringWriter();
               new Pretty(s, false).printExpr((JCTree) sourceTree);
               //System.out.println(s.toString());
     /*private static class SourceTreeProcessor extends TreeScanner<Void, Void> {
          @Override
          public Void visitMethodInvocation(MethodInvocationTree node, Void p) {
               //System.out.println(node.getMethodSelect().);
               return super.visitMethodInvocation(node, p);
     static class CustomLabeledStatement extends JCLabeledStatement {
          protected CustomLabeledStatement(Name arg0, JCStatement arg1) {
               super(arg0, arg1);
     static class CustomBlock extends JCBlock {
          protected CustomBlock(long arg0, List<JCStatement> arg1) {
               super(arg0, arg1);
     static class CustomAssign extends JCAssign {
          protected CustomAssign(JCExpression arg0, JCExpression arg1) {
               super(arg0, arg1);
     static class CustomLiteral extends JCLiteral {
          protected CustomLiteral(int arg0, Object arg1) {
               super(arg0, arg1);
}

Sorry, i am pushing a bit.
I continue development, and solve the problem temporarily by comparing the literal strings. Because this is highly inaccurate, this issue is very urgent. Please answer shortly, if possible. If you are interested, this project is a first attempt to realize a independent platform for free and open source solution distribution.
Imagine the case of equal variable names in parallel scope:
     int aNumber = 1;
     int aNumber = 2;
}without correct resolved symbol names, the names are ambiguous and cannot produce the correct result:
String[] rl_variableList = {"aNumber", "aNumber"};
int rl_0_aNumber = 0;
int rl_1_aNumber = 0;
     rl_0_aNumber = 1;
     rl_1_aNumber = 2;
}

Similar Messages

  • Symbolic name for PCI-GPIB card

    I am using Agilent's ADS2002 to interact with an HP 8722D VNA via a PCI-GPIB card. I need a symbolic name for the card in order to write or read from the instrument; I've tried the suggested GPIB0 and GPIB1, as well as a few other guesses. Nothing on the card looks like a card number or symbolic name. How can I determine what the symbolic name should be? Thanks.

    Hello-
    Be sure that the GPIB board passes diagnostics. Also, try doing a Scan for Instruments in MAX. It may be that the board is not yet recognized.
    Also, consider using a programming language other than ADS. It may be easier for future upgrades to use a language like C or LabVIEW.
    Randy Solomonson
    Application Engineer
    National Instruments

  • What is the best api for xml parsing?

    I think that api comes with j2se is not that good for xml parsing. is there any open source api which is simple,easy and powerful,

    JArsenic wrote:
    Hey I feel XMLBeans would be a optimal solution for XML parsing as I provides you a whole set of methods to parse your XML tags as Java Objects. And you may download XMLBeans @ http://xmlbeans.apache.org/.
    What advantage would that have over JAXB? It already can do all that and is built into Java itself, so you don't need a separate download.
    Also: mapping XML to Java beans is a very specific way of handling XML and is definitely not "the best" in all situations.
    For similar quest you may reach @ [somesite]Please, no advertisement here, read the Code of Conduct that you agreed on singing up with this page.

  • Currency symbol only for grand total.

    Hi,
    My requirement is i want currency symbol $ only for grand total, all the rows in that column do not have the symbol.
    I need some your help.
    Thank you.

    Although I couldn't understand why you dont want currency format in rows, here is my suggestion.
    Create your report as
    1 dim1.column1 dim2.column2 Measure.Revenue ......... You will get values as below
    1 Value1 Dim2Val1 100
    1 Value2 Dim2Val2 200
    1 Value2 Dim2Val3 300
    UNION
    2 'Grand Total' ' ' Measure.Revenue
    Final result will be as below
    1 Value1 Dim2Val1 100
    1 Value2 Dim2Val2 200
    1 Value2 Dim2Val3 300
    2 Grand Total 600
    Now apply conditional formatting for dim1.column1 in criteria and make the values Bold
    Apply conditional formatting for Measure.Revenue and select Currency in number format.
    Let me know if it was helpful or you were looking for something else.
    Thanks

  • [svn] 2216: Changed InterfaceCompiler to public so that it can be used directly for mxml parsing by other tools .

    Revision: 2216
    Author: [email protected]
    Date: 2008-06-24 13:34:15 -0700 (Tue, 24 Jun 2008)
    Log Message:
    Changed InterfaceCompiler to public so that it can be used directly for mxml parsing by other tools. Also change parseMxml to public.
    Reviewed by: Paul
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/InterfaceCompiler.java

    Before I read this helpful post, I changed my Google search key words from "change location Firefox profiles" to "change path Firefox Profiles" and found this link: http://kb.mozillazine.org/Thunderbird_:_FAQs_:_Changing_Profile_Folder_Location. This brought me to the article "Moving Your Firefox Profile" which answered my question. Your suggested link would have ultimately led me to the same solution.
    The problem was that I had copied my Firefox profile to the new location and then modified "profiles.ini" to point to the new location and saved it there as a replacement to the original "profiles.ini" that I had renamed "profiles.iniOld." Even though I had changed "IsRelative" from "=1" to "=0" I got error messages. I had used this procedure successfully before, but it would not work this time. When I used Profile Manager to move the Firefox Profiles everything worked fine the first time I tried it, and it took only a few minutes.
    Thank you, cor-el.

  • Import cannot be resolved for IPrivate* imports

    Hi All,
    I got the error "import cannot be resolved for IPrivate* imports'" when I import existing project. And then I close the project, copy files to gen_wdp folder again and open project according to the method in Thread
    Always getting 'import cannot be resolved' for IPrivate* imports.
    Then the problem resolved.
    After that I have done some modifications and rebuild it. However the same problem occurs again. I repeat close/open project again but it doesn't help. That's to say I cannot make any modifications to the project and build out any new EAR files.
    If anyone can help, I will appreciate it a lot.
    Xiao

    Hi Xiao,
    Is <b>ShineWay_ReClaimsView</b> a view in your component in this project ?
    If yes ensure that it doesn't have any errors. Then rebuild your project.
    If you in dc environment and this view is from other project (dc). Then ensure that the dc having this view is build (dc build) correctly.
    As abhilash said the gen_wdp files are generated and you shouldn't touch them. You will get more problems than solutions.
    Best Regards,
    <a href="https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/ashwaniKrSharma&">Ashwani Kr Sharma</a>

  • Query for log Parser to get number of hits in a day or week for particular web applications or site collection

    Hi All,
    Want to get the number of hits in a day for a web application with IIS logs. so need to know Query for log Parser to get number hits in a day or week for particular web applications or site collection. Kindly help
    Regards,
    Naveen

    I'm trying to get this from WSS 3.0, Hence using the Log Parser

  • [svn:fx-trunk] 5907: * AST generation optimization for Bindable metadata.

    Revision: 5907
    Author: [email protected]
    Date: 2009-04-03 07:39:57 -0700 (Fri, 03 Apr 2009)
    Log Message:
    * AST generation optimization for Bindable metadata. For some Mxml
    heavy applications, this decreases compilation time by about 10%.
    It also lowers memory use for those applications.
    tests Passed: checkintests, mxunit databinding, full mustella
    Needs QA: YES
    Needs DOC: NO
    API Change: NO
    Reviewer: Corey
    Code-level description of changes:
    tools/WebTierAPI.java
    Modified getCompilers() to pass generateAbstractSyntaxTree into
    BindableExtension and ManagedExtension.
    compiler/as3/genext/GenerativeSecondPassEvaluator.java
    Added generateAbstractSyntaxTree variable and modified constructor
    to set it.
    Made prepMetaDataNode() protected, so subclasses can call it.
    compiler/as3/genext/GenerativeExtension.java
    Added generateAbstractSyntaxTree variable and modified constructor
    to set it.
    compiler/as3/managed/ManagedSecondPassEvaluator.java
    compiler/as3/managed/ManagedExtension.java
    compiler/as3/binding/BindableExtension.java
    Modified constructor to take generateAbstractSyntaxTree param and
    to pass it to super().
    compiler/as3/AbstractSyntaxTreeUtil.java
    Added DOUBLE_COLON.
    Modified generateIdentifier() to handle name's with double colons.
    Added new generateParameter() variant with position arg.
    Added new generateParameter() variant with support for an
    initializer Node.
    Added new generateParameter(), generateTypeExpression(),
    generateVariable() variant with support for a type namespace.
    compiler/as3/binding/BindableSecondPassEvaluator.java
    Added addIEventDispatcherImplementation(),
    addStaticEventDispatcherImplementation(), generateAttributeList(),
    generateBindingEventDispatcherVariable(),
    generateDispatchEventCall(),
    generateAddEventListenerFunctionDefinition(),
    generateDispatchEventFunctionDefinition(),
    generateEventDispatcherNotNull(), generateGetter(),
    generateHasEventListenerFunctionDefinition(),
    generateOldValueStrictlyNotEqualsValueText(),
    generateOldValueVariable(),
    generateRemoveEventListenerFunctionDefinition(), generateSetter(),
    generateSetterAssignment(),
    generateStaticBindingEventDispatcherVariable(),
    generateStaticDispatchEventCall(),
    generateStaticEventDispatcherGetter(),
    generateStaticOldValueVariable(),
    generateStaticSetterAssignment(),
    generateWillTriggerFunctionDefinition(), modifySyntaxTree(), and
    moveMetaDataToNewDefinition().
    compiler/mxml/ImplementationCompiler.java
    Modified constructor to pass generateAbstractSyntaxTree into the
    BindableExtension constructor.
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/AbstractSyntaxTreeUtil.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableExtension.jav a
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableSecondPassEva luator.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/genext/GenerativeExtension.ja va
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/genext/GenerativeSecondPassEv aluator.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/managed/ManagedExtension.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/managed/ManagedSecondPassEval uator.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationCompiler.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/InterfaceGenerator.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/WebTierAPI.java

  • Can't make symbolic links for Documents, Music, Movies, Pictures folders?

    So, on my previous setup, which was also running 10.5 I was able to create symbolic links for my Documents,Music, Movies and Pictures folders so those files could be stored on an 2nd hard drive.
    However, today I'm setting up my new Mac Pro and I try to remove those folders and create the symbolic links and it tells me that permissions are denied.
    Can anyone tell me why this would be different on the Intel Mac than it was on my PowerMac G5? How can I get around it?

    those folders are protected by "deny delete" ACLs to prevent accidental deletion.
    you can remove the ACLs using
    chmod -N ~/Documents ~/Music ~/Movies ~/Pictures
    you'll then be able to delete them.
    Message was edited by: V.K.

  • Printing currency symbols(like $ for dollar)for all countries in smartforms

    Hi friends,
    I have to print currency symbols (like $ for dollar) for all countries in SRM PO Smartform.
    Is there any character set which has all the currency symbols in it?
    If so, how to print those in Smartforms?

    Hi
    There are two ways to maintain format of Currency,
    1. Transaction : OY01 Customize: set up countries
    2. Menu->System->User profile-> Own data -> Defualt
    Just check the country seeting as well as user setting
    before run the smart form.
    U can use SET COUNTRY command to set country format which is specified into OY01.
    Use Write stament to convert into required currency format.
    ... CURRENCY w
    Effect
    Correct format for currency specified in the field w.
    Treats the contents of f as a currency amount. The currency specified in w determines how many decimal places this amount should have.
    The contents of w are used as a currency key for the table TCURX; if there is no entry for w, the system assumes that the currency amount has 2 decimal places.
    Regard ,
    Vinod

  • Symbolic links for executables

    I installed nmap but it is not in my path. Where is the proper place to make executable with out having to use the whole path? I understand how to get it working and was just wondering if there is a typical location that Mac users put symbolic links for all users to be able to execute.
    Thank you.

    Normally, /usr/local/bin/ so updates don't delete them. Then, add it to your $PATH variable in .bash_profile, using:
    *export PATH=$PATH:/usr/local/bin*
    If you're using another shell, then modify it accordingly. BTW, Unix queries should be posted to that forum in OS X Technologies.
    For Kenichi Watanabe:
    Unix executables shouldn't be put into /Applications.

  • When will printer matter be resolve for windows 8

    When will printer mattter be resolved for windows8

    Instead, you can install Windows 7 on Boot Camp. Also, see if it's better for you Boot Camp or a virtual machine > https://discussions.apple.com/docs/DOC-3321

  • No exact match was found. Click the item(s) that did not resolve for more options. You can also use Select button to choose External Data.

    HI,
    I have SharePoint Online 2013 environment, i have created a external content type from wcf service. I want to use this as External Data column in document library. When i look for values in content type it populates and when i click any values and adds and
    then click saves it shows the below error
    No exact match was found. Click the item(s) that
    did not resolve for more options. You can also use Select button to choose External Data
    __fkc000950056003700kc000950056003700kc000e400f2001400kc000950056003700k830035004700160027004700d20057000700020064009600870056004600:
    No Matching Items
    Please help on this.
    varinder

    I don't understand the question exactly, could you restate it.  Sorry mate, I might just be braindead.
    But, as far as the issue, it is by design.  the column is a lookup columns which essentially ties to the external data.  if that data is removed, the column on your simple list becomes invalid and any edits of the simple list item will require
    it to be changed.
    are you wanting to make the ECT read only?  that's simple enough.  you can pop open SPD and edit the ECT, then remove the C/E/D operations (create/update/delete).  That will not, however make it read-only in any other systems that access that
    external data, as I assume its not just SP or else it wouldn't be external
    Christopher Webb | MCM: SharePoint 2010 | MCSM: SharePoint Charter | MCT | http://christophermichaelwebb.com

  • Rich Symbol feature for Buttons?

    Im making a site with menu links where the text size and font
    is the same, but the color is different for each one. So I can play
    about with changing the font etc ive used a simple script to make
    the colour editable, attached to the graphic type of symbol.
    This is working but what I really want is to do the same
    thing, but with the button type of symbol. This would allow me to
    design the rollovers and down states, while still having the font,
    size etc easily updatable.
    Is there a way of using the rich symbol feature for buttons
    or is it for graphics only?
    thanks

    I think i could get round this by making a button with a roll
    over state (say italic), then applying a style to the whole button
    and using the style to control the appearance. ( I know that styles
    are only updatable in CS4 but im thinking of upgrading).
    When a style is applied to a button it seems to override the
    appearance setting of the button (font, colour, etc).
    Say I wanted to have some buttons different colors, but have
    the other appearance elements controlled by the style applied,
    could i override the colour (or similar feature) some way? I would
    still need to have the style linked to update it.
    thanks

  • Can we maintain differant Symbolic accounts for One Wage type?

    Hello,
    May you plz, clarify my doubt? Can we maintain differant Symbolic accounts for One Wage type?

    HI,
    Yes u can maintain any no of symbollic accounts for one wagetype...
    A wage type can be assigned to several symbolic accounts. This is usually the case for wage types that should be posted as both expenses and payables (for example, wage types for the employer’s contribution for social insurance).
    U can also check this in link...
    http://help.sap.com/saphelp_47x200/helpdata/en/f3/21e091110b4e46983af70d772a40b2/frameset.htm
    Hope this solves ur issue
    Reward if helpful
    Asha

Maybe you are looking for