org.eclipse.equinox.http.servlet_1.1.200.v20110502

    //   26: invokeinterface 417 2 0
    //   31: pop
    //   32: iload_2
    //   33: ifeq +26 -> 59
    //   36: aload_3
    //   37: invokevirtual 396	org/eclipse/equinox/http/servlet/internal/ServletRegistration:destroy	()V
    //   40: goto +19 -> 59
    //   43: astore 4
    //   45: aload_0
    //   46: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   49: aload_3
    //   50: invokevirtual 399	org/eclipse/equinox/http/servlet/internal/ServletRegistration:getHttpContext	()Lorg/osgi/service/http/HttpContext;
    //   53: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   56: aload 4
    //   58: athrow
    //   59: aload_0
    //   60: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   63: aload_3
    //   64: invokevirtual 399	org/eclipse/equinox/http/servlet/internal/ServletRegistration:getHttpContext	()Lorg/osgi/service/http/HttpContext;
    //   67: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   70: return
    // Line number table:
    //   Java source line #146	-> byte code offset #0
    //   Java source line #147	-> byte code offset #14
    //   Java source line #148	-> byte code offset #18
    //   Java source line #150	-> byte code offset #32
    //   Java source line #151	-> byte code offset #36
    //   Java source line #152	-> byte code offset #43
    //   Java source line #153	-> byte code offset #45
    //   Java source line #154	-> byte code offset #56
    //   Java source line #153	-> byte code offset #59
    //   Java source line #156	-> byte code offset #70
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	71	0	this	ProxyServlet
    //   0	71	1	alias	String
    //   0	71	2	destroy	boolean
    //   13	51	3	removedRegistration	ServletRegistration
    //   43	14	4	localObject	Object
    // Exception table:
    //   from	to	target	type
    //   32	43	43	finally
  }
  
  /* Error */
  synchronized void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext httpContext)
    throws ServletException, NamespaceException
  {
    // Byte code:
    //   0: aload_0
    //   1: aload_1
    //   2: invokespecial 385	org/eclipse/equinox/http/servlet/internal/ProxyServlet:checkAlias	(Ljava/lang/String;)V
    //   5: aload_0
    //   6: getfield 341	org/eclipse/equinox/http/servlet/internal/ProxyServlet:servletRegistrations	Ljava/util/Map;
    //   9: aload_1
    //   10: invokeinterface 410 2 0
    //   15: ifeq +34 -> 49
    //   18: new 208	org/osgi/service/http/NamespaceException
    //   21: dup
    //   22: new 177	java/lang/StringBuffer
    //   25: dup
    //   26: ldc_w 165
    //   29: invokespecial 356	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   32: aload_1
    //   33: invokevirtual 357	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   36: ldc_w 157
    //   39: invokevirtual 357	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   42: invokevirtual 355	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   45: invokespecial 402	org/osgi/service/http/NamespaceException:<init>	(Ljava/lang/String;)V
    //   48: athrow
    //   49: aload_2
    //   50: ifnonnull +14 -> 64
    //   53: new 172	java/lang/IllegalArgumentException
    //   56: dup
    //   57: ldc_w 164
    //   60: invokespecial 344	java/lang/IllegalArgumentException:<init>	(Ljava/lang/String;)V
    //   63: athrow
    //   64: aload_0
    //   65: getfield 342	org/eclipse/equinox/http/servlet/internal/ProxyServlet:registeredServlets	Ljava/util/Set;
    //   68: aload_2
    //   69: invokeinterface 416 2 0
    //   74: ifeq +14 -> 88
    //   77: new 192	javax/servlet/ServletException
    //   80: dup
    //   81: ldc_w 167
    //   84: invokespecial 367	javax/servlet/ServletException:<init>	(Ljava/lang/String;)V
    //   87: athrow
    //   88: new 207	org/eclipse/equinox/http/servlet/internal/ServletRegistration
    //   91: dup
    //   92: aload_2
    //   93: aload 4
    //   95: invokespecial 401	org/eclipse/equinox/http/servlet/internal/ServletRegistration:<init>	(Ljavax/servlet/Servlet;Lorg/osgi/service/http/HttpContext;)V
    //   98: astore 5
    //   100: new 206	org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor
    //   103: dup
    //   104: aload_0
    //   105: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   108: aload_0
    //   109: invokevirtual 366	javax/servlet/GenericServlet:getServletContext	()Ljavax/servlet/ServletContext;
    //   112: aload 4
    //   114: invokestatic 358	java/security/AccessController:getContext	()Ljava/security/AccessControlContext;
    //   117: invokespecial 395	org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor:<init>	(Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;Ljavax/servlet/ServletContext;Lorg/osgi/service/http/HttpContext;Ljava/security/AccessControlContext;)V
    //   120: astore 6
    //   122: new 205	org/eclipse/equinox/http/servlet/internal/ServletConfigImpl
    //   125: dup
    //   126: aload_2
    //   127: aload_3
    //   128: aload 6
    //   130: invokespecial 394	org/eclipse/equinox/http/servlet/internal/ServletConfigImpl:<init>	(Ljavax/servlet/Servlet;Ljava/util/Dictionary;Ljavax/servlet/ServletContext;)V
    //   133: astore 7
    //   135: iconst_0
    //   136: istore 8
    //   138: aload_0
    //   139: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   142: aload 4
    //   144: invokevirtual 383	org/eclipse/equinox/http/servlet/internal/ProxyContext:createContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   147: aload 5
    //   149: aload 7
    //   151: invokevirtual 398	org/eclipse/equinox/http/servlet/internal/ServletRegistration:init	(Ljavax/servlet/ServletConfig;)V
    //   154: iconst_1
    //   155: istore 8
    //   157: goto +22 -> 179
    //   160: astore 9
    //   162: iload 8
    //   164: ifne +12 -> 176
    //   167: aload_0
    //   168: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   171: aload 4
    //   173: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   176: aload 9
    //   178: athrow
    //   179: iload 8
    //   181: ifne +12 -> 193
    //   184: aload_0
    //   185: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   188: aload 4
    //   190: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   193: aload_0
    //   194: getfield 342	org/eclipse/equinox/http/servlet/internal/ProxyServlet:registeredServlets	Ljava/util/Set;
    //   197: aload_2
    //   198: invokeinterface 415 2 0
    //   203: pop
    //   204: aload_0
    //   205: getfield 341	org/eclipse/equinox/http/servlet/internal/ProxyServlet:servletRegistrations	Ljava/util/Map;
    //   208: aload_1
    //   209: aload 5
    //   211: invokeinterface 414 3 0
    //   216: pop
    //   217: return
    // Line number table:
    //   Java source line #160	-> byte code offset #0
    //   Java source line #161	-> byte code offset #5
    //   Java source line #162	-> byte code offset #18
    //   Java source line #164	-> byte code offset #49
    //   Java source line #165	-> byte code offset #53
    //   Java source line #167	-> byte code offset #64
    //   Java source line #168	-> byte code offset #77
    //   Java source line #170	-> byte code offset #88
    //   Java source line #171	-> byte code offset #100
    //   Java source line #172	-> byte code offset #122
    //   Java source line #174	-> byte code offset #135
    //   Java source line #175	-> byte code offset #138
    //   Java source line #177	-> byte code offset #147
    //   Java source line #178	-> byte code offset #154
    //   Java source line #179	-> byte code offset #160
    //   Java source line #180	-> byte code offset #162
    //   Java source line #181	-> byte code offset #167
    //   Java source line #182	-> byte code offset #176
    //   Java source line #180	-> byte code offset #179
    //   Java source line #181	-> byte code offset #184
    //   Java source line #183	-> byte code offset #193
    //   Java source line #184	-> byte code offset #204
    //   Java source line #185	-> byte code offset #217
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	218	0	this	ProxyServlet
    //   0	218	1	alias	String
    //   0	218	2	servlet	Servlet
    //   0	218	3	initparams	Dictionary
    //   0	218	4	httpContext	HttpContext
    //   98	112	5	registration	ServletRegistration
    //   120	9	6	wrappedServletContext	javax.servlet.ServletContext
    //   133	17	7	servletConfig	ServletConfig
    //   136	44	8	initialized	boolean
    //   160	17	9	localObject	Object
    // Exception table:
    //   from	to	target	type
    //   147	160	160	finally
  }
  
  synchronized void registerResources(String alias, String name, HttpContext httpContext)
    throws NamespaceException
  {
    checkName(name);
    Servlet resourceServlet = new ResourceServlet(name, httpContext, AccessController.getContext());
    try
    {
      registerServlet(alias, resourceServlet, null, httpContext);
    }
    catch (ServletException localServletException)
    {
      throw new IllegalStateException("Unexpected ServletException throw when registering resources at alias " + alias + ".");
    }
  }
  
  private void checkName(String name)
  {
    if (name == null) {
      throw new IllegalArgumentException("Name cannot be null");
    }
    if ((name.endsWith("/")) && (!name.equals("/"))) {
      throw new IllegalArgumentException("Invalid Name '" + name + "'");
    }
  }
  
  private void checkAlias(String alias)
  {
    if (alias == null) {
      throw new IllegalArgumentException("Alias cannot be null");
    }
    if ((!alias.startsWith("/")) || ((alias.endsWith("/")) && (!alias.equals("/")))) {
      throw new IllegalArgumentException("Invalid alias '" + alias + "'");
    }
  }
  
  /* Error */
  public synchronized void unregisterFilter(javax.servlet.Filter filter, boolean destroy)
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 340	org/eclipse/equinox/http/servlet/internal/ProxyServlet:filterRegistrations	Ljava/util/Map;
    //   4: aload_1
    //   5: invokeinterface 413 2 0
    //   10: checkcast 199	org/eclipse/equinox/http/servlet/internal/FilterRegistration
    //   13: astore_3
    //   14: aload_3
    //   15: ifnull +41 -> 56
    //   18: iload_2
    //   19: ifeq +26 -> 45
    //   22: aload_3
    //   23: invokevirtual 373	org/eclipse/equinox/http/servlet/internal/FilterRegistration:destroy	()V
    //   26: goto +19 -> 45
    //   29: astore 4
    //   31: aload_0
    //   32: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   35: aload_3
    //   36: invokevirtual 376	org/eclipse/equinox/http/servlet/internal/FilterRegistration:getHttpContext	()Lorg/osgi/service/http/HttpContext;
    //   39: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   42: aload 4
    //   44: athrow
    //   45: aload_0
    //   46: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   49: aload_3
    //   50: invokevirtual 376	org/eclipse/equinox/http/servlet/internal/FilterRegistration:getHttpContext	()Lorg/osgi/service/http/HttpContext;
    //   53: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   56: return
    // Line number table:
    //   Java source line #215	-> byte code offset #0
    //   Java source line #216	-> byte code offset #14
    //   Java source line #218	-> byte code offset #18
    //   Java source line #219	-> byte code offset #22
    //   Java source line #220	-> byte code offset #29
    //   Java source line #221	-> byte code offset #31
    //   Java source line #222	-> byte code offset #42
    //   Java source line #221	-> byte code offset #45
    //   Java source line #224	-> byte code offset #56
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	57	0	this	ProxyServlet
    //   0	57	1	filter	javax.servlet.Filter
    //   0	57	2	destroy	boolean
    //   13	37	3	removedRegistration	FilterRegistration
    //   29	14	4	localObject	Object
    // Exception table:
    //   from	to	target	type
    //   18	29	29	finally
  }
  
  /* Error */
  public synchronized void registerFilter(String alias, javax.servlet.Filter filter, Dictionary initparams, HttpContext httpContext)
    throws ServletException
  {
    // Byte code:
    //   0: aload_0
    //   1: aload_1
    //   2: invokespecial 385	org/eclipse/equinox/http/servlet/internal/ProxyServlet:checkAlias	(Ljava/lang/String;)V
    //   5: aload_2
    //   6: ifnonnull +14 -> 20
    //   9: new 172	java/lang/IllegalArgumentException
    //   12: dup
    //   13: ldc_w 160
    //   16: invokespecial 344	java/lang/IllegalArgumentException:<init>	(Ljava/lang/String;)V
    //   19: athrow
    //   20: aload_0
    //   21: getfield 340	org/eclipse/equinox/http/servlet/internal/ProxyServlet:filterRegistrations	Ljava/util/Map;
    //   24: aload_2
    //   25: invokeinterface 410 2 0
    //   30: ifeq +14 -> 44
    //   33: new 192	javax/servlet/ServletException
    //   36: dup
    //   37: ldc_w 166
    //   40: invokespecial 367	javax/servlet/ServletException:<init>	(Ljava/lang/String;)V
    //   43: athrow
    //   44: aload_0
    //   45: aload_3
    //   46: invokespecial 387	org/eclipse/equinox/http/servlet/internal/ProxyServlet:findFilterPriority	(Ljava/util/Dictionary;)I
    //   49: istore 5
    //   51: new 199	org/eclipse/equinox/http/servlet/internal/FilterRegistration
    //   54: dup
    //   55: aload_2
    //   56: aload 4
    //   58: aload_1
    //   59: iload 5
    //   61: invokespecial 377	org/eclipse/equinox/http/servlet/internal/FilterRegistration:<init>	(Ljavax/servlet/Filter;Lorg/osgi/service/http/HttpContext;Ljava/lang/String;I)V
    //   64: astore 6
    //   66: new 206	org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor
    //   69: dup
    //   70: aload_0
    //   71: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   74: aload_0
    //   75: invokevirtual 366	javax/servlet/GenericServlet:getServletContext	()Ljavax/servlet/ServletContext;
    //   78: aload 4
    //   80: invokestatic 358	java/security/AccessController:getContext	()Ljava/security/AccessControlContext;
    //   83: invokespecial 395	org/eclipse/equinox/http/servlet/internal/ServletContextAdaptor:<init>	(Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;Ljavax/servlet/ServletContext;Lorg/osgi/service/http/HttpContext;Ljava/security/AccessControlContext;)V
    //   86: astore 7
    //   88: new 198	org/eclipse/equinox/http/servlet/internal/FilterConfigImpl
    //   91: dup
    //   92: aload_2
    //   93: aload_3
    //   94: aload 7
    //   96: invokespecial 372	org/eclipse/equinox/http/servlet/internal/FilterConfigImpl:<init>	(Ljavax/servlet/Filter;Ljava/util/Dictionary;Ljavax/servlet/ServletContext;)V
    //   99: astore 8
    //   101: iconst_0
    //   102: istore 9
    //   104: aload_0
    //   105: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   108: aload 4
    //   110: invokevirtual 383	org/eclipse/equinox/http/servlet/internal/ProxyContext:createContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   113: aload 6
    //   115: aload 8
    //   117: invokevirtual 375	org/eclipse/equinox/http/servlet/internal/FilterRegistration:init	(Ljavax/servlet/FilterConfig;)V
    //   120: iconst_1
    //   121: istore 9
    //   123: goto +22 -> 145
    //   126: astore 10
    //   128: iload 9
    //   130: ifne +12 -> 142
    //   133: aload_0
    //   134: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   137: aload 4
    //   139: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   142: aload 10
    //   144: athrow
    //   145: iload 9
    //   147: ifne +12 -> 159
    //   150: aload_0
    //   151: getfield 343	org/eclipse/equinox/http/servlet/internal/ProxyServlet:proxyContext	Lorg/eclipse/equinox/http/servlet/internal/ProxyContext;
    //   154: aload 4
    //   156: invokevirtual 384	org/eclipse/equinox/http/servlet/internal/ProxyContext:destroyContextAttributes	(Lorg/osgi/service/http/HttpContext;)V
    //   159: aload_0
    //   160: getfield 340	org/eclipse/equinox/http/servlet/internal/ProxyServlet:filterRegistrations	Ljava/util/Map;
    //   163: aload_2
    //   164: aload 6
    //   166: invokeinterface 414 3 0
    //   171: pop
    //   172: return
    // Line number table:
    //   Java source line #227	-> byte code offset #0
    //   Java source line #228	-> byte code offset #5
    //   Java source line #229	-> byte code offset #9
    //   Java source line #231	-> byte code offset #20
    //   Java source line #232	-> byte code offset #33
    //   Java source line #234	-> byte code offset #44
    //   Java source line #235	-> byte code offset #51
    //   Java source line #236	-> byte code offset #66
    //   Java source line #237	-> byte code offset #88
    //   Java source line #239	-> byte code offset #101
    //   Java source line #240	-> byte code offset #104
    //   Java source line #242	-> byte code offset #113
    //   Java source line #243	-> byte code offset #120
    //   Java source line #244	-> byte code offset #126
    //   Java source line #245	-> byte code offset #128
    //   Java source line #246	-> byte code offset #133
    //   Java source line #247	-> byte code offset #142
    //   Java source line #245	-> byte code offset #145
    //   Java source line #246	-> byte code offset #150
    //   Java source line #248	-> byte code offset #159
    //   Java source line #249	-> byte code offset #172
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	173	0	this	ProxyServlet
    //   0	173	1	alias	String
    //   0	173	2	filter	javax.servlet.Filter
    //   0	173	3	initparams	Dictionary
    //   0	173	4	httpContext	HttpContext
    //   49	11	5	filterPriority	int
    //   64	101	6	registration	FilterRegistration
    //   86	9	7	wrappedServletContext	javax.servlet.ServletContext
    //   99	17	8	filterConfig	javax.servlet.FilterConfig
    //   102	44	9	initialized	boolean
    //   126	17	10	localObject	Object
    // Exception table:
    //   from	to	target	type
    //   113	126	126	finally
  }
  
  private int findFilterPriority(Dictionary initparams)
  {
    if (initparams == null) {
      return 0;
    }
    String filterPriority = (String)initparams.get("filter-priority");
    if (filterPriority == null) {
      return 0;
    }
    try
    {
      int result = Integer.parseInt(filterPriority);
      if ((result >= 64536) && (result <= 1000)) {
        return result;
      }
    }
    catch (NumberFormatException localNumberFormatException)
    {
      throw new IllegalArgumentException("filter-priority must be an integer between -1000 and 1000 but was: " + filterPriority);
    }
  }
}

