Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-11567

Provide way to retrieve VirtualFile instance from url.openConnection()

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 19.0.0.Beta1, 19.0.0.Final
    • None
    • VFS
    • None

      It is not possible to obtain VirtualFile (and by extensions it's physicalFile) instance wrapped in VirtualFileURLConnection without using reflection.

      Code snippet from Drools [1], where they try to get hold of VirtualFile#getPhysicalFile():

          private static Object findVirtualFile( URL url ) throws IOException {
              URLConnection urlConnection = url.openConnection();
              try {
                  if ( urlConnection.getClass().getName().equals( "org.jboss.vfs.protocol.VirtualFileURLConnection" ) ) {
                      Field f = urlConnection.getClass().getDeclaredField( "file" );
                      f.setAccessible( true );
                      return f.get( urlConnection );
                  }
              } catch (NoSuchFieldException | IllegalAccessException e) {
                  // ignored
              }
              return urlConnection.getContent();
          }
      

      [1] https://github.com/kiegroup/drools/commit/2a36f67a29ed06d0f980a60ff1c81fa897e8147a

              thofman Tomas Hofman
              thofman Tomas Hofman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: