You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@shindig.apache.org by "Vinu Neelambaran (JIRA)" <ji...@apache.org> on 2009/06/26 08:58:07 UTC

[jira] Created: (SHINDIG-1102) JsLibraray.java has a bug

JsLibraray.java has a bug
-------------------------

                 Key: SHINDIG-1102
                 URL: https://issues.apache.org/jira/browse/SHINDIG-1102
             Project: Shindig
          Issue Type: Bug
          Components: Java
    Affects Versions: 1.0
            Reporter: Vinu Neelambaran
            Priority: Critical
             Fix For: 1.0


I downloaded the latest shindig. I tried to create a sample feature called sample-0.1 which has two files namely feature.xml and sample.js.
I when I tried to use that feature in a gadget, I found that the javascript for that feature is not getting injected into the gadget.

I found the that the bug is in JsLibrary.java. It has a create() method which is responsible for getting the javasript library from the 
required resource/location. If the feature does not have a *.opt.js file, then the javascript content returned was null. This was because one if statement
was missing in the method. Please find below the modified create() method. 


 public static JsLibrary create(Type type, String content, String feature,
      HttpFetcher fetcher) throws GadgetException {
    String optimizedContent = null;
    String debugContent;
    switch (type) {
      case FILE:
      case RESOURCE:
        StringBuffer opt = new StringBuffer();
        StringBuffer dbg = new StringBuffer();
        loadOptimizedAndDebugData(content, type, opt, dbg);
        optimizedContent = opt.toString();
        debugContent = dbg.toString();
        
	  /*
         * the foolowing conditional statements are to be added to check wheter optimizedContent =null
         */
	
        if(optimizedContent == null) {
        	optimizedContent = debugContent;
        }
        else if(optimizedContent.equalsIgnoreCase("null")) { // this is because null was returned as a String
        	optimizedContent = debugContent;
        }
        else if(optimizedContent.length() == 0) {
        	optimizedContent = debugContent;
        }
        



        break;
      case URL:
        if (fetcher == null) {
          debugContent = optimizedContent = content;
        } else {
          type = Type.FILE;
          debugContent = optimizedContent = loadDataFromUrl(content, fetcher);
        }
        break;
      default:
        debugContent = content;
        optimizedContent = content;
        break;
    }
	return new JsLibrary(feature, type, optimizedContent, debugContent);
  }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (SHINDIG-1102) JsLibraray.java has a bug

Posted by "Paul Lindner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SHINDIG-1102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Lindner resolved SHINDIG-1102.
-----------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 1.0)
                   trunk

Thanks for the patch!  I modified it slightly and added a test.


> JsLibraray.java has a bug
> -------------------------
>
>                 Key: SHINDIG-1102
>                 URL: https://issues.apache.org/jira/browse/SHINDIG-1102
>             Project: Shindig
>          Issue Type: Bug
>          Components: Java
>    Affects Versions: 1.0
>            Reporter: Vinu Neelambaran
>            Priority: Critical
>             Fix For: trunk
>
>   Original Estimate: 0.08h
>  Remaining Estimate: 0.08h
>
> I downloaded the latest shindig. I tried to create a sample feature called sample-0.1 which has two files namely feature.xml and sample.js.
> I when I tried to use that feature in a gadget, I found that the javascript for that feature is not getting injected into the gadget.
> I found the that the bug is in JsLibrary.java. It has a create() method which is responsible for getting the javasript library from the 
> required resource/location. If the feature does not have a *.opt.js file, then the javascript content returned was null. This was because one if statement
> was missing in the method. Please find below the modified create() method. 
>  public static JsLibrary create(Type type, String content, String feature,
>       HttpFetcher fetcher) throws GadgetException {
>     String optimizedContent = null;
>     String debugContent;
>     switch (type) {
>       case FILE:
>       case RESOURCE:
>         StringBuffer opt = new StringBuffer();
>         StringBuffer dbg = new StringBuffer();
>         loadOptimizedAndDebugData(content, type, opt, dbg);
>         optimizedContent = opt.toString();
>         debugContent = dbg.toString();
>         
> 	  /*
>          * the foolowing conditional statements are to be added to check wheter optimizedContent =null
>          */
> 	
>         if(optimizedContent == null) {
>         	optimizedContent = debugContent;
>         }
>         else if(optimizedContent.equalsIgnoreCase("null")) { // this is because null was returned as a String
>         	optimizedContent = debugContent;
>         }
>         else if(optimizedContent.length() == 0) {
>         	optimizedContent = debugContent;
>         }
>         
>         break;
>       case URL:
>         if (fetcher == null) {
>           debugContent = optimizedContent = content;
>         } else {
>           type = Type.FILE;
>           debugContent = optimizedContent = loadDataFromUrl(content, fetcher);
>         }
>         break;
>       default:
>         debugContent = content;
>         optimizedContent = content;
>         break;
>     }
> 	return new JsLibrary(feature, type, optimizedContent, debugContent);
>   }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.