/* Location:
 * Qualified Name:     org.eclipse.equinox.http.servlet.internal.ProxyServlet
 * Java Class Version: 1.1 (45.3)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.equinox.http.servlet.internal;

public abstract class Registration
{
  protected int referenceCount;
  
  public synchronized void addReference()
  {
    referenceCount += 1;
  }
  
  public synchronized void removeReference()
  {
    referenceCount -= 1;
    if (referenceCount == 0) {
      notifyAll();
    }
  }
  
  /* Error */
  public synchronized void destroy()
  {
    // Byte code:
    //   0: iconst_0
    //   1: istore_1
    //   2: goto +13 -> 15
    //   5: aload_0
    //   6: invokevirtual 34	java/lang/Object:wait	()V
    //   9: goto +6 -> 15
    //   12: pop
    //   13: iconst_1
    //   14: istore_1
    //   15: aload_0
    //   16: getfield 31	org/eclipse/equinox/http/servlet/internal/Registration:referenceCount	I
    //   19: ifne -14 -> 5
    //   22: goto +16 -> 38
    //   25: astore_2
    //   26: iload_1
    //   27: ifeq +9 -> 36
    //   30: invokestatic 36	java/lang/Thread:currentThread	()Ljava/lang/Thread;
    //   33: invokevirtual 35	java/lang/Thread:interrupt	()V
    //   36: aload_2
    //   37: athrow
    //   38: iload_1
    //   39: ifeq +9 -> 48
    //   42: invokestatic 36	java/lang/Thread:currentThread	()Ljava/lang/Thread;
    //   45: invokevirtual 35	java/lang/Thread:interrupt	()V
    //   48: return
    // Line number table:
    //   Java source line #30	-> byte code offset #0
    //   Java source line #32	-> byte code offset #2
    //   Java source line #34	-> byte code offset #5
    //   Java source line #35	-> byte code offset #12
    //   Java source line #37	-> byte code offset #13
    //   Java source line #32	-> byte code offset #15
    //   Java source line #40	-> byte code offset #25
    //   Java source line #41	-> byte code offset #26
    //   Java source line #42	-> byte code offset #30
    //   Java source line #43	-> byte code offset #36
    //   Java source line #41	-> byte code offset #38
    //   Java source line #42	-> byte code offset #42
    //   Java source line #44	-> byte code offset #48
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	49	0	this	Registration
    //   1	38	1	interrupted	boolean
    //   25	12	2	localObject	Object
    //   12	1	3	localInterruptedException	InterruptedException
    // Exception table:
    //   from	to	target	type
    //   5	9	12	java/lang/InterruptedException
    //   2	25	25	finally
  }
}

/* Location:
 * Qualified Name:     org.eclipse.equinox.http.servlet.internal.Registration
 * Java Class Version: 1.1 (45.3)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.equinox.http.servlet.internal;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestWrapper;
import javax.servlet.ServletResponse;

public class RequestDispatcherAdaptor
  implements RequestDispatcher
{
  private RequestDispatcher requestDispatcher;
  
  public RequestDispatcherAdaptor(RequestDispatcher requestDispatcher)
  {
    this.requestDispatcher = requestDispatcher;
  }
  
  public void forward(ServletRequest req, ServletResponse resp)
    throws ServletException, IOException
  {
    if ((req instanceof HttpServletRequestAdaptor)) {
      req = ((HttpServletRequestAdaptor)req).getRequest();
    }
    requestDispatcher.forward(req, resp);
  }
  
  public void include(ServletRequest req, ServletResponse resp)
    throws ServletException, IOException
  {
    if ((req instanceof HttpServletRequestAdaptor)) {
      req = ((HttpServletRequestAdaptor)req).getRequest();
    }
    requestDispatcher.include(req, resp);
  }
}

/* Location:
 * Qualified Name:     org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor
 * Java Class Version: 1.1 (45.3)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.equinox.http.servlet.internal;

import java.net.URL;
import java.security.PrivilegedExceptionAction;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

class ResourceServlet$1
  implements PrivilegedExceptionAction
{
  final ResourceServlet this$0;
  private final URL val$resourceURL;
  private final HttpServletRequest val$req;
  private final HttpServletResponse val$resp;
  private final String val$resourcePath;
  
  ResourceServlet$1(ResourceServlet paramResourceServlet, URL paramURL, HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, String paramString)
  {
    this$0 = paramResourceServlet;val$resourceURL = paramURL;val$req = paramHttpServletRequest;val$resp = paramHttpServletResponse;val$resourcePath = paramString;
  }
  
  /* Error */
  public Object run()
    throws java.lang.Exception
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 184	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resourceURL	Ljava/net/URL;
    //   4: invokevirtual 196	java/net/URL:openConnection	()Ljava/net/URLConnection;
    //   7: astore_1
    //   8: aload_1
    //   9: invokevirtual 198	java/net/URLConnection:getLastModified	()J
    //   12: lstore_2
    //   13: aload_1
    //   14: invokevirtual 197	java/net/URLConnection:getContentLength	()I
    //   17: istore 4
    //   19: aconst_null
    //   20: astore 5
    //   22: lload_2
    //   23: ldc2_w 88
    //   26: lcmp
    //   27: ifeq +42 -> 69
    //   30: iload 4
    //   32: iconst_m1
    //   33: if_icmpeq +36 -> 69
    //   36: new 101	java/lang/StringBuffer
    //   39: dup
    //   40: ldc 7
    //   42: invokespecial 192	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   45: iload 4
    //   47: invokevirtual 193	java/lang/StringBuffer:append	(I)Ljava/lang/StringBuffer;
    //   50: ldc 2
    //   52: invokevirtual 195	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   55: lload_2
    //   56: invokevirtual 194	java/lang/StringBuffer:append	(J)Ljava/lang/StringBuffer;
    //   59: ldc 1
    //   61: invokevirtual 195	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   64: invokevirtual 191	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   67: astore 5
    //   69: aload_0
    //   70: getfield 185	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$req	Ljavax/servlet/http/HttpServletRequest;
    //   73: ldc 5
    //   75: invokeinterface 211 2 0
    //   80: astore 6
    //   82: aload 6
    //   84: ifnull +35 -> 119
    //   87: aload 5
    //   89: ifnull +30 -> 119
    //   92: aload 6
    //   94: aload 5
    //   96: invokevirtual 190	java/lang/String:indexOf	(Ljava/lang/String;)I
    //   99: iconst_m1
    //   100: if_icmpeq +19 -> 119
    //   103: aload_0
    //   104: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   107: sipush 304
    //   110: invokeinterface 212 2 0
    //   115: getstatic 181	java/lang/Boolean:TRUE	Ljava/lang/Boolean;
    //   118: areturn
    //   119: aload_0
    //   120: getfield 185	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$req	Ljavax/servlet/http/HttpServletRequest;
    //   123: ldc 4
    //   125: invokeinterface 210 2 0
    //   130: lstore 7
    //   132: lload 7
    //   134: ldc2_w 88
    //   137: lcmp
    //   138: ifle +36 -> 174
    //   141: lload_2
    //   142: lconst_0
    //   143: lcmp
    //   144: ifle +30 -> 174
    //   147: lload_2
    //   148: lload 7
    //   150: ldc2_w 90
    //   153: ladd
    //   154: lcmp
    //   155: ifgt +19 -> 174
    //   158: aload_0
    //   159: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   162: sipush 304
    //   165: invokeinterface 212 2 0
    //   170: getstatic 181	java/lang/Boolean:TRUE	Ljava/lang/Boolean;
    //   173: areturn
    //   174: iload 4
    //   176: iconst_m1
    //   177: if_icmpeq +14 -> 191
    //   180: aload_0
    //   181: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   184: iload 4
    //   186: invokeinterface 206 2 0
    //   191: aload_0
    //   192: getfield 187	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:this$0	Lorg/eclipse/equinox/http/servlet/internal/ResourceServlet;
    //   195: getfield 182	org/eclipse/equinox/http/servlet/internal/ResourceServlet:httpContext	Lorg/osgi/service/http/HttpContext;
    //   198: aload_0
    //   199: getfield 183	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resourcePath	Ljava/lang/String;
    //   202: invokeinterface 215 2 0
    //   207: astore 9
    //   209: aload 9
    //   211: ifnonnull +26 -> 237
    //   214: aload_0
    //   215: getfield 187	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:this$0	Lorg/eclipse/equinox/http/servlet/internal/ResourceServlet;
    //   218: invokevirtual 200	javax/servlet/GenericServlet:getServletConfig	()Ljavax/servlet/ServletConfig;
    //   221: invokeinterface 204 1 0
    //   226: aload_0
    //   227: getfield 183	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resourcePath	Ljava/lang/String;
    //   230: invokeinterface 205 2 0
    //   235: astore 9
    //   237: aload 9
    //   239: ifnull +14 -> 253
    //   242: aload_0
    //   243: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   246: aload 9
    //   248: invokeinterface 208 2 0
    //   253: lload_2
    //   254: lconst_0
    //   255: lcmp
    //   256: ifle +15 -> 271
    //   259: aload_0
    //   260: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   263: ldc 6
    //   265: lload_2
    //   266: invokeinterface 213 4 0
    //   271: aload 5
    //   273: ifnull +16 -> 289
    //   276: aload_0
    //   277: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   280: ldc 3
    //   282: aload 5
    //   284: invokeinterface 214 3 0
    //   289: iload 4
    //   291: ifeq +186 -> 477
    //   294: aconst_null
    //   295: astore 10
    //   297: aload_1
    //   298: invokevirtual 199	java/net/URLConnection:getInputStream	()Ljava/io/InputStream;
    //   301: astore 10
    //   303: aload_0
    //   304: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   307: invokeinterface 209 1 0
    //   312: astore 11
    //   314: aload_0
    //   315: getfield 187	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:this$0	Lorg/eclipse/equinox/http/servlet/internal/ResourceServlet;
    //   318: aload 10
    //   320: aload 11
    //   322: invokevirtual 202	org/eclipse/equinox/http/servlet/internal/ResourceServlet:writeResourceToOutputStream	(Ljava/io/InputStream;Ljava/io/OutputStream;)I
    //   325: istore 12
    //   327: iload 4
    //   329: iconst_m1
    //   330: if_icmpeq +10 -> 340
    //   333: iload 4
    //   335: iload 12
    //   337: if_icmpeq +126 -> 463
    //   340: aload_0
    //   341: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   344: iload 12
    //   346: invokeinterface 206 2 0
    //   351: goto +112 -> 463
    //   354: pop
    //   355: aload_0
    //   356: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   359: invokeinterface 207 1 0
    //   364: astore 11
    //   366: aload_0
    //   367: getfield 187	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:this$0	Lorg/eclipse/equinox/http/servlet/internal/ResourceServlet;
    //   370: aload 10
    //   372: aload 11
    //   374: invokevirtual 203	org/eclipse/equinox/http/servlet/internal/ResourceServlet:writeResourceToWriter	(Ljava/io/InputStream;Ljava/io/Writer;)V
    //   377: goto +86 -> 463
    //   380: pop
    //   381: aload_0
    //   382: getfield 187	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:this$0	Lorg/eclipse/equinox/http/servlet/internal/ResourceServlet;
    //   385: aload_0
    //   386: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   389: sipush 403
    //   392: invokevirtual 201	org/eclipse/equinox/http/servlet/internal/ResourceServlet:sendError	(Ljavax/servlet/http/HttpServletResponse;I)V
    //   395: aload 10
    //   397: ifnull +80 -> 477
    //   400: aload 10
    //   402: invokevirtual 188	java/io/InputStream:close	()V
    //   405: goto +72 -> 477
    //   408: pop
    //   409: goto +68 -> 477
    //   412: pop
    //   413: aload_0
    //   414: getfield 187	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:this$0	Lorg/eclipse/equinox/http/servlet/internal/ResourceServlet;
    //   417: aload_0
    //   418: getfield 186	org/eclipse/equinox/http/servlet/internal/ResourceServlet$1:val$resp	Ljavax/servlet/http/HttpServletResponse;
    //   421: sipush 403
    //   424: invokevirtual 201	org/eclipse/equinox/http/servlet/internal/ResourceServlet:sendError	(Ljavax/servlet/http/HttpServletResponse;I)V
    //   427: aload 10
    //   429: ifnull +48 -> 477
    //   432: aload 10
    //   434: invokevirtual 188	java/io/InputStream:close	()V
    //   437: goto +40 -> 477
    //   440: pop
    //   441: goto +36 -> 477
    //   444: astore 13
    //   446: aload 10
    //   448: ifnull +12 -> 460
    //   451: aload 10
    //   453: invokevirtual 188	java/io/InputStream:close	()V
    //   456: goto +4 -> 460
    //   459: pop
    //   460: aload 13
    //   462: athrow
    //   463: aload 10
    //   465: ifnull +12 -> 477
    //   468: aload 10
    //   470: invokevirtual 188	java/io/InputStream:close	()V
    //   473: goto +4 -> 477
    //   476: pop
    //   477: getstatic 181	java/lang/Boolean:TRUE	Ljava/lang/Boolean;
    //   480: areturn
    // Line number table:
    //   Java source line #63	-> byte code offset #0
    //   Java source line #64	-> byte code offset #8
    //   Java source line #65	-> byte code offset #13
    //   Java source line #67	-> byte code offset #19
    //   Java source line #68	-> byte code offset #22
    //   Java source line #69	-> byte code offset #36
    //   Java source line #73	-> byte code offset #69
    //   Java source line #74	-> byte code offset #82
    //   Java source line #75	-> byte code offset #103
    //   Java source line #76	-> byte code offset #115
    //   Java source line #79	-> byte code offset #119
    //   Java source line #82	-> byte code offset #132
    //   Java source line #83	-> byte code offset #158
    //   Java source line #84	-> byte code offset #170
    //   Java source line #88	-> byte code offset #174
    //   Java source line #89	-> byte code offset #180
    //   Java source line #91	-> byte code offset #191
    //   Java source line #92	-> byte code offset #209
    //   Java source line #93	-> byte code offset #214
    //   Java source line #95	-> byte code offset #237
    //   Java source line #96	-> byte code offset #242
    //   Java source line #98	-> byte code offset #253
    //   Java source line #99	-> byte code offset #259
    //   Java source line #101	-> byte code offset #271
    //   Java source line #102	-> byte code offset #276
    //   Java source line #104	-> byte code offset #289
    //   Java source line #106	-> byte code offset #294
    //   Java source line #108	-> byte code offset #297
    //   Java source line #111	-> byte code offset #303
    //   Java source line #112	-> byte code offset #314
    //   Java source line #113	-> byte code offset #327
    //   Java source line #114	-> byte code offset #340
    //   Java source line #115	-> byte code offset #354
    //   Java source line #116	-> byte code offset #355
    //   Java source line #117	-> byte code offset #366
    //   Java source line #122	-> byte code offset #380
    //   Java source line #126	-> byte code offset #381
    //   Java source line #132	-> byte code offset #395
    //   Java source line #134	-> byte code offset #400
    //   Java source line #135	-> byte code offset #408
    //   Java source line #127	-> byte code offset #412
    //   Java source line #130	-> byte code offset #413
    //   Java source line #132	-> byte code offset #427
    //   Java source line #134	-> byte code offset #432
    //   Java source line #135	-> byte code offset #440
    //   Java source line #131	-> byte code offset #444
    //   Java source line #132	-> byte code offset #446
    //   Java source line #134	-> byte code offset #451
    //   Java source line #135	-> byte code offset #459
    //   Java source line #138	-> byte code offset #460
    //   Java source line #132	-> byte code offset #463
    //   Java source line #134	-> byte code offset #468
    //   Java source line #135	-> byte code offset #476
    //   Java source line #140	-> byte code offset #477
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	481	0	this	1
    //   7	291	1	connection	java.net.URLConnection
    //   12	254	2	lastModified	long
    //   17	317	4	contentLength	int
    //   20	263	5	etag	String
    //   80	13	6	ifNoneMatch	String
    //   130	19	7	ifModifiedSince	long
    //   207	40	9	contentType	String
    //   295	174	10	is	java.io.InputStream
    //   312	9	11	os	java.io.OutputStream
    //   364	9	11	writer	java.io.Writer
    //   325	20	12	writtenContentLength	int
    //   354	1	13	localIllegalStateException	IllegalStateException
    //   444	17	13	localObject	Object
    //   380	1	14	localFileNotFoundException	java.io.FileNotFoundException
    //   408	1	15	localIOException1	java.io.IOException
    //   412	1	16	localSecurityException	SecurityException
    //   440	1	17	localIOException2	java.io.IOException
    //   459	1	18	localIOException3	java.io.IOException
    //   476	1	19	localIOException4	java.io.IOException
    // Exception table:
    //   from	to	target	type
    //   303	351	354	java/lang/IllegalStateException
    //   297	377	380	java/io/FileNotFoundException
    //   400	405	408	java/io/IOException
    //   297	377	412	java/lang/SecurityException
    //   432	437	440	java/io/IOException
    //   297	395	444	finally
    //   412	427	444	finally
    //   451	456	459	java/io/IOException
    //   468	473	476	java/io/IOException
  }
}

/* Location:
 * Qualified Name:     org.eclipse.equinox.http.servlet.internal.ResourceServlet.1
 * Java Class Version: 1.1 (45.3)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.equinox.http.servlet.internal;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.osgi.service.http.HttpContext;

public class ResourceServlet
  extends HttpServlet
{
  private static final long serialVersionUID = 3586876493076122102L;
  private static final String LAST_MODIFIED = "Last-Modified";
  private static final String IF_MODIFIE
1 2 3

Further reading...

For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.

New!JAR listings


Copyright 2006-2019. Infinite Loop Ltd